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

Ubuntu 下 MySQL 安裝配置深度教程:離線包、主從復制、備份恢復全覆蓋

     編輯:MySQL 資料庫相關知識

三種安裝方式對比

方式優點缺點
APT 在線安裝自動解決依賴、環境變量、服務管理版本較舊、需網絡
二進制包版本可控、無依賴地獄手動配置較多
源碼編譯極致優化、自定義功能耗時、易報錯

重點:離線包安裝完整步驟

# 1. 創建用戶組與用戶
groupadd mysql
mkdir /home/mysql
useradd -g mysql -d /home/mysql mysql

# 2. 解壓到 /usr/local
tar zxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz -C /usr/local
cd /usr/local
ln -s mysql-5.0.45-linux-i686-icc-glibc23 mysql
cd mysql

# 3. 權限設置
chown -R mysql .
chgrp -R mysql .

# 4. 初始化數據目錄(關鍵步驟,輸出含臨時密碼與啟動命令)
scripts/mysql_install_db --user=mysql

# 5. 設置 root 密碼
./bin/mysqladmin -u root password 'passw0rd'

配置與管理

1. 修改最大連接數

cp support-files/my-medium.cnf ./my.cnf
vim my.cnf
# [mysqld] 區塊添加
max_connections = 1024

2. 啟動/停止

# 啟動
/usr/local/mysql/bin/mysqld_safe --user=mysql &

# 停止
mysqladmin -uroot -ppassw0rd shutdown

# 查看版本
mysqladmin -u root -p version

3. 開機自啟

echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local

遠程訪問授權

mysql -u root -p
USE mysql;

-- 所有主機
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passw0rd' WITH GRANT OPTION;

-- 指定主機
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.11.205' IDENTIFIED BY 'passw0rd' WITH GRANT OPTION;

FLUSH PRIVILEGES;

字符集配置(UTF-8)

# /etc/my.cnf 或 /usr/local/mysql/my.cnf
[client]
default-character-set = utf8

[mysqld]
default-character-set = utf8
init_connect = 'SET NAMES utf8;'

# 重啟生效
只有 /etc/my.cnf 的 client 設置生效,安裝目錄下的只影響 server。

舊數據遷移到 UTF-8

# 1. 導出(指定舊字符集 latin1)
mysqldump --default-character-set=latin1 -hlocalhost -uroot -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; 將 latin1/gb2312 替換為 utf8

# 4. 導入
mysql -hlocalhost -uroot -p dbname < new.sql

# 若報 max_allowed_packet 錯誤,調大 my.cnf 後重啟

主從復制配置(核心步驟)

  1. 主庫:建立復制用戶、開啟 binlog、server-id=1、FLUSH TABLES WITH READ LOCK、SHOW MASTER STATUS 記錄 File/Position、建立快照
  2. 從庫:server-id=2、導入快照、CHANGE MASTER TO ...、START SLAVE
-- 從庫執行
CHANGE MASTER TO
    MASTER_HOST='master_ip',
    MASTER_USER='replication_user',
    MASTER_PASSWORD='replication_pwd',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=12345;

START SLAVE;
SHOW SLAVE STATUS\G

備份與恢復

# 單庫備份
mysqldump -uroot -p -B dbname > dbname.sql

# 全庫備份
mysqldump -uroot -p --all-databases > all.sql

# 表備份
mysqldump -uroot -p -B dbname --table tblname > tblname.sql

# 恢復庫
mysql -uroot -p < dbname.sql

# 恢復表(必須指定庫)
mysql -uroot -p dbname < tblname.sql

推薦客戶端工具

  • MySQL-Front / Navicat / phpMyAdmin(圖形化)
  • Linux Shell:連接後 SET NAMES utf8;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved