执行 mysql -uroot -p
报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
原因:安装完mysql的时候没有设置密码
解决原因:
1.linux系统--->找到 my.conf文件(vim /etc/mysql/my.cnf)
windows系统--->找到my.ini
2.添加
[mysqld]
skip-grant-tables # 这个内容是跳过验证,直接进入mysql
3.保存修改信息,重启mysql
重启命令:
service mysql restart
4.进入mysql
mysql
5.执行更改密码命令
mysql> use mysql;
-----------------------------------------
修改密码部分:
mysql> update user set password=password('你的新密码') where user='root' and host='localhost';
或者
mysql> update mysql.user set authentication_string=password('你的新密码') where user='root' and Host = 'localhost';
注意:新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段
-----------------------------------------
mysql> flush privileges;
mysql>quit
6.将MySQL配置文件中的修改内容还原
注释掉
skip-grant-tables
报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost' --->使用普通用户登录的时候会出现这种错误
原因是:root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password
解决方法:进入mysql
mysql>use mysql;
mysql>update mysql.user set plugin='mysql_native_password' where user='root';
重启mysql服务器
service mysql restart