rpm -qa | grep mariadb
yum remove mariadb-libs.x86_64 -y
# 1. 下載 RPM 源包 (官方或鏡像)
wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
# 2. 安裝源
yum localinstall mysql57-community-release-el7-11.noarch.rpm -y
# 3. 驗證
yum repolist enabled | grep "mysql.*community.*"
yum install mysql-community-server -y
systemctl start mysqld
systemctl enable mysqld
systemctl daemon-reload
# 1. 查看隨機密碼
grep 'temporary password' /var/log/mysqld.log
# 輸出範例:2024-05-18T10:12:04.123456Z 1 [Note] A temporary password is generated for root@localhost: xYz#Abc123
# 2. 首次登入 (必須修改密碼才能執行其他命令)
mysql -u root -p'xYz#Abc123'
# 3. 修改密碼 (需滿足 validate_password 政策:長度 8+、大小寫、數字、特殊符號)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPwd123!';
FLUSH PRIVILEGES;
| 現象 | 原因 | 修復 |
|---|---|---|
| yum install 卡住/報 GPG Key 錯誤 | 源 RPM 未導入 GPG Key | rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql |
| 密碼策略太強導致修改失敗 | validate_password 預設 MEDIUM | 臨時降級:SET GLOBAL validate_password_policy=LOW; SET GLOBAL validate_password_length=4; 修改後再調回 |
| systemctl start mysqld 失敗 | SELinux / 目錄權限 / 配置錯誤 | journalctl -u mysqld -xe 看具體錯誤;chown -R mysql:mysql /var/lib/mysql |
| 遠程連不上 | bind-address=127.0.0.1 / 防火牆 | my.cnf → bind-address=0.0.0.0;firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload |
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
# InnoDB 核心
innodb_buffer_pool_size=4G # 物理記憶體 60-70%
innodb_log_file_size=512M
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=1
# 二進制日誌
log_bin=mysql-bin
expire_logs_days=7
sync_binlog=1
binlog_format=ROW
# 安全
skip_name_resolve=1
max_connections=1000
mysql -uroot -p'NewStrongPwd123!' -e "SELECT VERSION(); SHOW VARIABLES LIKE 'validate_password%';"
YUM 安裝標準化、可自動化、易升級,是 CentOS/RHEL 部署 MySQL 的首選路徑。