mysql远程连接后本地连接不上

这种方式开启远程连接:

mysql>update user set host = '%' where user = 'root';

mysql>FLUSH RIVILEGES

开启远程连接后,本地就没有root@localhost 了。

 

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

方法一:
1.关闭mysql
   # service mysqld stop
2.屏蔽权限
   # mysqld_safe --skip-grant-table
   屏幕出现: Starting demo from .....
3.新开起一个终端输入
   # mysql -u root mysql
   mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> \q

方法二:
1.关闭mysql
   # service mysqld stop
2.屏蔽权限
   # mysqld_safe --skip-grant-table
   屏幕出现: Starting demo from .....
3.新开起一个终端输入
   # mysql -u root mysql
   mysql> delete from user where USER='';
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> \q

原文:https://www.cnblogs.com/gyrgyr/p/6872972.html

 

windows mysql57 my.ini在c盘C:\ProgramData\MySQL\MySQL Server 5.7里

忘记密码后,在my.ini里加入

skip-grant-tables

保存重启服务,无密码登录

flush privileges;

set password for 'root'@'localhost'=password('123456');

退出,删除选项,重启服务,有密码登录

 

授权法开启远程连接:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' 

flush privileges; 

如果还是不行,

set password for 'root'@'%'= password('123456');  

你可能感兴趣的:(其他)