下面就是关于“数据库 MySQL中文乱码解决办法总结”的完整攻略。
一、问题描述
在使用 MySQL 数据库时,可能会出现中文乱码的问题。例如在查询或插入数据时,中文字符会显示为乱码或问号等非正常字符。
二、解决方案
1. 修改 MySQL 字符集
MySQL 数据库中默认字符集是 Latin1,而我们需要使用中文时,应该使用 Unicode utf8 字符集。我们可以通过以下步骤进行修改:
- 修改 MySQL 配置文件 my.ini 或 my.cnf。
在文件中添加以下内容:
```
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
```
- 重启 MySQL 服务,使修改生效。
sudo service mysql restart
2. 修改表的字符集
如果已经存在的数据库表中文字符显示乱码,可以通过修改表的字符集为 UTF-8 解决。例如:
ALTER TABLE tableName CONVERT TO CHARACTER SET utf8;
3. 修改列的字符集
如果表中某一列的中文字符显示乱码,可以通过修改该列的字符集为 UTF-8 解决。例如:
ALTER TABLE tableName MODIFY COLUMN columnName varchar(255) CHARACTER SET utf8;
三、示例说明
示例一:创建带中文字符的表并查询
- 创建一个带中文字符的表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
- 插入一行数据,包含中文字符:
INSERT INTO `test` (`name`) VALUES ('测试中文');
- 查询插入的数据:
SELECT * FROM `test`;
查询结果如下:
+----+----------+
| id | name |
+----+----------+
| 1 | 测试中文 |
+----+----------+
可以看到,中文字符正常显示。
示例二:修改表的字符集
假设表 test
中的 name
列显示为中文乱码,可以通过以下操作解决:
ALTER TABLE `test` CONVERT TO CHARACTER SET utf8mb4;
执行完毕后,再次查询该表,就可以正常显示中文字符了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:数据库 MySQL中文乱码解决办法总结 - Python技术站