初次安装mysql,net start mysql,然后输入mysql -u root -p,
出现enter password,我直接点击回车,结果出现如果下错误:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using
password: NO)。
或者在 my.cnf 配置了密码
提示错误:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using
password: YES)。
解决方案
MySQL安装时默认的用户是root,这里的root是指数据库的用户,root密码一般在初始化MySQL时存放在你的日志文件中,日志文件的存放路径可以通过my.cnf文件进行自定义。
使用如下方法即可解决,本人已验证可行。
(另外一种情况就是,,你密码输入错误了,如果是初始化后第一次登录,出现这种情况的话,很大概率就是密码错误,初始化后的密码要认真查看,可能会因为空格、小数点等符号输错)

停止mysql服务:
service mysqld stop
修改配置文件无密码登录:
vi /etc/my.cnf
在最尾部加上:
skip-grant-tables
保存,启动mysql:
service mysqld start
登录mysql:
mysql -u root
查询mysql数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
选中mysql数据库:
mysql> use mysql;
Database changed
首先更新root密码为空字符串:
update user set authentication_string='' where user='root';
退出,删除之前步骤加上的 “skip-grant-tables” 然后重启mysql:
// 1,退出
exit
// 2,修改,删除最后的skip-grant-tables
vim /etc/my.cnf
// 3,重启
service mysqld restart
然后再登陆Mysql:
mysql -uroot
使用ALTER修改root用户密码,方法为 ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘新密码’。如下:
ALTER user 'root'@'localhost' IDENTIFIED BY '你的密码';
然后再用exit退出,再次登陆mysql就需要使用密码了,密码就是刚刚修改的密码
解决方案2
1.停止mysql数据库
/etc/init.d/mysqld stop
(或者直接 kill -9 [PID] 杀进程!)
2.执行如下命令
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
3.使用root登录mysql数据库
mysql -u root mysql
4.更新root密码
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
最新版MySQL请采用如下SQL:
mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';
5.刷新权限
mysql> FLUSH PRIVILEGES;
6.退出mysql
mysql> quit
7.重启mysql
/etc/init.d/mysqld restart
8.使用root用户重新登录mysql
mysql -uroot -p
Enter password: <输入新设的密码newpassword>
原文链接:
https://zhuanlan.zhihu.com/p/141772012
https://cloud.tencent.com/developer/article/1188636
1037

被折叠的 条评论
为什么被折叠?



