mysql 修改字符集 mysql 修改字符集 mysql 修改字符集

mysql 修改字符集

较好的常规办法

【1】创建制定字符集的数据库

需求描述:

  在创建DB的时候指定字符集.

操作过程:

1.使用create database语句创建数据库

mysql> create database if not exists test03 default character set = 'utf8';
Query OK, 1 row affected (0.00 sec)

备注:通过default character set = 语句来指定DB的字符集.

2.查看创建的DB的字符集

复制代码
复制代码
show create database test;



【2】 select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test03'; +-------------+----------------------------+ | schema_name | default_character_set_name | +-------------+----------------------------+ | test03 | utf8 | +-------------+----------------------------+ 1 row in set (0.00 sec)

#字符集更改步骤~

 

mysql 修改字符集

以下部分转自:https://www.cnblogs.com/sxwen/p/7851031.html

 

一、修改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='数据库名'

一、修改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='数据库名'

猜你喜欢

转载自www.cnblogs.com/gered/p/10401066.html