修改及查看mysql資料庫的字元集
修改my.cnf
vi /etc/my.cnf
在[client]下添加
default-character-set=utf8
在[mysqld]下添加
default-character-set=utf8
5.查看字元集設定
mysql> show variables like 'collation_%';
mysql> show variables like 'character_set_%';
修改資料庫的字元集
mysql>use mydb
mysql>alter database mydb character set utf-8;
建立資料庫指定資料庫的字元集
mysql>create database mydb character set utf-8;
通過設定檔修改:
修改/var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
為
default-character-set=utf8
default-collation=utf8_general_ci
通過MySQL命令列修改:
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
查看:
mysql> show variables like 'character_set_%';
mysql> show variables like 'collation_%';
通常,查看系統的字元集和排序方式的設定可以通過下面的兩條命令:
mysql> SHOW VARIABLES LIKE 'character%';
mysql> SHOW VARIABLES LIKE 'collation_%';
mysql命令列修改字元編碼
1、修改資料庫字元編碼
mysql> alter database mydb character set utf8 ;
2、建立資料庫時,指定資料庫的字元編碼
mysql> create database mydb character set utf8 ;
3、查看mysql資料庫的字元編碼
mysql> show variables like 'character%'; //查詢當前mysql資料庫的所有屬性的字元編碼
+--------------------------+----------------------------+
| Variable_name | Value |
MySQL用Load Data local infile 匯入部分資料後中文亂碼
今天在兩台MySQL伺服器之間導資料,因為另一個MySQL伺服器是測試用的,差一個月的資料,從現有MySQL伺服器select到一個檔案,具體語句是:
select * from news where ine_time>='2010-02-01' and ine_time <'2010-03-01' into outfile '/tmp/newsdata.sql';然後scp到另一個MySQL Server上匯入到對應的表中,具體語句如下:
load data local infile '/home/lsanotes/newsdata.sql' into table news;然後重新整理訪問這台資料庫的web頁面,發現剛導進來的這一個月的資料都是亂碼,而以前其它月份的則正常,用show create table news;查看發現兩個伺服器中的news表都是utf8,奇怪,把匯出的資料轉換成utf8,再匯入問題仍舊。
後來在資料庫中查看剛剛導進的這一個月的資料時,沒有執行set names utf8;就可以正常查看中文而不亂碼,而其它月份的必須先執行set names utf8;才能看中文而不亂碼,但是當我執行過set names utf8;後再看剛剛導進的這一個月的資料卻是亂碼,看來導進來的資料並不是utf8格式。最後的解決方案是:
load data local infile '/home/lsanotes/newsdata.sql' into table news character set utf8;