一、修改my.ini配置文件(mysql配置文件)

character_set_server = utf8 #设置字符集

重启mysql数据库服务

查看当前数据库字符集

show VARIABLES like 'character%';

二、修改数据库字符集

alter database 数据库名 character set utf8;

ps:修改完数据库字符集,需要重启mysql数据库。

三、修改表字符集

ALTER TABLE  表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

生成所有表修改字符集

SELECT 
	TABLE_NAME,
	CONCAT(
		'ALTER TABLE  ',
		TABLE_NAME,
		' DEFAULT CHARACTER SET ',
		a.DEFAULT_CHARACTER_SET_NAME,
		' COLLATE ',
		a.DEFAULT_COLLATION_NAME,
		';'
	) executeSQL 
FROM information_schema.SCHEMATA a,information_schema.TABLES b
WHERE a.SCHEMA_NAME=b.TABLE_SCHEMA
	AND a.DEFAULT_COLLATION_NAME!=b.TABLE_COLLATION
	AND b.TABLE_SCHEMA='数据库名' 

四、修改列字符集

ALTER TABLE  表名 CHANGE  列名  列名  VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

生成所有列修改字符集语句

SELECT
	b.table_name,
	b.column_name,
	b.character_set_name,
	b.collation_name,
	CONCAT(
		'ALTER TABLE ', 
		b.table_name, 
		' MODIFY ', 
		b.column_name, 
		' ', 
		b.DATA_TYPE, 
		'(', 
		b.CHARACTER_MAXIMUM_LENGTH, 
		') ', 
		CASE 
			WHEN b.COLUMN_DEFAULT IS NULL THEN ''  
			ELSE CONCAT('DEFAULT \'', b.COLUMN_DEFAULT, '\'') 
		END,
		' COMMENT \'',
		b.COLUMN_COMMENT,
		'\';'
	) executeSQL
 FROM information_schema.TABLES a,information_schema.COLUMNS b 
 WHERE b.character_set_name IS NOT NULL 
	AND a.TABLE_SCHEMA=b.TABLE_SCHEMA 
	AND a.TABLE_NAME=b.TABLE_NAME
	AND a.TABLE_COLLATION!=b.COLLATION_NAME
	AND a.TABLE_SCHEMA='数据库名'

五、修改客户端、服务器、连接、数据库等字符集

更多推荐

修改数据库字符集