linux下mysql的預設字符集修改和預設資料庫引擎的修改

weixin_34304013發表於2009-06-19

etc/init.d/mysql start (stop) 為啟動和停止伺服器
/etc/mysql/ (或者/etc/my.cnf)主要配置檔案所在位置 my.cnf
/var/lib/mysql/ 放置的是資料庫表資料夾,這裡的mysql相當於windows下mysql的date資料夾

啟動mysql後,以root登入mysql
isher@isher-ubuntu:~$ mysql -u root
>show variables like 'character%'; #執行編碼顯示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

三個MySQL的系統變數是:

1. character_set_client,終端字符集,告訴Server客戶端提交的SQL語句的編碼格式

2. character_set_connection,連線字符集,是伺服器翻譯SQL語句時用到的編碼格式

3. character_set_results,返回的結果集的字符集,是伺服器返回結果集之前把結果集轉換成的編碼格式

在某些時候,我們續要修改mysql預設資料庫的編碼,以保證某些遷移的程式可以正常顯示,編輯my.cnf檔案進行編碼修改,windows可以直接用Mysql Server Instance Config Wizard 進行設定

在linux下修改3個my.cnf的1個/etc/mysql/my.cnf檔案

找到客戶端配置[client] 在下面新增
default-character-set=utf8 預設字符集為utf8
在找到[mysqld] 新增
default-character-set=utf8 預設字符集為utf8
init_connect='SET NAMES utf8' (設定連線mysql資料庫時使用utf8編碼,以讓mysql資料庫為utf8執行)

修改好後,重新啟動mysql 即可,查詢一下show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

此方法用於標準mysql版本同樣有效,對於/etc/my.cnf檔案,需要從mysql/support-files的資料夾cp my-large.cnf一份到/etc/my.cnf

一般安裝系統預設是INNODB
default-storage-engine=INNODB

  你可以使用很多方法指定一個要使用的儲存引擎。最簡單的方法是,如果你喜歡一種能滿足你的大多數資料庫需求的儲存引擎,你可以在MySQL設定檔案中設定一個預設的引擎型別(使用storage_engine 選項)或者在啟動資料庫伺服器時在命令列後面加上--default-storage-engine或--default-table-type選項 。

  更靈活的方式是在隨MySQL伺服器釋出同時提供的MySQL客戶端時指定使用的儲存引擎。最直接的方式是在建立表時指定儲存引擎的型別,向下面這樣:

  CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB

相關文章