在 Ubuntu18.04 中使用 sudo apt-get install mysql-server
安裝 MySQL時,會默認安裝 MySQL5.7,且無法通過 mysql -uroot -p
進入 MySQL柒爵。報錯:"Access denied for user 'root'@'localhost'"
原因:root 的 plugin 被修改為了 auth_socket,而密碼登錄的 plugin 應該是 mysql_native_password赚爵。
一棉胀、安裝命令
依次執(zhí)行一下命令:
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
sudo netstat -tap | grep mysql
二、設(shè)置密碼
直接 Root 權(quán)限登錄冀膝,可不用密碼唁奢。
# 切換到Root用戶
$ sudo su
# 直接進入MySQL,無須密碼
$ mysql
# 查看賬戶窝剖,可看出 root 的 plugin 是 auth_socket麻掸,其他的都是 mysql_native_password
mysql> select user,plugin,from mysql.user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
4 rows in set (0.00 sec)
# 更新密碼、更換 plugin
mysql> update mysql.user set authentication_string=PASSWORD('123456'), plugin='mysql_native_password' where user='root';
# 刷新權(quán)限
mysql> flush privileges;
# 退出MySQL
mysql> exit
# 重啟MySQL服務(wù)
$ sudo /etc/init.d/mysql restart
此時再輸入 mysql -uroot -p
赐纱,即可通過密碼連接了脊奋。
三、配置遠程登錄
疙描,并將root的訪問改為 *.*
即可诚隙。
# 找到配置文件,注釋掉bind-address
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 進入MySQL
$ mysql -uroot -p
# 修改Root用戶的訪問權(quán)限
mysql> grant all on *.* to root@'%' identified by '123456' with grant option;
# 刷新權(quán)限
mysql> flush privileges;
# 退出MySQL
mysql> exit
# 重啟MySQL服務(wù)
$ sudo /etc/init.d/mysql restart
四起胰、卸載MySQL
# 查看 MySQL 的依賴項
$ dpkg --list|grep mysql
# 卸載命令
$ sudo apt-get remove mysql-common
# 卸載命令
$ sudo apt-get autoremove --purge mysql-server-5.7
# 清除殘留數(shù)據(jù)
$ dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
# 再次查看 MySQL 剩余依賴項
$ dpkg --list|grep mysql
# 刪除剩余依賴項
$ sudo apt-get autoremove --purge mysql-apt-config