# 下載 RPM 包(以 el7 為例) wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm # 本地安裝倉庫配置 yum localinstall -y mysql80-community-release-el7-3.noarch.rpm # 驗證倉庫已啟用 yum repolist enabled | grep mysql
指定版本: 編輯 /etc/yum.repos.d/mysql-community.repo,將欲安裝版本的 enabled=1,其餘 enabled=0。
yum install -y mysql-community-server
安裝路徑:/var/lib/mysql(資料)、/etc/my.cnf(配置)、/usr/bin/mysql(客戶端)。
systemctl start mysqld systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log # 輸出類似:2024-01-01T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: xYz#Abc123
mysql_secure_installation
按提示:修改 root 密碼、移除匿名用戶、禁止 root 遠程登入、移除 test 庫、重載權限。
原因: /var/lib/mysql 非空(殘留舊檔案)。
# 備份並清空 mv /var/lib/mysql /var/lib/mysql.bak mkdir /var/lib/mysql chown mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql systemctl start mysqld
setenforce 0 # 或永久關閉 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPass123!'; GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'%'; FLUSH PRIVILEGES;
# /etc/my.cnf [mysqld] bind-address = 0.0.0.0
firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload
# /etc/my.cnf [mysqld] validate_password.policy=LOW validate_password.length=4
mysql -u root -p -e "SELECT VERSION(); SHOW DATABASES;"