自部署mysql的更改
1、查看一下现在数据库的结构如何
show variables like '%character%';
2、一般情况下除character_set_filesystem外其余都显示utf8,此时需要分别把库、表、字段三个全部都改为utf8mb4
如下SQL语句所示,分别将dbsdq库、tt2表、tt2表中的c2列修改为utf8mb4字符集(参考阿里云:https://help.aliyun.com/document_detail/41706.htm?spm=a2c4g.11186623.0.0.57e6fb03UQe1ZK)
#更改数据库结构 alter database dbsdq character set utf8mb4 collate utf8mb4_unicode_ci; use dbsdq; #修改表 alter table tt2 convert to character set utf8mb4 collate utf8mb4_unicode_ci; #修改列 alter table tt2 modify c2 varchar(10) character set utf8mb4 collate utf8mb4_unicode_ci;
如下SQL语句所示,分别将dbsdq库、tt2表、tt2表中的c2列修改为utf8mb4字符集(参考177服务器)
#更改数据库结构 mysql -uroot -p; // 输入密码后 ALTER DATABASE macau_pocket CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci #修改表 use macau_pocket; ALTER TABLE v_wechat_user_copy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; #修改列 ALTER TABLE v_wechat_user_copy CHANGE nickname nickname VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
3、或者使用Navicat分别把数据库、表、列字段更改为utf8mb4也行
4、如有必要重启一下mysql
service mysql restart
5、另外,还需要把tp5.1的database.php,'charset' => 'utf8mb4'
// 数据库编码默认采用utf8 'charset' => 'utf8mb4',
Polar Db mysql的更改
1、若使用的是阿里云Polar Db,则操作也是类似的,先查看以下命令,保证character_set_server参数设置为utf8mb4
show variables like '%character%';
2、若character_set_server不是utf8mb4,则登录polar db设置参数为utf8mb4,注意可能需要重启数据库才能生效
3、通过sql语句或者Navicat等工具把库,表,字段修改为对应的utf8mb4即可(参考阿里云:https://help.aliyun.com/knowledge_detail/41702.html?spm=5176.21213303.J_6704733920.22.45d43edawDjuW8&scm=20140722.S_help%40%40%E7%9F%A5%E8%AF%86%E7%82%B9%40%4041702._.ID_help%40%40%E7%9F%A5%E8%AF%86%E7%82%B9%40%4041702-RL_utf8mb4UNDgeneralUNDci-OR_main-V_2-P0_4)
4、如有必要重启一下mysql