本文只是记录了一下我的网站在Linux环境部署过程中发生的MySQL中文编码问题。
由其他问题导致的MySQL数据存取错误,此方法不一定能解决。
在linux安装好MySQL-server以后:
命令行 mysql -p密码进入MySQL的shell界面。
在MySQL shell界面,输入show variables like ‘character_set%’;查看默认字符集
返回:
+—————————-+———————+
|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 | /usr/share/ |
mysql/charsets/ |
+————————–+————————–+
发现 character_set_database 的值是latin1,而存储中文我们需要编码格式utf-8。
分两种情况讨论:
1、如果数据库和表已经建好了:
修改database:
alter databases 数据库名 chrarcter set utf8; 将数据库默认编码设为utf-8
修改表:
alter table 表名 chrarcter set utf8; 将表默认编码设为utf-8
修改字段:
alter table 表名 change 字段名 字段名 类型 character set utf8;
2、没建好:
在创建数据库时,输入 create database 数据库名 character set utf8; 直接创建默认utf-8编码的database
现在往数据库插入中文数据试试,是不是不报错了呢?