对数据库中的数据进行备份或者将sql文件导入到我们的数据库时要注意编码的问题。
window下的mysql,可在安装的时候,选择好整个数据库的编码方式(通常设置成utf8)。
linux需要在配置中添加 。
1查看:登陆到mysql后可通过 show variables like '%character%'; 命令来查看系统变量。
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /sincethen/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
默认的数据库编码方式基本都设置成了latin1的编码方式。
2配置修改。
my.cnf配置文件
在[client]下增加 default-character-set=utf8 字段
在[mysqld]下增加 default-character-set=utf8 字段,同时加上init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
3重启mysql服务。查看配置。
service mysqld restart
show variables like "%character%";
+--------------------------+----------------------------------+
| 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 | /sincethen/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
4 也可在创建数据库的时候指明默认字符集为utf8
例如:create database discuz charset=utf8;
window下的mysql,可在安装的时候,选择好整个数据库的编码方式(通常设置成utf8)。
linux需要在配置中添加 。
1查看:登陆到mysql后可通过 show variables like '%character%'; 命令来查看系统变量。
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /sincethen/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
默认的数据库编码方式基本都设置成了latin1的编码方式。
2配置修改。
my.cnf配置文件
在[client]下增加 default-character-set=utf8 字段
在[mysqld]下增加 default-character-set=utf8 字段,同时加上init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
3重启mysql服务。查看配置。
service mysqld restart
show variables like "%character%";
+--------------------------+----------------------------------+
| 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 | /sincethen/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
4 也可在创建数据库的时候指明默认字符集为utf8
例如:create database discuz charset=utf8;
0
本帖最后由 sincethen 于 2015-12-18 09:16 编辑
再加点备注的编码问题:
1 mysql导入导出命令
参数:--default-character-set = 后面可跟 gb2312 ,big5 ,gbk , utf8 。这些字符集都为中文兼容。
eg;
mysqldump -hlocalhost -P3306 -uroot -p123456 --default-character-set=gb2312 test>pushingdb.sql
mysql -uroot -p123456 --default-character-set=gb2312 test< pushingdb.sql
2 数据库表中字段的字符集设置查看
show create table TableName 或 show full columns from tableName
3 一些参数设置
SET character_set_client = utf8 ;
SET character_set_connection = utf8 ;
再加点备注的编码问题:
1 mysql导入导出命令
参数:--default-character-set = 后面可跟 gb2312 ,big5 ,gbk , utf8 。这些字符集都为中文兼容。
eg;
mysqldump -hlocalhost -P3306 -uroot -p123456 --default-character-set=gb2312 test>pushingdb.sql
mysql -uroot -p123456 --default-character-set=gb2312 test< pushingdb.sql
2 数据库表中字段的字符集设置查看
show create table TableName 或 show full columns from tableName
3 一些参数设置
SET character_set_client = utf8 ;
SET character_set_connection = utf8 ;
编辑回复