ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL 8.0版本的一些登陆问题

2021-12-31 19:05:19  阅读:218  来源: 互联网

标签:8.0 mysql 密码 user 版本 MySQL password root


错误代码:

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 'exit()' at line 1

  or

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

  or

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

  or

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  or

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 '('*******') WHERE User='root'' at line 1

  以上这么多错误,总的来说就是语法错误;输入密码正确,但就是进不去;就算跳过密码,改密码的时候,没法改。(仅针对MySQL8.0版本)

 

解决方法:

  很简单,改密码。

 

密码改了还不行的原因:

  1、MySQL8.0版本不能通过直接修改mysql.user表来更改密码;

  2、authentication_string字段下只能是MySQL加密后的43位字符串密码;

 

解决措施:

1、清空原密码;

修改my.cnf文件

vim /etc/my.cnf

加上

skip-grant-tables

保存更改并重启MySQL服务

systemctl restart mysqld.service

重启之后直接mysql命令,秒进mysql

然后清空root密码

UPDATE user SET authentication_string='' WHERE user='root';

然后刷新

flush privileges;

exit退出,把插入到my.cnf的skip-grant-tables去掉,然后重启MySQL。

2、已清空root密码,修改root密码;

进入MySQL(上步已清空密码,故可以进入)。

修改密码操作(注意区分作用域Host):

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY "***";

  or(如果作用域localhost,则运行下面代码)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "***";

返回以下结果则成功

Query OK, 0 rows affected (0.00 sec)

刷新,然后退出MySQL;

再次进去,发现成功!

 

总结:

  MySQL 5.*的版本修改密码命令为

UPDATE user SET authentication_string="123456" WHERE user="root";

  MySQL 8.*的版本修改密码命令为

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";

  可以看出,5.*之后的版本取消了password函数,故不适用于8.*版本。

 

附录:

1、修改Host为%:

update user set host='%' where host= 'localhost';

2、centos 7从零开始安装MySQL 8.0

首先,卸载默认安装的MariaDB(第二个命令根据自己情况删除,因为文件名称可能不同)

rpm -qa | grep -i mariadb
rpm -e --nodeps mariadb-libs

然后,下载MySQL仓库,并安装(同一目录下操作)

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql80-community-release-el7-3.noarch.rpm

最后,安装MySQL数据库

yum -y install mysql-community-server

3、MySQL服务操作命令

开启MySQL服务:

systemctl start mysqld.service

关闭MySQL服务:

systemctl stop mysqld.service

重启MySQL服务:

systemctl restart mysqld.service

4、查看MySQL默认登陆密码命令

cat /var/log/mysqld.log | grep password

5、远程连接问题

如果远程连接提示:plugin caching_sha2_password错误

原因:MySQL8.0默认密码策略与5.*版本不同

解决方法:(将plugin修改为mysql_native_password即可)

update user set plugin = 'mysql_native_password' where user = 'root';

刷新后启用。

标签:8.0,mysql,密码,user,版本,MySQL,password,root
来源: https://www.cnblogs.com/coolbaby/p/15754199.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有