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

MySQL 修改默認字符集與存儲引擎:從 my.cnf 到 ALTER TABLE 實戰

     編輯:MySQL 資料庫相關知識

一、查看當前字符集

SHOW VARIABLES LIKE 'character%';

關鍵三個系統變量:

  • character_set_client:客戶端提交 SQL 編碼
  • character_set_connection:服務端解析 SQL 編碼
  • character_set_results:結果集返回前轉換編碼

二、修改默認字符集(Linux)

編輯 /etc/my.cnf:

[client]
default-character-set=utf8

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

重啟 MySQL 再次 SHOW VARIABLES LIKE 'character%',所有 character_set_* 應變為 utf8。

Windows 可用 MySQL Server Instance Config Wizard 圖形化設置。

三、存儲引擎概覽

四、查看與修改默認存儲引擎

SHOW ENGINES;  -- Engine 列 DEFAULT 為當前默認

修改 /etc/my.cnf:

[mysqld]
default-storage-engine=INNODB

或啟動參數:--default-storage-engine=INNODB / --default-table-type=INNODB。

五、建表/改表指定引擎

-- 建表指定
CREATE TABLE t (i INT) ENGINE = MYISAM;

-- 修改單表
ALTER TABLE engineTest ENGINE = INNODB;

六、批量轉換全庫表引擎

逐表 ALTER TABLE 繁瑣,建議:

  1. mysqldump 導出 SQL
  2. 文本替換 ENGINE=MyISAM → ENGINE=InnoDB
  3. 重新導入

七、查看引擎狀態

SHOW ENGINE INNODB STATUS\G;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
引擎特點適用場景
MyISAM非事務、表鎖、全文索引、.frm/.MYD/.MYI 三文件讀多寫少、數據倉庫、全文搜索
InnoDB事務、行鎖、外鍵、MVCC、ibdata1 + ib_logfile*OLTP、高併發寫入、數據一致性要求高
MEMORYHash 索引、內存表、重啟丟失臨時表、緩存
Archive壓縮、僅支援 INSERT/SELECT日誌、歷史歸檔