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

CentOS 6/7 快速部署 MySQL 5.7:官方 Yum 源安裝與安全初始化實戰

     編輯:MySQL 綜合教學

前言

CentOS 默認倉庫的 MySQL 版本過舊(5.1/5.5),生產環境需 5.7+ 享受原生 JSON、GIS、Generated Column、Sys Schema、複製增強等特性。本文演示通過官方 Yum Repository 快速部署 MySQL 5.7,涵蓋源配置、安裝、安全初始化、配置調優要點。

一、更換官方 Yum 源

# 1. 下載對應 Release 包(以 CentOS 7 為例)
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 5.7 專用源包名含 mysql57-community-release

# 2. 安裝源配置
rpm -ivh mysql57-community-release-el7-3.noarch.rpm

# 3. 驗證源生效
yum repolist enabled | grep mysql

注意:MySQL 官方源 2023 年後預設指向 8.0,需在 /etc/yum.repos.d/mysql-community.repo 中手動啟用 5.7 段(enabled=1)並禁用 8.0 段(enabled=0)。

二、安裝 Server 端

yum install -y mysql-community-server

三、啟動與安全初始化

# 啟動服務
systemctl start mysqld
systemctl enable mysqld

# 查看臨時 root 密碼(5.7+ 默認生成隨機密碼)
grep 'temporary password' /var/log/mysqld.log

# 安全向導:修改 root 密碼、移除匿名用戶、禁止遠程 root、刪除 test 庫
mysql_secure_installation

四、核心配置調優(/etc/my.cnf)

[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

# 連接
max_connections=1000
max_connect_errors=100000
wait_timeout=600
skip_name_resolve=1

# InnoDB 核心(按實例內存 60-70%)
innodb_buffer_pool_size=1G
innodb_buffer_pool_instances=8
innodb_log_file_size=256M
innodb_log_files_in_group=3
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_file_per_table=1
innodb_io_capacity=2000

# 複製(如需)
server_id=101
log_bin=mysql-bin
binlog_format=ROW
expire_logs_days=7
gtid_mode=ON
enforce_gtid_consistency=1

# 慢查詢
slow_query_log=1
slow_query_log_file=/var/lib/mysql/slow.log
long_query_time=1
log_queries_not_using_indexes=1

# SQL 模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO

[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

五、常見問題排查

  • 無法啟動:journalctl -u mysqld -xe、檢查 datadir 權限、selinux 模式
  • 密碼策略報錯:validate_password 插件要求長度/複雜度,mysql_secure_installation 會引導修改
  • 遠程連不上:GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'pass'; FLUSH PRIVILEGES;、防火牆放行 3306

六、升級路徑建議

MySQL 5.7 於 2023 年 10 月結束 GA 支持,建議規劃升級至 8.0 LTS(長期支持至 2026/2028)。升級前必須:

  1. mysqlcheck --all-databases --check-upgrade 檢查不兼容
  2. 備份全量數據
  3. 測試環境驗證應用兼容性(保留字、優化器行為、認證插件變更)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved