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

CentOS 7 快速安裝 MySQL 5.7/8.0 完整教學(YUM/RPM/二進制)

     編輯:MySQL 綜合教學

前言

CentOS 7 是伺服器部署 MySQL 的主流選擇。本文提供三種安裝方式:官方 YUM 倉庫(推薦)、RPM 套件離線安裝、官方二進制壓縮包(通用),並涵蓋初始化、安全配置、字符集設定、系統服務管理與驗證測試全流程。

方式一:官方 YUM 倉庫安裝(最簡單、易維護)

1. 下載並安裝 MySQL YUM Repository

# MySQL 8.0
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# MySQL 5.7
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

rpm -ivh mysql*-community-release-el7-*.rpm

2. 安裝 MySQL Server

yum install -y mysql-community-server
# 安裝過程會自動導入 GPG Key,輸入 y 確認

3. 啟動並設定開機自啟

systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

4. 獲取臨時 root 密碼(MySQL 5.7+)

grep 'temporary password' /var/log/mysqld.log
# 輸出範例:2023-10-01T02:30:00.123456Z 1 [Note] A temporary password is generated for root@localhost: xYz#Abc123

5. 執行安全初始化

mysql_secure_installation
# 依提示操作:
# 1. 輸入臨時密碼
# 2. 設定新密碼(需符合 validate_password 政策)
# 3. 移除匿名用戶? Y
# 4. 禁止 root 遠程登入? Y(生產建議 Y,改用專用帳號)
# 5. 移除 test 資料庫? Y
# 6. 重新載入權限表? Y

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

# 1. 下載 RPM Bundle(官網 Downloads → MySQL Community Server → Red Hat Enterprise Linux / Oracle Linux)
# 2. 上傳至伺服器解壓
tar -xvf mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar

# 3. 安裝核心套件(依賴順序重要)
rpm -ivh mysql-community-common-*.rpm
rpm -ivh mysql-community-client-plugins-*.rpm
rpm -ivh mysql-community-libs-*.rpm
rpm -ivh mysql-community-client-*.rpm
rpm -ivh mysql-community-server-*.rpm
# 若缺少依賴:yum install -y libaio numactl-libs

後續步驟同方式一(啟動、臨時密碼、安全初始化)。

方式三:官方二進制壓縮包(通用、可自定義安裝路徑)

# 1. 建立用戶與目錄
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
mkdir -p /usr/local/mysql /data/mysql

# 2. 下載解壓
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-*.tar.xz -C /usr/local/mysql --strip-components=1

# 3. 初始化資料目錄
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
# 輸出會顯示臨時 root 密碼,請記錄

# 4. 配置 my.cnf
cat > /etc/my.cnf <<'EOF'
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
port=3306
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
default-storage-engine=InnoDB
innodb_buffer_pool_size=1G
max_connections=500
log-error=/data/mysql/error.log
pid-file=/data/mysql/mysql.pid
EOF

# 5. 建立系統服務
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

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

# 7. 啟動
service mysqld start

通用後續配置

1. 字符集設定(utf8mb4 完整支援 Emoji)

在 /etc/my.cnf [mysqld] 區段:

character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'

[client] 區段:

default-character-set=utf8mb4

[mysql] 區段:

default-character-set=utf8mb4

2. 遠程連線授權

mysql -uroot -p
# 建立遠程帳號
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPass@123';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

並確認防火牆開放 3306:

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

3. 驗證測試

mysql -uapp_user -p -h 127.0.0.1 -e "SHOW DATABASES; SELECT VERSION();"

常見問題排查

問題原因與解決
忘記 root 密碼停止服務 → mysqld_safe --skip-grant-tables & → 免密登入 → ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; → 重啟
ERROR 1045 (28000): Access denied密碼錯誤、主機不匹配、權限未刷新、skip-grant-tables 未關閉
無法遠程連線bind-address=0.0.0.0、防火牆、雲廠商安全組、帳號 host 非 %
中文亂碼確認 client/connection/results/database/table/column 皆為 utf8mb4

總結

生產環境**強烈建議使用官方 YUM 倉庫安裝 MySQL 8.0** 並配合 mysql_secure_installation 完成加固。二進制包適合多版本共存或特殊路徑需求。安裝後務必:設定 utf8mb4、建立業務專用帳號、開啟防火牆/安全組、配置備份策略、接入監控體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved