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

Ubuntu 安裝配置 MySQL 完整教學:三種安裝方式、參數調優、主從複制、備份恢復

     編輯:MySQL 綜合教學

Ubuntu 下 MySQL 安裝配置完整教學

涵蓋三種安裝方式、核心配置、常用管理操作、字符集設定、主從複制架構、備份與恢復策略。

一、三種安裝方式

  1. 線上安裝(推薦): sudo apt-get install mysql-server(自動配置環境變數、systemd 服務)。
    建議將 /etc/apt/sources.list 來源從 cn 改 us,下載更快。
  2. 離線包安裝: 以 mysql-5.0.45-linux-i686-icc-glibc23.tar.gz 為例,需手動建立用戶/組、解壓、建立軟連結、初始化資料目錄、設定權限、啟動腳本。
  3. 二進制包安裝: 官方 Generic Linux tarball,解壓即用,同樣需手動初始化。

二、核心配置與管理

1. 修改最大連接數

cp support-files/my-medium.cnf /etc/my.cnf
# 編輯 my.cnf,在 [mysqld] 下加入
max_connections = 1024

MySQL 讀取 my.cnf 順序:/etc/my.cnf(全域)→ 安裝目錄 my.cnf → datadir/my.cnf。

2. 啟動/停止/重啟

  • 線上/二進制安裝:systemctl start|stop|restart mysql 或 /etc/init.d/mysql start|stop|restart
  • 離線包:/usr/local/mysql/bin/mysqld_safe --user=mysql & 啟動;mysqladmin -uroot -p shutdown 停止。

3. 設定開機自啟

將啟動指令加入 /etc/rc.local(或建立 systemd service)。

4. 允許 root 遠程登入

mysql -u root -p
USE mysql;
-- 所有主機
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
-- 指定主機
GRANT ALL PRIVILEGES ON *.* TO root@'192.168.11.205' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

5. 建庫、建用戶、授權

CREATE DATABASE test1;
GRANT ALL PRIVILEGES ON test1.* TO user_test@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

三、字符集設定(以 utf8 為例)

  1. 查看現狀:SHOW VARIABLES LIKE 'character%';
  2. 修改 /etc/my.cnf(全域生效):
    [client]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
    init_connect='SET NAMES utf8;'
  3. 重啟 MySQL 生效。

注意: 僅修改安裝目錄下的 my.cnf 僅影響 Server 端,Client 端需修改 /etc/my.cnf。

四、舊資料遷移至 utf8(latin1 為例)

  1. 導出:mysqldump --default-character-set=latin1 -h localhost -u root -B dbname --tables old_table > old.sql
  2. 轉碼:iconv -t utf-8 -f gb2312 -c old.sql > new.sql
  3. 編輯 new.sql,在 INSERT 前加 SET NAMES utf8;,將 gb2312 替換為 utf8。
  4. 導入:mysql -h localhost -u root -p dbname < new.sql(若報 max_allowed_packet 錯誤,調大該參數並重啟)。

五、備份與恢復

  • 單庫:mysqldump -uroot -p -B dbname > dbname.sql
  • 全庫:mysqldump -uroot -p --all-databases > all.sql
  • 單表:mysqldump -uroot -p -B dbname --tables tblname > tblname.sql
  • 恢復庫:mysql -uroot -p < name.sql
  • 恢復表:mysql -uroot -p dbname < name.sql(必須指定目標庫)。

六、主從複制(單向異步)

  1. 主庫建立複制用戶:GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.87' IDENTIFIED BY 'pwd';
  2. 主庫鎖表、記錄 Binlog 位置:FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;(記下 File、Position)。
  3. 主庫建立快照(tar 壓縮 data 目錄),傳至從庫解壓。
  4. 主庫 my.cnf 確認 log-bin=mysql-bin、server-id=1;從庫設 server-id=2(唯一)。
  5. 從庫執行 CHANGE MASTER TO MASTER_HOST='...', MASTER_USER='repl', MASTER_PASSWORD='pwd', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=123;
  6. 啟動:START SLAVE; 驗證:主庫寫入 → 從庫同步。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved