1. 下載并安裝 MySQL Yum 倉庫
從 MySQL 官方網站下載并安裝 Yum 倉庫配置文件。
# 下載MySQL 8.0的Yum倉庫包
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
# 安裝Yum倉庫包
sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm
2. 啟用 MySQL 8.0 倉庫
Yum 倉庫可能啟用了其他版本的 MySQL,你需要確保啟用的是 MySQL 8.0 倉庫。
# 查看可用的MySQL倉庫列表
yum repolist all | grep mysql
# 禁用MySQL 5.7倉庫(如果已啟用)
sudo yum-config-manager --disable mysql57-community
# 啟用MySQL 8.0倉庫
sudo yum-config-manager --enable mysql80-community
3. 安裝 MySQL Server
sudo yum install mysql-server
4. 啟動 MySQL 服務
sudo systemctl start mysqld
5. 檢查 MySQL 服務狀態
sudo systemctl status mysqld
如果服務正在運行,你會看到類似如下輸出:
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2025-03-11 14:20:30 CST; 1min 30s ago
…
6. 設置 MySQL 開機自啟
sudo systemctl enable mysqld
7. 獲取初始臨時密碼
在首次啟動 MySQL 時,系統會生成一個臨時密碼,你需要使用該密碼登錄 MySQL 并進行后續配置。
sudo grep 'temporary password' /var/log/mysqld.log
輸出類似如下內容:
2025-03-11T06:20:30.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: AbcDef123!
其中 AbcDef123! 就是你的初始臨時密碼。
如果提示目錄不存在之類的,點擊跳轉查看
點擊跳轉至目標位置
8. 登錄 MySQL 并修改密碼
使用初始臨時密碼登錄 MySQL。
mysql -u root -p
輸入臨時密碼后,你會進入 MySQL 命令行界面。接下來,你需要修改 root 用戶的密碼
-- 修改root用戶密碼,這里將密碼設置為YourNewPassword,你可以根據需要修改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 刷新權限
FLUSH PRIVILEGES;
開放mysql遠程鏈接
1. 登錄 MySQL
mysql -u root -p
輸入密碼后回車,即可進入 MySQL 命令行界面。
2. 創建允許遠程訪問的用戶(可選)
如果你想使用特定的用戶進行遠程連接,可以創建一個新用戶并賦予相應的權限。以下是創建用戶并授予所有數據庫權限的示例:
-- 創建一個名為 'remote_user' 的用戶,密碼為 'your_password',允許從任何主機連接
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
-- 授予該用戶對所有數據庫的所有權限
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
-- 刷新權限使更改生效
FLUSH PRIVILEGES;
其中,‘%’ 表示允許從任何主機連接。如果你想限制連接的主機,可以將 ‘%’ 替換為具體的 IP 地址或域名。
3. 修改 MySQL 配置文件
編輯 MySQL 的配置文件 my.cnf 或 my.ini,通常位于 /etc 目錄下。
sudo vi /etc/my.cnf
找到 bind-address 這一行(如果打開沒有bind相關 可以自己插入下面代碼),將其修改為允許遠程連接的 IP 地址。如果你想允許所有 IP 地址連接,可以將其注釋掉或設置為 0.0.0.0:
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
!qw保存退出
4. 重啟 MySQL 服務
sudo systemctl restart mysqld
5. 配置防火墻
如果你使用的是 firewalld,可以使用以下命令開放端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
如果你使用的是 iptables,可以使用以下命令開放端口:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo service iptables save
6. 驗證遠程連接
使用navicat可以測試連接
跳過權限驗證重置密碼
1. 停止 MySQL 服務
sudo systemctl stop mysqld
2. 以跳過權限驗證的方式啟動 MySQL
由于 mysqld_safe 在 MySQL 8 中已被棄用,我們可以通過修改 systemd 配置來實現。
sudo mkdir -p /etc/systemd/system/mysqld.service.d
sudo vi /etc/systemd/system/mysqld.service.d/override.conf
在打開的文件中添加以下內容:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
注意:如果 mysqld 的實際路徑不是 /usr/sbin/mysqld,需要根據實際情況修改。
3. 重新加載 systemd 配置并啟動 MySQL 服務
sudo systemctl daemon-reload
sudo systemctl start mysqld
4. 無需密碼登錄 MySQL
mysql -u root
5. 修改 root 用戶密碼
-- 刷新權限表
FLUSH PRIVILEGES;
-- 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 再次刷新權限
FLUSH PRIVILEGES;
6. 恢復正常啟動配置
刪除或注釋掉 /etc/systemd/system/mysqld.service.d/override.conf 中的內容,然后重新加載配置并重啟 MySQL 服務。
sudo systemctl daemon-reload
sudo systemctl restart mysqld
回到修改密碼