首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CentOS 6.5 部署 MySQL 5.7.16 (glibc2.5 x86_64) 完整實戰指南

     編輯:MySQL 資料庫相關知識

環境與版本說明

  • 系統:CentOS 6.5 (Final)
  • MySQL:5.7.16 Linux Generic (glibc 2.5, x86_64)
  • 安裝方式:二進制壓縮包 (.tar.gz),非 RPM/YUM
  • 適用版本:5.7.10 ~ 5.7.16 通用

一、下載與預檢查

# 官網下載
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

# 檢查現有 MySQL 殘留
rpm -qa | grep -i mysql

# 徹底清理舊版本(忽略依賴)
rpm -e mysql-community-libs-5.7.16 --nodeps
rpm -e mysql-community-server-5.7.16 --nodeps
# ... 依次刪除所有相關包

# 再次確認
rpm -qa | grep -i mysql

二、創建用戶、目錄與權限

# 刪除可能存在的舊用戶/組
userdel mysql 2>/dev/null
groupdel mysql 2>/dev/null

# 創建用戶組與用戶
groupadd mysql
useradd -r -g mysql -s /sbin/nologin -d /home/mysql mysql

# 創建目錄結構
mkdir -p /home/mysql/data
chown -R mysql:mysql /home/mysql
chmod 750 /home/mysql/data

三、解壓部署

tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
cd mysql-5.7.16-linux-glibc2.5-x86_64
mv * /home/mysql/

四、初始化數據目錄 (關鍵:5.7 新特性)

MySQL 5.7 棄用 mysql_install_db,改用 mysqld --initialize:

cd /home/mysql

# 清空 data 目錄(首次初始化可跳過)
rm -rf data/*

# 執行初始化(生成隨機 root 密碼)
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

關鍵輸出:

2016-04-08T01:48:00.440904Z 1 [Note] A temporary password is generated for root@localhost: mjT,#x_5sW

務必記錄此隨機密碼,後續修改密碼需用到。

五、配置文件與服務腳本修正

1. 修正啟動腳本路徑

vim /home/mysql/support-files/mysql.server
# 修改 basedir 和 datadir 為實際路徑
basedir=/home/mysql
datadir=/home/mysql/data

2. 創建系統配置文件

# 備份舊配置
mv /etc/my.cnf /etc/my.cnf.bak 2>/dev/null

# 複製模板並修改
cp /home/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf

推薦配置:

[mysqld]
basedir = /home/mysql
datadir = /home/mysql/data
port = 3306
socket = /tmp/mysql.sock
character_set_server = utf8mb4
init_connect = 'SET NAMES utf8mb4'
default_storage_engine = InnoDB
innodb_buffer_pool_size = 1G
max_connections = 200
sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

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

六、啟動驗證與服務註冊

# 測試啟動
/home/mysql/support-files/mysql.server start

# 註冊系統服務
cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

# 管理命令
service mysqld start|stop|restart|status

七、創建命令軟鏈接

ln -sf /home/mysql/bin/mysql /usr/bin/mysql
ln -sf /home/mysql/bin/mysqldump /usr/bin/mysqldump
ln -sf /home/mysql/bin/mysqladmin /usr/bin/mysqladmin

八、修改 Root 密碼與安全加固

# 登錄並修改密碼
mysql -u root -p'mjT,#x_5sW'

# MySQL 5.7.6+ 推薦語法
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';
FLUSH PRIVILEGES;

# 或使用 mysqladmin
mysqladmin -u root -p'mjT,#x_5sW' password 'StrongPass123!'

九、配置遠程訪問權限

mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;

生產環境建議:創建專用業務賬號,限制訪問 IP 段,避免 root 遠程登錄。

十、防火牆與驗證

# CentOS 6 iptables
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

# 客戶端測試連接
mysql -h server_ip -u root -p

常見問題排查

問題原因解決
啟動報找不到 /usr/local/mysqlmysql.server 腳本默認路徑修改 basedir/datadir 為實際路徑
initialize 報 data 目錄非空殘留文件rm -rf data/* 後重試
忘記隨機密碼未記錄添加 skip-grant-tables 重置
中文亂碼字符集不一致統一設置 utf8mb4

總結

本指南覆蓋了 CentOS 6.5 上 MySQL 5.7 二進制包部署的全流程,重點解決了 5.7 新初始化機制、路徑修正、隨機密碼處理等核心難點。生產環境部署時建議:參數調優、啟用審計日誌、配置主從復制、制定備份策略。

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