mysql更改utf8编码方式

Posted 桃花十里,浅笑风华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql更改utf8编码方式相关的知识,希望对你有一定的参考价值。

方法1:

一、查看数据库编码格式

1
mysql> show variables like \'character_set_database\';

二、查看数据表的编码格式

1
mysql> show create table <表名>;

三、创建数据库时指定数据库的字符集

1
mysql>create database <数据库名> character set utf8;

四、创建数据表时指定数据表的编码格式

1
2
3
4
5
create table tb_books (
 name varchar(45) not null,
 price double not null,
 bookCount int not null,
 author varchar(45) not null ) default charset = utf8;

五、修改数据库的编码格式

1
mysql>alter database <数据库名> character set utf8;

六、修改数据表格编码格式

1
mysql>alter table <表名> character set utf8;

七、修改字段编码格式

1
2
3
mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8;
 
mysql>alter table user change username username varchar(20) character set utf8 not null;

方法2:

更改配置文件,mac系统下:

1 sudo vi /etc/my.cnf

编辑,加入:

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

即:

 

这里特别要注意[mysqld]标签下一定要是character-set-server=utf8,不然mysql无法启动

show variables like \'character_set_%\';

+--------------------------+-----------------------------------------------------------+

| 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/local/mysql-5.7.17-macos10.12-x86_64/share/charsets/ |

+--------------------------+-----------------------------------------------------------+

 

show variables like \'character_set_%\';

+--------------------------+-----------------------------------------------------------+

| 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/local/mysql-5.7.17-macos10.12-x86_64/share/charsets/ |

+--------------------------+-----------------------------------------------------------+

 

  前后对比,更改成功

用pycharm连接mysql数据库时,要注意添加 charset="utf8",即:

cnx = pymysql.connect(user="root",passwd="root",host="localhost",db="db_name",charset="utf8")

 不然中文无法导入数据库

----清空数据表

truncate table tenement_message;

-----查找mysql文件夹

which mysql

以上是关于mysql更改utf8编码方式的主要内容,如果未能解决你的问题,请参考以下文章

Mac下更改Mysql5.7的默认编码为utf8

更改MySQL数据库的编码为utf8mb4

更改Mysql5.7的默认编码为utf8解决database为latin1无法修改问题

mysql存储emoji表情报错的处理方法更改编码为utf8mb4

mysql 更改字符集

[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。