如下的處理,是在mysql 的mysql.user表的 加密使用的是mysql_native_password的狀況,若是不是請參考文章的末尾 部分:mysql
1. 登陸不到mysql內的狀況下,非生產環境,建議修改配置文件/etc/mysql/my.cnfsql
在數據庫
[mysqld]的地方添加:bash
skip-grant-tables
而後重啓mysqlide
sudo service mysql restart
直接免密碼進入數據庫:加密
mysql
按照其餘人的教程是:spa
update user set password=password("new_passsword") where user = 'root'; flush privileges;
重啓mysql便可。rest
可是在有的mysql.user表中,password列會被authentication_string 列名代替,這就要咱們手動修改一下上述的列名便可。code
update user set authentication_string=password("new_passoword") where user = "root";
flush privileges;
ok ,完活!blog
2.能夠進入mysql修改root
步驟同上。
密碼修改完畢之後,記得要將上述的
skip-grant-tables
註釋掉,而後重啓mysql
受權 子用戶的語法格式 :
grant all privileges on databases_name.* to user_name@'allow_ip' identified by 'password';
Attention :
若是屢次處理,用戶的密碼仍舊不正確,請在跳過密碼登陸後,查看錶
select * from mysql.user\G
查看root用戶的plugin 列,採用的加密規則,若是不是mysql_native_password ,那麼須要修改;
sql語句以下:
use mysql; update user set plugin='mysql_native_password' where user = 'root';
問題 就能夠解決嘍