RHEL/CentOS 官方倉庫預設僅含 MariaDB,需手動添加 MySQL 官方 YUM 倉庫安裝 5.7 版本。
wget https://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
關鍵:必須選 mysql57-community-release 開頭的包,非 mysql-community-release(那是 5.6/8.0)。
ls /etc/yum.repos.d/
# 應出現 mysql-community.repo 和 mysql-community-source.repo
yum install mysql-community-server
會自動解析相依:mysql-community-client、mysql-community-common、mysql-community-libs 等。
# 初始化資料目錄(生成臨時 root 密碼)
mysqld --initialize
# 啟動服務
systemctl start mysqld
# 或舊版
service mysqld start
# 查看臨時密碼
grep 'temporary password' /var/log/mysqld.log
# 登入並修改
mysql -u root -p
# 輸入臨時密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
# 若密碼策略報錯,見下方處理
SET GLOBAL validate_password_policy = LOW; -- 0/LOW/MEDIUM/HIGH
SET GLOBAL validate_password_length = 6;
-- 然後重新 ALTER USER
CREATE USER 'hadoop'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
vim /etc/my.cnf
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
[client]
default-character-set = utf8mb4
systemctl restart mysqld
mysql -u root -p -e "SELECT VERSION(); SHOW VARIABLES LIKE 'char%';"
systemctl status mysqld
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysqlsetsebool -P mysql_connect_any 1 或調整策略firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reloadchown -R mysql:mysql /var/lib/mysql