方法很暴力
首先确定是lantin1编码
show create database test_db;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+----------------------------------------------------------------+
然后,查看表内字符集
use test_db;
show create table test_table;
...
`user_name` varchar(64) DEFAULT NULL,
...
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
好了,确定是这样,解决起来就简单了
ALTER DATABASE `test_db` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
use test_db;
ALTER TABLE `test_table` CONVERT TO CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`;
执行之后,数据库和表,就变成了 utf8mb4
此方法只适用于默认编码,表中的字段没有设置字符集的状态。
如果字段已经设置字符集,修改每个字段的字符集,就比较麻烦了