安裝mysql-server之后,root用戶不能登錄問題


解決步驟:

step1

mysql -u root -p  # 報錯
# 報錯信息……

step2

sudo cat /etc/mysql/debian.conf    # 查看此文件內debin-sys-maint用戶的信息,這是系統自動生成的
mysql -u debin-sys-maint -p        # 用debin-sys-maint 登錄mysql,密碼在debin.conf里面

step3 修改root用戶的密碼

參考mysql查看數據庫、表的基本命令

mysql> show databases;    # 顯示數據庫列表
mysql > use mysql;    # 進入mysql這個數據庫
mysql> show tables;    # 顯示表;
mysql> update user set authentication_string=PASSWORD("這里填要修改的密碼") where user='root' and Host='localhost'

step4

$ mysql -u root -p
# 權限拒絕,不能訪問mysql
$ sudo service mysql restart     # 這樣也不行
再次執行step2、step3
mysql> use mysql;
mysql> select * from user;    # 一堆信息,嘗試找出我們可能需要的列
mysql> select User, plugin, authentication_string, account_locked, password_expired, password_last_changed from user;
# 可以看到用戶root的plugin值為auth_socket,其他用戶的plugin值都為mysql_native_password
# 此時,找到root用戶不能登錄mysql的原因:
# root的plugin被修改成了auth_socket,用密碼登陸的plugin應該是mysql_native_password,直接用root權限登錄就不用密碼,修改root密碼和登錄驗證方式。
# 所以,之前我僅僅是更改了root用戶的密碼,但是root用戶的登錄驗證方式還是auth_socket的,
# 所以,要更改root賬戶認證模式
mysql> update user set authentication_string=PASSWORD('密碼'), plugin='mysql_native_password' where user='root';
mysql> flush privileges;
mysql> exit;
# 重啟mysql-server
$ sudo service mysql restart

附錄

# flush privileges 什么意思
# mysql 新設置用戶或更改密碼后需用flush privileges刷新MySQL的系統權限相關表,否則會出現拒絕訪問,還有一種方法,就是重新啟動mysql服務器,來使新設置生效。­
# 檢查mysql是否運行
sudo netstat -tap | grep mysql
# 刪除MySQL的方法
sudo apt-get autoremove --purge mysql-server-5.7
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
# 上面的可能會有些是多余的,之后需要清理殘余數據
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
# 配置root遠程登陸
mysql> grant all on *.* to root@'%' identified by '密碼' with grant option;
mysql> flush privileges;
mysql> exit;

Windows10 忘記 mysql 5.7 的root密碼的解決辦法:

64位 windows10,MYSQL8.0.13重置密碼(忘記密碼或者無法登錄)
期間,如果想要刪除mysql 8.0 service ,
輸入sc query mysql,查看一下名為mysql的服務
輸入sc delete mysql,刪除該mysql


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM