标签:CentOS skip passw mysqld user mysql using password root
1、安装完MySQL5.7之后,使用mysql -u root -p登录MySQL时报错:
-
[root@localhost bin]# mysql -u root -p
-
Enter password:
-
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
2、百度搜了很多解决方法,都是使用安全模式启动数据:
-
service mysqld stop #首先关闭mysql服务
-
mysqld_safe --user=root --skip-grant-tables --skip-networking & #然后使用mysqld_safe跳过权限方式启动
-
mysql #然后直接登录,跳过密码验证
-
update mysql.user set password=password('123456') where user='root'; #将密码设置为123456
3、但是在安装目录/usr/bin/下根本找不到mysqld_safe这个文件,或是进入了安全模式无法update数据 所以这个方法无效。
4、找了大半天,终于找到一个介绍,skip-grant-tables这个是配置参数,可以放在[mysql]节点配置文件里面修改,然后把这个配置参数放到/etc/my.cnf文件里面。
5、添加进去后重启mysql服务,就可以正常登进去mysql数据库了;
6、但是设置密码的时候,输入update mysql.user set password=password('123456') where user='root';发现password字段不存在,突然间心态大崩。
7、最后执行select * from mysql.user;命令查看找到user表authentication_string这个列的值与password的只相似,于是将这个字段的值备份一下。
8、执行update mysql.user set authentication_string=password('123456') where user='root';
9、刷新权限:flush privileges;(这一步必须要做,不然一样登不进 mysql)
flush privileges;
10、然后退出mysql,修改my.cnf中的去除:skip-grant-tables,最后执行systemctl restart mysqld.service重启数据库,再次登录,终于解决问题!
标签:CentOS,skip,passw,mysqld,user,mysql,using,password,root 来源: https://blog.csdn.net/mingling123456/article/details/110309602
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。