mysql插入中文乱码问题
2016-09-04 23:58
483 查看
如果使用的 MySQL 是 5.5 版本,那么 Insert 语句插入中文就会报错:ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column。
这是因为 MySQL 数据库默认配置的编码方式是 latin1,所以会导致无法插入中文字符串。我们只要把它改成 gb2312 或者 utf8 就可以了!笔者建议使用 utf8,它是国际通用字符编码。
MySQL不能插入中文的解决方法:
1.找到 MySQL 安装目录下的 my.ini 文件(没有的这个文件 的话是my-default.ini这个文件 复制一份将名称改成my.ini),我是直接下载解压版的:E:\soft\mysql-5.6.24-win32目录下就有my-default.ini这个文件 ,我什么也没有配置它,复制一份后按以下设置
2.使用开发工具或者记事本打开 my.ini,查找 default-character-set 和 character-set-server
3.把 default-character-set=latin1 改成 default-character-set=utf8
4.把 character-set-server=latin1 改成 character-set-server=utf8
5.保存之后,重启 MySQL 数据库,如果您使用的是 WAMPServer 集成开发工具就重启 WAMPServer 中的所有服务。
以下就是我的my.ini的配置
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
character_set_server=utf8
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
port=3306
default-character-set=utf8
这是因为 MySQL 数据库默认配置的编码方式是 latin1,所以会导致无法插入中文字符串。我们只要把它改成 gb2312 或者 utf8 就可以了!笔者建议使用 utf8,它是国际通用字符编码。
MySQL不能插入中文的解决方法:
1.找到 MySQL 安装目录下的 my.ini 文件(没有的这个文件 的话是my-default.ini这个文件 复制一份将名称改成my.ini),我是直接下载解压版的:E:\soft\mysql-5.6.24-win32目录下就有my-default.ini这个文件 ,我什么也没有配置它,复制一份后按以下设置
2.使用开发工具或者记事本打开 my.ini,查找 default-character-set 和 character-set-server
3.把 default-character-set=latin1 改成 default-character-set=utf8
4.把 character-set-server=latin1 改成 character-set-server=utf8
5.保存之后,重启 MySQL 数据库,如果您使用的是 WAMPServer 集成开发工具就重启 WAMPServer 中的所有服务。
需要注意的是,先前创建的数据库不能再用了,必须重新创建新的数据库才可以插入中文字符。如果不想重新创建数据库的表,可以先把每一个表的结构 SQL 语句取出来,然后把旧的数据库删除,最后创建新的数据库和创建新的表。
注:MySQL 没有重启的命令,要先停止,然后再启动。开始 -> cmd -> net stop mysql -> net start mysql以下就是我的my.ini的配置
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
character_set_server=utf8
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
port=3306
default-character-set=utf8
相关文章推荐
- Fluent NHibernate+MySQL插入数据中文乱码问题
- MyEclipse+MySql插入中文乱码问题解决
- MyEclipse+MySql插入中文乱码问题解决
- 解决mysql5.5.25插入中文乱码问题
- 解决hibernate向mysql插入中文乱码问题(更改MySQL字符集)
- MySQL 插入数据时,中文乱码问题的解决。
- 关于命令行中mysql中文乱码以及不能插入中文数据的问题
- 解决hibernate向mysql插入中文乱码问题(更改MySQL字符集)
- 解决hibernate向mysql插入中文乱码问题(更改MySQL字符集)
- 往MySql中插入中文的乱码问题解决办法
- .net 里面插入中文到mysql的时候,显示问号乱码问题
- .net连接mysql,插入中文乱码问题
- 解决hibernate向mysql插入中文乱码问题(更改MySQL字符集)
- mysql5.0中文插入乱码问题解决
- 解决hibernate向mysql插入中文乱码问题
- 简记mysql中文乱码(插入变成??)的问题.
- Linux下MySQL常见问题收集 C语言插入MySQL中文乱码
- mysql 插入中文乱码问题
- 利用编程语言向mysql中插入中文出现乱码的问题
- MyEclipse+MySql插入中文乱码问题解决