这种方式开启远程连接:
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');