MySQL 5.7初始配置

MySQL 5.7.x与旧版本存在一些差别,安装完5.7.x版本需要做一些配置才能使用。
主要包括下面几个配置:

  1. root用户密码配置
  2. 数据库编码配置
  3. 远程连接配置

注意:以下配置全部基于Cent OS 7+ MySQL 5.7.x进行配置,如果使用其他版本Linux或其他版本的MySQL,操作会有所不同,请各位读者注意。

一、root用户密码配置

  1. 修改文件 /etc/my.cnf ,在 [mysqld] 小节下添加一行:skip-grant-tables=1
  2. 重启MySQL服务,systemctl restart mysqld
  3. 用root用户登录,mysql -u root
  4. 检查root用户登录的方式select user, plugin from mysql.user;,如果显示为下图的结果(root登录方式为auth_socket),则执行update mysql.user set plugin='mysql_native_password' where user='root';
  5. 更改root密码,执行sql语句update mysql.user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';将root用户密码设置为root
  6. 执行命令刷新权限flush privileges;
  7. 退出MySQL,修改文件/etc/my.cnf,删除 skip-grant-tables=1
  8. 重启MySQL服务,systemctl restart mysqld
  9. 重新登录,验证结果
图片.png

如果出现错误Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.,尝试删除/var/lib/mysql目录

二、数据库编码配置

修改文件/etc/my.cnf, 添加以下内容,注意节点问题,然后重启MySQL服务

[client]  
default-character-set=utf8mb4

[mysql]  
default-character-set=utf8mb4

[mysqld]  
collation-server = utf8mb4_general_ci
character-set-server = utf8mb4 

注:utf8mb4编码是utf8的扩展字符集,可以存储emoji表情

三、远程连接配置

  1. 配置防火墙,开启3306端口,并重启防火墙服务,如果防火墙没有配置,会报No route to host (Host unreachable)错误
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# systemctl restart firewalld.service
  1. 登录mysql,设置全部用户或指定用户允许远程连接
#允许所有用户远程访问 修改用户名和密码为你自己的
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

#允许单个ip 修改用户名和密码为你自己的
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

# 只授权
mysql> GRANT ALL ON *.* TO 'USERNAME'@'1.2.3.4';

#最后
mysql> FLUSH PRIVILEGES;

你可能感兴趣的:(MySQL 5.7初始配置)