1、解决方式一:改表法
~ use mysql;
~ update user set host = '%' where user = 'root';
~ select host, user from user;
~ flush privileges;//刷新权限
2、方法二:授权法
//不限制IP
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
flush privileges;
//限制IP
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;
3 MySQL Error: : 'Access denied for user 'root'@'localhost'
Open & Edit /etc/my.cnf or /etc/mysql/my.cnf, depending on your distro.
Add skip-grant-tables under [mysqld]
Restart Mysql
You should be able to login to mysql now using the below command mysql -u root -p
Run mysql> flush privileges;
Set new password by ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Go back to /etc/my.cnf and remove/comment skip-grant-tables
Restart Mysql
Now you will be able to login with the new password mysql -u root -p
4 设置sql_mode
top@ubuntu:/etc/mysql$ sudo vim mysql.conf.d/mysqld.cnf
[mysqld]
sql_mode =
top@ubuntu:/etc/mysql$ sudo service mysql restart