1. 程式人生 > 其它 >ubuntu下安裝mysql 常見問題

ubuntu下安裝mysql 常見問題

MySQL安裝

直接執行sudo apt install mysql-server即可安裝MySQL

MySQL初始化

ubuntu18.04下安裝完成後預設root使用者無登陸密碼,但注意登陸為linux的root賬戶時可免密登陸非root使用者使用sudo mysql登陸。
登陸後可更改root密碼操作如下:
直接sudo mysql即可登陸。登陸成功後輸入use mysql使用mysql輸入 alter user "root"@"localhost" identified with mysql_native_password by "新密碼"修改root密碼。使用flush privileges

重新整理許可權。所有操作完成後quit退出後即可使用普通linux非root使用者登陸MySQL。你也可是使用其他文章中普遍使用的debian.conf檔案登陸法。

設定遠端登陸

登陸到root使用者使用 grant all privileges on 資料庫.* to 'sql使用者'@'%' identified by '密碼'修改許可權,記得flush privileges重新整理許可權。
這裡說明一下%含義,指任意主機,具體參照mysql官方文件如下圖(文件地址)

在執行授權命令時可能遇到這個錯誤(如果有幸讀者不是我自己,你可能不會遇到這個問題)

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因是MySQL的安全認證外掛認為你的密碼強度過低不適合做此操作你可以使用show variables like 'validate_password%'檢視當前密碼限制條件該命令執行結果如下

其中validate_password_policy為密碼驗證等級可選值包括LOW、MEDIUM、STRONG分別對應不同的驗證條件(具體沒記住用的時候查一下就行)。使用set global validate_password_policy=LOW將驗證等級設為LOWflush privileges重新整理許可權.

此時你有可能可以執行grant all privileges on 資料庫.* to 'sql使用者'@'%' identified by '密碼'

為什麼說有可能。這要看你的密碼長度是否小於validate_password_length這個引數如果小於則你的密碼依然不符合MySQL當前驗證機制。

可以使用set global validate_password_length=你的密碼長度後重新整理許可權再執行grant all privileges on 資料庫.* to 'sql使用者'@'%' identified by '密碼'

其原理就是修改上圖中這些屬性值讓你的密碼可以通過表中的檢查即可。掌握原理其他屬性也可以照葫蘆畫瓢。

如果此時依然無法遠端連線到你的mysql,檢查MySQL配置檔案bind_address屬性可能其值為127.0.0.1將其設定為0.0.0.0。完成設定後輸入systemctl restart mysql重啟MySQL(這裡需不需要重啟MySQL服務筆者並不確定,因為懶也不想測試了。重啟下也沒有壞處emmm)

不同版本的MySQL配置檔案位置有所不同筆者的版本為5.7.29配置檔案位置為/etc/mysql/mysql.conf.d/mysqld.cnf

值為0.0.0.0時表示在所有伺服器主機IPv4介面上接受TCP/IP連線。更多可選值及含義參照MySQL官方文件(文件地址)