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

Linux 部署 MySQL 5.7 完整教程:tar.gz 二進制包解壓安裝法

     編輯:MySQL 綜合教學

Linux 部署 MySQL 5.7 完整教程:tar.gz 二進制包解壓安裝法

生產環境常用二進制包(預編譯)部署 MySQL,可自定義安裝路徑、多實例共存、版本升級平滑。本文以 CentOS 7 + MySQL 5.7.3 為例,記錄標準化安裝全流程。

前置準備

  1. 官網下載 mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz(Glibc 2.5+ 通用版)。
  2. 上傳至目標伺服器(如 /opt/src/)。

標準化安裝步驟

1. 建立專用用戶與目錄結構

# 用戶/組(禁止登入)
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 安裝根目錄
mkdir -p /usr/local/mysqlService
cd /usr/local/mysqlService

# 移動並解壓
cp /opt/src/mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz .
tar -zxvf mysql-5.7.3-m13-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.3-m13-linux-glibc2.5-x86_64 mysql

# 權限歸屬
chown -R mysql:mysql /usr/local/mysqlService/mysql

2. 初始化數據目錄 (MySQL 5.7+)

cd /usr/local/mysqlService/mysql
# 5.7 使用 --initialize 或 --initialize-insecure
# --initialize-insecure:生成隨機 root 密碼並寫入 ~/.mysql_secret
# --initialize-insecure:root 無密碼(需首次登入修改)
./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysqlService/mysql --datadir=/usr/local/mysqlService/mysql/data

注意:輸出日誌中會顯示臨時 root 密碼(若用 --initialize),務必記錄。

3. 調整目錄權限

# 程式檔案屬 root,數據目錄屬 mysql
chown -R root:root /usr/local/mysqlService/mysql
chown -R mysql:mysql /usr/local/mysqlService/mysql/data

4. 配置啟動腳本與系統服務

# 複製啟動腳本
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

# 加入服務管理
chkconfig --add mysqld
chkconfig mysqld on

5. 建立配置文件 /etc/my.cnf

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

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
basedir=/usr/local/mysqlService/mysql
datadir=/usr/local/mysqlService/mysql/data
socket=/tmp/mysql.sock
port=3306
pid-file=/usr/local/mysqlService/mysql/mysqld.pid
log-error=/usr/local/mysqlService/mysql/log/mysqld.log
slow_query_log=1
slow_query_log_file=/usr/local/mysqlService/mysql/log/slow.log
long_query_time=1
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
max_connections=500
open_files_limit=65535

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

建立日誌目錄並授權:

mkdir -p /usr/local/mysqlService/mysql/log
chown mysql:mysql /usr/local/mysqlService/mysql/log
chmod 755 /usr/local/mysqlService/mysql/log

6. 關閉 Transparent Huge Pages (THP) — 關鍵效能優化

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 永久生效寫入 /etc/rc.local 或 systemd 服務

7. 啟動服務並驗證

service mysqld start
# 或 systemctl start mysqld (CentOS 7+)

# 檢查進程
ps -ef | grep mysqld | grep -v grep

# 檢查端口
netstat -nutlp | grep 3306

# 查看錯誤日誌
tail -f /usr/local/mysqlService/mysql/log/mysqld.log

8. 首次登入與安全初始化

/usr/local/mysqlService/mysql/bin/mysql -u root -p
# 輸入臨時密碼(或直接回車若用 initialize-insecure)

-- 修改 root 密碼並開啟遠程訪問
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassw0rd!';
CREATE USER 'root'@'%' IDENTIFIED BY 'StrongPassw0rd!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

-- 安全建議:刪除匿名用戶、禁止 root 遠程、移除 test 庫
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
FLUSH PRIVILEGES;

常用管理命令

service mysqld start / systemctl start mysqldservice mysqld stopservice mysqld restartservice mysqld status/usr/local/mysqlService/mysql/bin/mysql -u root -p/usr/local/mysqlService/mysql/bin/mysqldump -u root -p db > backup.sql
操作命令
啟動
停止
重啟
狀態
登入
備份

避坑清單

  • libnuma.so.1 缺失:yum install numactl
  • libaio 缺失:yum install libaio
  • SELinux 阻擋:setenforce 0 或配置策略
  • 防火牆 3306:firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload
  • 目錄權限錯誤:data 目錄必須屬 mysql:mysql,750 權限
  • 配置文件編碼:UTF-8 無 BOM

延伸閱讀:MySQL 8.0 安裝流程類似,但預設認證插件為 caching_sha2_password,老版本客端需指定 --default-auth=mysql_native_password 或建立兼容用戶。

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