私はすべてのデフォルトをutf8にします。私はthis questionをチェックしましたが何も助けません。Mysql 5.5どのようにutf8にすべてを設定するには?
現在、私の/etc/my.cnf
は
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
あるしかし、私は、サーバーを再起動すると、新しいデータベースを作成し、それはまだlatin1のである(character_set_database
とcharacter_set_server
):
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| 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/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> show variables like 'collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
私はデータベースを作成するとき、それはlatin1です:
mysql> create database d1;
Query OK, 1 row affected (0.00 sec)
mysql> use d1;
Database changed
mysql> show variables like "character_set_database";
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | latin1 |
+------------------------+--------+
1 row in set (0.00 sec)
私はテーブルを作成するとき私はalter database d1 character set utf8;
は、この問題を解決することがわかっている
mysql> create table t1(name varchar(1) default '啊');
ERROR 1067 (42000): Invalid default value for 'name'
:このデータベースには、それが有効なUTF8 啊
を認識することはできません。しかし、私はちょうどすべてのデフォルトのutf8、それは可能ですか?
によって明示的にグローバル設定を照会しようとするあなたは= UTF8 – Seb
@Sebそうではなく – tcpiper