首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

CentOS 7/8 快速安裝 MySQL 5.7/8.0 完整指南(Yum/RPM/二進制)

     編輯:MySQL 綜合教學

前言

CentOS 上安裝 MySQL 主流有三種方式:**Yum 官方源(推薦)**、**RPM 包**、**通用二進制包**。本文覆蓋三種方式,以 MySQL 5.7/8.0 為例,含初始化、安全加固、遠程授權全流程。

方式一:Yum 官方源安裝(最簡單、易維護)

1. 配置 Yum 源

# 下載並安裝官方 Yum 源包(含 5.7/8.0/Innovation)
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
# 或 5.7 專用源
# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql80-community-release-el7-5.noarch.rpm

2. 選擇版本(可選)

# 查看可用子倉庫
yum repolist all | grep mysql

# 切換到 5.7(默認 8.0)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

3. 安裝

yum install -y mysql-community-server
# 依賴自動解決:mysql-community-common, libs, client 等

4. 啟動與初始化

systemctl start mysqld
systemctl enable mysqld

# 5.7/8.0 首次啟動自動初始化 data 目錄,生成臨時 root 密碼
grep 'temporary password' /var/log/mysqld.log
# 輸出示例:2023-01-01T00:00:00.000000Z 0 [Note] A temporary password is generated for root@localhost: xYz#Abc123

5. 安全加固(修改密碼、移除匿名用戶、禁用遠程 root 等)

mysql_secure_installation
# 交互式向導:
# 1. 輸入臨時密碼
# 2. 設置強密碼(需滿足 validate_password 策略)
# 3. 移除匿名用戶? Y
# 4. 禁止 root 遠程登錄? Y(生產建議 Y,單獨創建遠程用戶)
# 5. 移除 test 庫? Y
# 6. 重新加載權限? Y

方式二:RPM 包離線安裝(無網環境)

# 1. 下載 RPM Bundle(官網 Downloads -> MySQL Yum Repository -> RPM Bundle)
# 2. 上傳至服務器,解壓
tar -xvf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar

# 3. 卸載舊版(關鍵!避免衝突)
yum remove -y mariadb-libs mysql*  # CentOS 7 預裝 mariadb-libs

# 4. 按依賴順序安裝
rpm -ivh mysql-community-common-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.42-1.el7.x86_64.rpm
# 如有依賴缺失:yum localinstall -y *.rpm

# 5. 後續同 Yum 方式:啟動、初始化、mysql_secure_installation

方式三:通用二進制包安裝(最高靈活度、多版本共存)

# 1. 下載 Linux Generic 包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz

# 2. 解壓部署
tar -xvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mysql-5.7.42-linux-glibc2.12-x86_64 /usr/local/mysql

# 3. 創建用戶與目錄
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
mkdir -p /data/mysql /var/log/mysql
chown -R mysql:mysql /usr/local/mysql /data/mysql /var/log/mysql

# 4. 配置 my.cnf(參考生產模板)
cat > /etc/my.cnf <<'EOF'
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
socket = /tmp/mysql.sock
character-set-server = utf8mb4
default-storage-engine = INNODB
log-error = /var/log/mysql/error.log
pid-file = /var/log/mysql/mysqld.pid
innodb_buffer_pool_size = 1G
# ... 其他參數
EOF

# 5. 初始化數據目錄
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# 記錄臨時密碼

# 6. 配置系統服務
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

# 7. 環境變量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

通用後續操作

創建業務用戶並授權遠程訪問

mysql -u root -p
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON `mydb`.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

防火牆放行

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

驗證連接

# 本地
mysql -u app_user -p -h 127.0.0.1

# 遠程
mysql -u app_user -p -h server_ip

版本選擇建議

版本狀態建議場景
5.7EOL 2023-10存量項目維護,不建議新項目
8.0 LTSGA,長期支持至 2026+新項目首選,CTE、窗口函數、JSON 增強、性能提升
8.4 LTS最新 LTS長期穩定運行項目

常見坑點

  • CentOS 7 預裝 mariadb-libs,安裝 MySQL 前必須卸載
  • MySQL 8.0 默認 caching_sha2_password,舊客戶端需指定 mysql_native_password
  • validate_password 策略導致密碼設置失敗,臨時調整策略或用複雜密碼
  • 二進制安裝需手動配置 my.cnf、systemd/init.d 服務、logrotate
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved