直接将整个数据库中所有表中所有列的排序方式及字符改为UTF8以及uft8_general_ci的方法:
1. 执行该SQL语句:(最后TABLE_SCHEMA修改为你的数据库名)
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8_general_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'humhub';
2. 会得到如下SQL语句(以我的Humhub数据库为例):
ALTER TABLE `contentcontainer_permission` MODIFY `permission_id` varchar(150) CHARACTER SET UTF8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `contentcontainer_permission` MODIFY `group_id` varchar(50) CHARACTER SET UTF8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `contentcontainer_permission` MODIFY `module_id` varchar(50) CHARACTER SET UTF8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `contentcontainer_permission` MODIFY `class` varchar(255) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `guid` varchar(45) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `object_model` varchar(100) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `object_id` varchar(100) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `file_name` varchar(255) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `title` varchar(255) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `mime_type` varchar(150) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `file` MODIFY `size` varchar(45) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `group` MODIFY `name` varchar(45) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `group` MODIFY `description` text(65535) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `group` MODIFY `ldap_dn` varchar(255) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `group_permission` MODIFY `permission_id` varchar(150) CHARACTER SET UTF8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `group_permission` MODIFY `module_id` varchar(50) CHARACTER SET UTF8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `group_permission` MODIFY `class` varchar(255) CHARACTER SET UTF8 COLLATE utf8_general_ci;
ALTER TABLE `like` MODIFY `object_model` varchar(100) CHARACTER SET UTF8 C