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

Ubuntu 從源碼編譯安裝 MySQL 5.6 完整實戰:依賴、初始化、安全加固

     編輯:MySQL 資料庫相關知識

為何選擇源碼編譯?

  • 版本可控,避免套件管理器版本滯後
  • 編譯參數可定製(字符集、儲存引擎、安裝路徑)
  • 深度理解元件關係,故障排查更得心應手

環境準備

# 安裝核心依賴
sudo apt-get update
sudo apt-get install -y build-essential cmake libaio1 libaio-dev libncurses5-dev

# 建立專用使用者/群組(無登入權限,提升安全性)
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false -M mysql

下載與解壓

cd /usr/local
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
tar xzf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.6.51-linux-glibc2.12-x86_64 mysql
cd mysql

資料目錄初始化(關鍵步驟)

# 權限設定:先全給 root,再把 data 給 mysql
sudo chown -R root:mysql .
sudo chown -R mysql:mysql data

# 初始化系統表(5.6 使用 mysql_install_db)
sudo scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

# 還原權限:程式檔給 root,資料目錄給 mysql
sudo chown -R root:mysql .
sudo chown -R mysql:mysql data

啟動與驗證

# 啟動
sudo bin/mysqld_safe --user=mysql &

# 驗證連線
bin/mysqladmin version
bin/mysqlshow
bin/mysql -e "SELECT User,Host,plugin FROM mysql.user"

安全加固四步驟

1. 設定 root 密碼(三種方式擇一)

-- 方式 1:SET PASSWORD(推薦,逐主機設定)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('StrongPass#2024');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('StrongPass#2024');
SET PASSWORD FOR 'root'@'::1' = PASSWORD('StrongPass#2024');
FLUSH PRIVILEGES;

-- 方式 2:UPDATE mysql.user(一次搞定所有 root)
UPDATE mysql.user SET Password=PASSWORD('StrongPass#2024') WHERE User='root';
FLUSH PRIVILEGES;

2. 清理匿名帳號

DROP USER ''@'localhost';
DROP USER ''@'主機名';
FLUSH PRIVILEGES;

3. 移除測試資料庫

DELETE FROM mysql.db WHERE Db LIKE 'test%';
DROP DATABASE test;
FLUSH PRIVILEGES;

4. 限制遠程存取(如非必要)

-- 僅允許本地連線
UPDATE mysql.user SET Host='localhost' WHERE User='root' AND Host='%';
FLUSH PRIVILEGES;

常見問題排查

  • Can't connect to local MySQL server through socket → 建立 socket 目錄、軟連結、配置 my.cnf 指定 socket 路徑
  • libaio 缺失 → apt-get install libaio1
  • 權限拒絕 → 檢查 data 目錄擁有者是否為 mysql 使用者
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved