千家信息网

mysql8.0新特性的坑有哪些

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要介绍mysql8.0新特性的坑有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建用户和授权在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲
千家信息网最后更新 2024年11月24日mysql8.0新特性的坑有哪些

这篇文章主要介绍mysql8.0新特性的坑有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、创建用户和授权

在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样,只能说是更严格,mysql8.0需要先创建用户和设置密码,然后才能授权。

#先创建一个用户create user 'hong'@'%' identified by '123123';#再进行授权grant all privileges on *.* to 'hong'@'%' with grant option;

如果还是用原来5.7的那种方式,会报错误:

grant all privileges on *.* to 'sroot'@'%' identified by '123123';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123123'' at line 1

二、MySQL8.0 的远程链接

MySQL8.0 安装完成后出现无法远程链接的现象,这是因为MySQL8.0 只支持 localhost 访问,我们必须设置一下才可以远程访问。

具体设置步骤如下:

① 登录MySQL

执行命令为:mysql -u root -p

回车后输入密码

② 选择 mysql 数据库

执行命令为:use mysql;

查看mysql 数据库中存储的用户信息的 user 表。

③ 查看mysql 数据库的 user 表中当前 root 用户的相关信息

执行命令为:select host,user,authentication_string,plugin from user;

执行完命令后显示一个表格, root 用户的 host默认显示的 localhost,说明只支持本地访问,不允许远程访问。

④ 更改 host 的默认配置

执行命令为:update user set host='%' where user='root';

⑤ 刷新

执行命令为:flush privileges;

之前以为这样就行了,然后呢,在用navicat进行mysql的远程连接时,出现了弹窗报错:


出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 我用是第二种方式 :

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';#更新一下用户的密码FLUSH PRIVILEGES; #刷新权限

问题就解决了。

mysql8.0用户密码设置注意事项

在MySQL 8.0.11中,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password。有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性的信息,请参阅caching_sha2_password作为首选的身份验证插件。(翻译自https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html)

今天在新服务上配置安装mysql8.0.11时,像往常一样设置mysql密码,设置成功后在shell下输入mysql -u root -p,再输入密码能正常进入,但在phpmyadmin或直接用http://php.net/manual/zh/mysqli.real-connect.php上的连接,均提示无法连接,具体报错信息为

mysqli_real_connect(): The server requested authentication method unknown to the client [sha256_password]

搜了一圈,找到官方文档才发现从8.0.11版本起,不再像mysql5.7及以前版本那样,设置用户密码时默认的验证方式为caching_sha2_password,如果发现升级mysql8.0.11后原有的程序不能连接mysql,可迅速在mysql command line client客户端用下面的命令设置成mysql5.7及以前版本的密码验证方式,同时MYSQL8.0.11下修改密码的方式与原先也不大一样,原先的部分修改密码的命令在mysql8.0.11下不能使用。

> use mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; > FLUSH PRIVILEGES;

以上是"mysql8.0新特性的坑有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

密码 用户 命令 方式 信息 版本 规则 加密 验证 数据 数据库 服务 输入 特性 内容 客户 客户端 插件 服务器 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国普法网法律法规数据库 四川大学网络技术人才 关于网络安全方面的心得 济南笃行网络商城软件开发 天津随客网络技术有限公司 连接数据库要用access吗 百度软件视频服务器连接不上 金华市网络安全竞赛 三级网络技术自为知笔记 魔力宝贝3v3怎么进服务器 软件开发岗领导面试的技巧 手机游戏插件是什么软件开发的 excel表格数据库的排序 魔兽世界TBC维希度斯服务器 社交网络技术结合 网络安全周宣传壁纸 绿码数据库不更新 焦作软件开发销售电话 哪些是无线网络技术 网络安全产业分析报告pdf 遵化网络安全 数据库写磁盘空间不足 无状态服务器 西藏便民平台软件开发专业制作 华为服务器管理口网关 威海诚信积分管理软件开发电话 榆树有名的网络技术咨询排名靠前 嵌入式软件开发商窗户 网络安全咨询机构 贵州专业网络技术服务五星服务
0