MySQL 5.7.x与旧版本存在一些差别,安装完5.7.x版本需要做一些配置才能使用。
主要包括下面几个配置:
- root用户密码配置
- 数据库编码配置
- 远程连接配置
注意:以下配置全部基于
Cent OS 7
+MySQL 5.7.x
进行配置,如果使用其他版本Linux
或其他版本的MySQL
,操作会有所不同,请各位读者注意。
一、root用户密码配置
- 修改文件
/etc/my.cnf
,在[mysqld]
小节下添加一行:skip-grant-tables=1
- 重启MySQL服务,
systemctl restart mysqld
- 用root用户登录,
mysql -u root
- 检查root用户登录的方式
select user, plugin from mysql.user;
,如果显示为下图的结果(root登录方式为auth_socket
),则执行update mysql.user set plugin='mysql_native_password' where user='root';
- 更改root密码,执行sql语句
update mysql.user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';
将root用户密码设置为root
- 执行命令刷新权限
flush privileges;
- 退出MySQL,修改文件
/etc/my.cnf
,删除skip-grant-tables=1
- 重启MySQL服务,
systemctl restart mysqld
- 重新登录,验证结果
如果出现错误
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
表情
三、远程连接配置
- 配置防火墙,开启3306端口,并重启防火墙服务,如果防火墙没有配置,会报
No route to host (Host unreachable)
错误
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# systemctl restart firewalld.service
- 登录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;
网友评论