浅谈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作为首选的身份验证插件。(翻译自)
今天在新服务上配置安装mysql8.0.11时,像往常一样设置mysql密码,设置成功后在shell下输入mysql -u root -p,再输入密码能正常进入,但在phpmyadmin或直接用http://php./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 mand line client客户端用狼蚁网站SEO优化的命令设置成mysql5.7及以前版本的密码验证方式,MYSQL8.0.11下修改密码的方式与原先也不大一样,原先的部分修改密码的命令在mysql8.0.11下不能使用。
> use mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; > FLUSH PRIVILEGES;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程