从mysql 5.7 升级到 8.0 的一些注意事项

本文介绍了MySQL8.0升级后可能遇到的端口配置、密码验证方式、安全连接设置等差异问题,以及相应的解决方案和配置方法,帮助新用户顺利过渡。

最近 mysql 5.7 版本将会终止安全更新,越来越多的朋友考虑升级 mysql 8.0,以下是一些刚开始使用时可能存在差异问题的地方,有一些其实在 mysql 5.7 版本里已经开始使用,这里整理一下方便查阅。

1、关于端口,该版本 MySQL 常用的端口包括3306、33060、33062,这三个端口分别是第一个常规协议端口3306(包括SSL安全连接也是这个端口),第二个 MySQL x协议端口33060,该端口协议类似 Protocolbuf,第三个是管理端口33062,该端口在常规连接数满了后依然可以使用。日常的话3306端口可以满足大部分需要。如果我们使用客户端连接到不正确的端口,如下所示,则会显示协议不正确的提示。

Protocol mismatch; server version = 11, client version = 10

这是因为你使用传统协议客户端连接到33060端口导致的冲突。不使用MySQL x 可以在 my.cnf 中添加如下配置屏蔽:

[mysqld]
mysqlx=OFF

屏蔽后再执行如下 SQL 将不再有内容输出.

mysql> show variables like 'mysqlx%';

查看当前 mysql 启用的插件可使用以下 sql 命令:

mysql> show plugins;

2、MySQL默认启用了 caching_sha2_password 的密码验证,它是 sha256_password 的有缓存版本,我们默认添加的用户都使用该插件来创建验证机制,可以通过以下的SQL来查看用户使用了何种插件,

mysql> select user,host,plugin from mysql.user;

如何我们想使用传统的验证方式,则需要在创建用户时显式使用 mysql_native_password 来创建。

mysql> create user user_xxx@'127.0.0.1' identifed with mysql_native_password by 'xxxxxxx';

需要注意的是,使用 caching_sha2_password 的用户登录时必须使用安全连接,否则会得到如下错误提示

ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

也可以在 my.cnf 里添加如下配置来默认使用传统方式来创建用户,这样在创建用户时就不用显示使用 mysql_native_password。

[mysqld]
default_authentication_plugin=mysql_native_password

3、客户端使用安全连接需要如下添加连接选项,虽然默认的连接方式会自动选择安全和非安全连接,但会带来一些不确认的因素。

使用传统非安全连接

mysql -h 127.0.0.1 -P 3306 -u user_xxx -p --ssl-mode=disabled

使用安全连接

mysql -h 127.0.0.1 -P 3306 -u user_xxx -p --ssl-mode=required

连接命令中 --ssl-mode 选项还有其它更严格的参数值可以对证书和服务器进行验证,具体可参阅官方文档。

命连接成功后,可以通过如下SQL查看当前是否是安全连接

mysql> \s

在 my.cnf 中添加如下配置,可以强制用户连接 MySQL 时使用安全连接,反之则两种连接都可以使用

[mysqld]
require_secure_transport=ON

以上是刚开始使用 mysql 8.0 时比较常见到的问题,更多详细信息可以参阅官方的文档

https://dev.mysql.com/doc/refman/8.0/en/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值