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

MySQL 進階配置優化:網路、字符集、InnoDB 表空間、升級遷移

     編輯:MySQL 資料庫相關知識

網路監聽優化

  • port=3306、bind-address=0.0.0.0(全介面)或特定 IP。
  • skip-networking 禁用 TCP,僅本地 Unix Socket(socket=/tmp/mysql.sock)提升本機連線效能。
  • Windows Named Pipe:--enable-named-pipe、socket=MySQL。

LOAD DATA LOCAL 安全控制

  • 編譯期:--enable-local-infile/--disable-local-infile。
  • 啟動期:--local-infile=0|1(Server 端)。
  • Client 端:mysql --local-infile=1 啟用。
  • 建議:Server 關閉,Client 按需開啟,防止任意文件讀取風險。

國際化與字符集

MySQL 4.1+ 採用欄級字符集,升級舊庫:mysqldump --all-databases --opt > dump.sql → 升級 → mysql < dump.sql 自動重建索引。

InnoDB 表空間配置範本

[mysqld]
innodb_data_home_dir = /data/innodb
innodb_data_file_path = ibdata1:10G:autoextend:max:100G
innodb_log_group_home_dir = /logs/innodb
innodb_log_file_size = 1G
innodb_log_files_in_group = 2
innodb_buffer_pool_size = 64G
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
  • autoextend 僅最後一個檔案生效,步長 8MB。
  • 原始裝置繞過檔案系統大小限制:innodb_data_file_path=/dev/sdb1:500Gnewraw 初始化後改 raw。
  • 擴容流程:關機 → 修改最後檔案固定大小 → 新增檔案 → 啟動。

表空間重建替代方案

  1. mysqldump 全備份。
  2. 停服務,刪除 ibdata*、ib_logfile*、*.frm。
  3. 新配置啟動初始化。
  4. 匯入備份重建。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
層級配置方式示例
編譯期預設--with-charset=utf8 --with-extra-charsets=gb2312,big5,utf8mb4支援中文、表情符號
Server 啟動--default-character-set=utf8mb4運行時覆蓋
Client 連線--default-character-set=utf8mb4 或 SET NAMES utf8mb4應用層指定
資料庫/表/欄CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci細粒度控制