前言
- 近期因為一些原因租了臺阿里云服務器也就想來順便練練手,沒想到在配置遠程MySQL時竟然折騰了半天,話說MySQL從5.7一下子跳到了8.0,改變真的是很大啊。記錄下安裝過程中遇到的問題。
- 參考資料
操作
- 安裝
- 更新yum,確保服務器系統處于最新狀態
yum -y update - 檢查是否已經安裝,如果已經安裝就刪除以前版本
- 下載安裝MySQL
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
yum install -y mysql-server
- 更新yum,確保服務器系統處于最新狀態
- 啟動
- 開啟服務
systemctl start mysqld.service - 檢查是否已經安裝了開機自動啟動
systemctl list-unit-files | grep mysqld
如果顯示以下內容說明已經完成自動啟動安裝
mysqld.service enabled - 設置開機啟動
Mysqlsystemctl enable mysqld.service
- 開啟服務
- 設置mysql密碼
- 查看臨時密碼
grep 'temporary password' /var/log/mysqld.log - 使用臨時密碼登陸,更改密碼
就是這里我踩坑了,MySQL以前版本的密碼認證插件是“mysql_native_password”,而現在使用的是“caching_sha2_password”,所以修改密碼語句也發生了變化。
USE mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
FLUSH PRIVILEGES;
- 查看臨時密碼
- 配置遠程權限
- 設置阿里云安全組規則入方向,支持MySQL端口3306可訪問
- MySQL在8.0.11之后移除了grant 添加用戶的功能,也就是說不能通過 grant all …… 來添加一個 host 為 % 的root賬號了,所以直接去表里更改
use mysql
select host,user,authentication_string,plugin from user;
update user set host = "%" where user='root';