# 按依賴順序從下往上卸載 rpm -e --nodeps qt-MySQL-4.6.2-26.el6_4.x86_64 rpm -e --nodeps mysql-server-5.1.71-1.el6.x86_64 rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 rpm -e --nodeps mysql-devel-5.1.71-1.el6.x86_64 rpm -e --nodeps mysql-5.1.71-1.el6.x86_64 # 驗證清理乾淨 rpm -qa | grep -i mysql
cd /etc/yum.repos.d/ cat > mysql.repo << 'EOF' # Enable to use MySQL 8.0 [mysql80-community] name=MySQL 8.0 Community Server baseurl=https://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql EOF
yum repolist enabled | grep mysql # 輸出應包含 mysql80-community
yum install -y \ mysql-community-common \ mysql-community-libs \ mysql-community-client \ mysql-community-server \ mysql-community-devel
service mysqld start service mysqld status
首次啟動會自動:
validate_password 插件root@localhost 並生成隨機密碼# 查看隨機密碼 grep 'temporary password' /var/log/mysqld.log # 輸出示例:2023-01-01T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: xYz#123Abc # 登入並修改密碼(需符合 validate_password 政策:長度、大小寫、數字、特殊字符) mysql -uroot -p'xYz#123Abc' ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass#123';
-- 允許 root 從任意主機連接(生產環境建議創建專用用戶) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'NewStrongPass#123' WITH GRANT OPTION; FLUSH PRIVILEGES;
chkconfig mysqld on
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT service iptables save
cat > /usr/local/bin/mysql_health_check.sh << 'EOF' #!/bin/bash mysql -uroot -p'NewStrongPass#123' -e "SELECT VERSION(); SHOW VARIABLES LIKE 'character_set_server';" EOF chmod +x /usr/local/bin/mysql_health_check.sh mysql_health_check.sh
mysqldump --all-databases --single-transaction --routines --triggers > backup_5x.sqlmysqlcheck --all-databases --check-upgrademysql_upgrade -uroot -pANALYZE TABLE 核心業務表