ubuntu18.04下安裝mysql5.7+及創(chuàng)建用戶

mysql5.7+安裝與之前版本有一些不同,參考老的教程容易踩坑,所以我總結(jié)了一下供大家參考
基本命令:

sudo apt update
sudo apt install mysql-server
sudo netstat -tap | grep mysql

與之前版本不同,5.7+安裝過程中不會(huì)讓你輸入root密碼,所以應(yīng)該如何登陸mysql?

1.你是用root賬戶登錄的
那么簡單一條命令即可mysql -u root不需要輸入密碼。

2.你不是root賬戶登錄的
那么方法一就行不通了,mysql會(huì)拒絕你登錄。

對于這種情況網(wǎng)上很多教程是采用免密模式登錄mysql,然后修改密碼。但其實(shí)有一種更簡單的方式:
打開下面的文件sudo vim /etc/mysql/debian.cnf里面有mysql提供的默認(rèn)賬戶密碼。
然后登錄mysql -u debian-sys-maint -p

現(xiàn)在登錄mysql的問題解決了,但是還有個(gè)問題,為什么root用戶可以免密登錄而其他用戶不行?
查看mysql下的user表我們會(huì)發(fā)現(xiàn):root賬戶是用auth_socket登錄的,密碼為空,所以你是無法用密碼登錄的。對于auth_socket我查到的解釋是:如果連接是通過unix套接字完成的,并且客戶端進(jìn)程的所有者與連接到mysqld時(shí)使用的用戶名匹配,則身份驗(yàn)證成功。
所以需要root賬戶才能免密登錄mysql。

然后創(chuàng)建一個(gè)名為ubuntu,密碼為NewPassword,Host為localhost的mysql用戶:

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'NewPassword';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost';
FLUSH PRIVILEGES;

或者修改root密碼及登錄方式:

UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword'), plugin='mysql_native_password' WHERE User='root' AND Host = 'localhost';
FLUSH PRIVILEGES;

之后便可用賬號密碼登錄了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容