首頁
編程語言
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 二進制包解壓安裝法(精簡版)

本文為快速部署參考,詳細原理與優化配置請參考完整版(文章 172793)。

快速部署腳本

#!/bin/bash
# 以 root 執行,自動化安裝 MySQL 5.7 二進制包
VERSION="5.7.3-m13"
BASE_DIR="/usr/local/mysqlService"
PKG="mysql-${VERSION}-linux-glibc2.5-x86_64.tar.gz"
URL="https://dev.mysql.com/get/Downloads/MySQL-5.7/${PKG}"

# 1. 依賴
yum install -y numactl libaio

# 2. 用戶
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 3. 目錄
mkdir -p ${BASE_DIR}
cd ${BASE_DIR}

# 4. 下載解壓
wget -c ${URL}
tar -zxvf ${PKG}
mv mysql-${VERSION} mysql

# 5. 權限
chown -R mysql:mysql ${BASE_DIR}/mysql

# 6. 初始化(無密碼模式,首次登入務必改密)
${BASE_DIR}/mysql/bin/mysqld --initialize-insecure --user=mysql \
  --basedir=${BASE_DIR}/mysql --datadir=${BASE_DIR}/mysql/data

# 6.1 權限分離
chown -R root:root ${BASE_DIR}/mysql
chown -R mysql:mysql ${BASE_DIR}/mysql/data

# 7. 啟動腳本
cp ${BASE_DIR}/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

# 8. 配置文件
cat > /etc/my.cnf < /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 10. 啟動
service mysqld start

# 11. 安全初始化提醒
echo "MySQL 啟動完成。請執行:"
echo "${BASE_DIR}/mysql/bin/mysql -u root -p"
echo "首次登入無密碼,請立即執行:"
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassw0rd!';"
echo "CREATE USER 'root'@'%' IDENTIFIED BY 'StrongPassw0rd!';"
echo "GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"

手動關鍵步驟核對表

步驟命令/操作驗證方式
解壓tar -zxvf ...ls -l ${BASE_DIR}/mysql/bin/mysqld
初始化mysqld --initialize-insecure ...data 目錄生成 ibdata1、*.ibd、mysql 系統庫
權限分離chown root:root 程式; chown mysql:mysql datals -l ${BASE_DIR}/mysql/
配置生效vim /etc/my.cnfmysqld --help --verbose | grep -A1 '^basedir'
服務註冊chkconfig --add mysqldchkconfig --list mysqld
啟動service mysqld startps -ef | grep mysqld; netstat -nutlp | grep 3306
登入測試mysql -u root -pSHOW DATABASES;

常見報錯速查

  • libnuma.so.1 not found → yum install numactl
  • libaio.so.1 not found → yum install libaio
  • Can't create test file → datadir 權限或 SELinux
  • Unknown variable 'innodb_buffer_pool_size=1G' → 版本不支援或單位寫法(5.7 支援 G)
  • Access denied for user 'root'@'localhost' → 未執行安全初始化或密碼錯誤

生產環境建議:使用 Ansible/Shell 腳本固化部署流程,配合 my.cnf 模板化,實現冪等、可審計的自動化交付。

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