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 '密碼'
可以使用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官方文件(文件地址)