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

Linux 下 MySQL 5.6 二進制包部署實戰:從解壓到開機自啟

     編輯:MySQL 綜合教學

Linux 下 MySQL 5.6 二進制包部署實戰:從解壓到開機自啟

二進制包(Generic Linux Glibc)免編譯、部署快、版本固定,是生產環境主流選擇。本文以 RedHat 6.2 + MySQL 5.6 x86_64 為例,記錄標準化部署全流程。

一、 環境準備與解壓

# 下載解壓
tar -zxvf mysql-5.6.x-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.6.x-linux-glibc2.12-x86_64 /usr/local/mysql

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

# 創建數據、日志、Socket 目錄
mkdir -p /usr/local/mysql/data /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql

二、 配置文件 my.cnf 核心參數

拷貝模板並修改:cp support-files/my-default.cnf /usr/local/mysql/my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
pid-file = /usr/local/mysql/mysqld.pid
user = mysql
port = 3306
server-id = 1

skip-name-resolve            # 跳過 DNS 反解,提升連接速度
lower_case_table_names = 1   # 表名不區分大小寫,跨平台遷移安全
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
explicit_defaults_for_timestamp = ON  # 5.6.6+ 兼容舊版 TIMESTAMP 行為

# InnoDB 核心調優 (按內存 60-70% 設置)
innodb_buffer_pool_size = 4G
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = ON
innodb_data_file_path = ibdata1:1G:autoextend

[mysqld_safe]
log-error = /usr/local/mysql/log/mysqld.log
pid-file = /usr/local/mysql/mysqld.pid

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

三、 數據庫初始化

cd /usr/local/mysql
./scripts/mysql_install_db --defaults-file=my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

生成 data/mysql 系統庫及 ibdata1、ib_logfile*。

四、 服務註冊與管理

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

# 常用操作
service mysqld start|stop|restart|status

五、 手動啟停腳本(調試/應急用)

# 啟動
cd /usr/local/mysql
./bin/mysqld_safe --defaults-file=my.cnf &

# 停止 (推薦)
./bin/mysqladmin -u root -p -h 127.0.0.1 shutdown
# 或強制
pkill -f mysqld

六、 安全初始化與遠程授權

# 設置 root 密碼
./bin/mysqladmin -u root -h 127.0.0.1 password 'StrongPass123!'

# 遠程授權
./bin/mysql -uroot -h127.0.0.1 -p -e "
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;"

# 刪除匿名用戶、測試庫
./bin/mysql -uroot -h127.0.0.1 -p -e "
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;"

七、 驗證與監控接入

  • 端口監聽: netstat -ltnp | grep 3306
  • 連接測試: mysql -uroot -h127.0.0.1 -p -e "SELECT VERSION();"
  • Prometheus 監控: 部署 mysqld_exporter 采集指標。

八、 避坑指南

  1. libaio 依賴: yum install -y libaio,缺失會報 libaio.so.1 not found。
  2. SELinux: setenforce 0 臨時關閉,或配置策略允許 mysqld_t 讀寫數據目錄。
  3. 時區同步: ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,避免 TIMESTAMP 寫入偏差。
  4. 文件描述符: ulimit -n 65535 寫入 /etc/security/limits.conf 及 mysqld_safe 腳本。

標準化二進制部署流程,配合版本鎖定、配置模板化、自動化腳本,可實現 MySQL 集群的分鐘級交付與穩定運維。

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