今天搞搞mysql眼刃,發(fā)現(xiàn)中文的CSV不能用import wizard倒入蒋院,修改成utf-8保存也沒有用哼勇,究其原因是mysql本身的編碼問題炸庞。
登錄:
mysql -u root -p
查詢:
show variables like 'character_set_%';
<pre>
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.7.9-osx10.9-x86_64/share/charsets/ |
</pre>
可以看到有兩個是latin1
查詢:
stauts;
<pre>
Connection id: 20
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.9 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 8 days 1 hour 37 min 24 sec
</pre>
更加確定惯疙,因此修改參數(shù)翠勉,查找我的mysql在哪里:
which mysql
讓其顯示原身,得到:
/usr/local/mysql-5.7.9-osx10.9-x86_64
不過話說為什么我又是那么多mysql嘛霉颠,簡直和python一樣对碌,吐
然后進(jìn)入目錄復(fù)制文件:
/usr/local/mysql-5.7.9-osx10.9-x86_64/support_files/my-default.cnf
到:
/etc
然后修改文件,在以下行下添加內(nèi)容:
<pre>
[client]
default-character-set=gbk
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
</pre>
把文件名修改為:
my.cnf
保存蒿偎,重新啟動mysql朽们,結(jié)果:
<pre>
Connection id: 21
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.9 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: gbk
Conn. characterset: gbk
UNIX socket: /tmp/mysql.sock
Uptime: 8 days 2 hours 13 min 29 sec
</pre>
What???這不科學(xué),不過也就是說預(yù)設(shè)是滿足了诉位,但是當(dāng)前的DB還是老樣子骑脱,所以要重新設(shè)置DB?查了一下stackoverflow苍糠,如果要修改當(dāng)前的DB的話可以輸入:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
搞定叁丧。
雖然好像搞定了。椿息。但是依然不能導(dǎo)入帶中文的csv歹袁。。ORZ
而且發(fā)現(xiàn)DATETIME字段不能為空值寝优,有一片文章講了:
http://panduit.blog.163.com/blog/static/86790462011101524945408/