纵有疾风起
人生不言弃

mysql字符设置

MySQL字符集设置

mysql>CREATE DATABASE IF NOT EXISTS mydb default charset utf8 COLLATE utf8_general_ci;//数据库mysql>create table mytable (name varchar(20) not null default ”)type=myisam default charset utf8;//数据表

系统变量:

– character_set_server:默认的内部操作字符集

– character_set_client:客户端来源数据使用的字符集

– character_set_connection:连接层字符集

– character_set_results:查询结果字符集

– character_set_database:当前选中数据库的默认字符集

– character_set_system:系统元数据(字段名等)字符集

– 还有以collation_开头的同上面对应的变量,用来描述字符序。

• 用introducer指定文本字符串的字符集:

mysql> show variables like ‘character_set_%’;

mysql> set character_set_client=utf8;

Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_connection=utf8;

Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_database=utf8;

Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_results=utf8;

Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_server=utf8;

Query OK, 0 rows affected (0.02 sec)

mysql> set character_set_system=utf8;

ERROR 1238 (HY000): Variable ‘character_set_system’ is a read only variable

mysql> set collation_connection=utf8;

ERROR 1273 (HY000): Unknown collation: ‘utf8’

mysql> show variables like ‘character_set_%’;

mysql> set collation_database=utf8;

ERROR 1273 (HY000): Unknown collation: ‘utf8’

mysql> set collation_database=utf8_general_ci;

Query OK, 0 rows affected (0.00 sec)

mysql> set collation_database=utf8_general_ci;

Query OK, 0 rows affected (0.00 sec)

mysql> set collation_server=utf8_general_ci;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘collation_%’;

建表后如果后续需要修改表的默认字符集,可以通过ALTER TABLE来修改表的默认编码

mysql>alter database maildb default character set utf8;//修改数据库的字符集

mysql>alter table mailtable default character set utf8;//修改表的字符集

但可能只改了表定义的默认编码,对于每个列的已有字段的内容还是使用以前的编码,已有表数据不会做编码转换。

mysql>ALTER TABLE tablename CONVERT TO CHARACTER SET utf8;来修改列的编码

但这里要注意已有内容编码转换要注意编码可转换,不会成为乱码

永久修改mysql字符集设置(默认为latin1)

ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)

 #vim  /etc/my.cnf

[client]port =3306socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0set-variable=key_buffer=256Mset-variable=table_cache=256set-variable=sort_buffer=1Mset-variable=myisam_sort_buffer_size=64Mset-variable=net_buffer_length=8Kset-variable=record_buffer=1Mset-variable=thread_cache=8set-variable=thread_concurrency=8default-character-set=utf8character-set-server = utf8collation-server = utf8_general_ciinit_connect = 'SET collation_connection = utf8_general_ci'init_connect='SET NAMES utf8'

然后再重启mysql

service mysqld stop

service mysqld start

 

 

 

 



 

文章转载于:https://www.cnblogs.com/kxdblog/p/4034252.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » mysql字符设置
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录