当前位置: 首页 > news >正文

从mysql 5.7 升级到 8.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/

http://www.lryc.cn/news/176419.html

相关文章:

  • 喜迎中秋国庆双节,华为云Astro Canvas之我的中秋节设计大屏
  • C++ stoi()函数的用法
  • Learn Prompt- Midjourney案例:动漫设计
  • 亚马逊无线鼠标FCC认证办理 FCC ID
  • MySQL常见数据类型、特点以及使用场景
  • vue markdown显示为html
  • Spring整合RabbitMQ——生产者(利用配置类)
  • Linux基础工具|代码调试工具gdb的使用
  • Ribbon负载均衡器
  • 初级软件测试入门教程
  • 4项简化IT服务台任务的ChatGPT功能
  • idea创建同级项目-纠结是SB
  • 任正非:天空足够大,世界会越来越兴盛
  • SMOKE-CMAQ实践技术应用
  • 电脑提示vcruntime140.dll缺失重新安装的修复方法
  • Vue实现Hello World
  • Android---Bitmap 与 String 互转
  • python播放声音库playsound以及获取路径以及修改库源码
  • 山西电力市场日前价格预测【2023-09-27】
  • laravel框架 - 事件与监听器
  • Android存储权限完美适配(Android11及以上适配)
  • 国产手机芯片4G方案_紫光展锐安卓核心板虎贲4G智能模块方案定制
  • 异步通讯技术之RabbitMQ
  • tcp/ip协议2实现的插图,数据结构
  • Redis学习 - 了解Redis(三)
  • API接口自动化测试框架
  • MySQL学习笔记1
  • 基于PYQT5的GUI开发系列教程【一】框架安装和基础环境配置
  • 【漏洞复现】Jeecg-Boot SQL注入漏洞(CVE-2023-34659)
  • 【MySQL基础 | 中秋特辑】多表查询详细总结