查看mysql db编码
mysql> show create database park_db;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| park_db | CREATE DATABASE `park_db` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
show create table park;
下面语句用于查看编码方式是否已经修改:
show variables like 'char%';
2. 附:对于已经存在了的数据库,可以如下操作使其改变编码方式:
a. 修改MYSQL数据库编码,如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令:
ALTER DATABASE dbName DEFAULT CHARACTER SET utf8;
以上命令就是将MYSQL的test数据库的编码设为utf8
b. 修改MYSQL表的编码:
ALTER TABLE tableName DEFAULT CHARACTER SET utf8;
以上命令就是将一个表category的编码改为utf8
c. 修改字段的编码:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将MYSQL数据库test表中 dd的字段编码改为utf8
使用mysql 经常会遇到编码问题,而导致程序出现乱码,mysql 在以下几个地方会涉及到编码格式
数据库编码
服务器编码
连接编码
客户端编码
下面是一个典型的示例, 运行 mysql -u root
查看编码 mysql>status
mysql Ver 14.7 Distrib 4.1.14, for Win32 (ia32)
Connection id: 90
Current database: yitian
Current user: ODBC@localhost
SSL: Not in use
Using delimiter: ;
Server version: 4.1.14
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: gbk
Client characterset: latin1
Conn. characterset: latin1
TCP port: 3306
Uptime: 1 hour 28 min 21 sec
Server characterset: latin1 服务器使用的编码为 latin1
Db characterset: gbk 数据库 yitian的编码为 GBK
Client characterset: latin1 client 端为 latin1
Conn. characterset: latin1 连接的编码为 latin
如果我们要使用支持中文的 gbk 数据库, 就要在创建数据库时,使用下面的语法
GBK 使用
CREATE DATABASE yitian DEFAULT CHARACTER SET gbk
COLLATE gbk_chinese_ci;
utf8 使用
CREATE DATABASE IF NOT EXISTS yitian default charset
utf8 COLLATE utf8_general_ci;
如果要改变数据库的默认编码可以修改 my.ini
设置 my.ini
#default-character-set=GBK
default-character-set = UTF8
java程序insert中文数据时,表中出现乱码????。
解决方法:url后带上&useUnicode=true&characterEncoding=GBK
mysql> show create database park_db;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| park_db | CREATE DATABASE `park_db` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
show create table park;
下面语句用于查看编码方式是否已经修改:
show variables like 'char%';
2. 附:对于已经存在了的数据库,可以如下操作使其改变编码方式:
a. 修改MYSQL数据库编码,如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令:
ALTER DATABASE dbName DEFAULT CHARACTER SET utf8;
以上命令就是将MYSQL的test数据库的编码设为utf8
b. 修改MYSQL表的编码:
ALTER TABLE tableName DEFAULT CHARACTER SET utf8;
以上命令就是将一个表category的编码改为utf8
c. 修改字段的编码:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将MYSQL数据库test表中 dd的字段编码改为utf8
使用mysql 经常会遇到编码问题,而导致程序出现乱码,mysql 在以下几个地方会涉及到编码格式
数据库编码
服务器编码
连接编码
客户端编码
下面是一个典型的示例, 运行 mysql -u root
查看编码 mysql>status
mysql Ver 14.7 Distrib 4.1.14, for Win32 (ia32)
Connection id: 90
Current database: yitian
Current user: ODBC@localhost
SSL: Not in use
Using delimiter: ;
Server version: 4.1.14
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: gbk
Client characterset: latin1
Conn. characterset: latin1
TCP port: 3306
Uptime: 1 hour 28 min 21 sec
Server characterset: latin1 服务器使用的编码为 latin1
Db characterset: gbk 数据库 yitian的编码为 GBK
Client characterset: latin1 client 端为 latin1
Conn. characterset: latin1 连接的编码为 latin
如果我们要使用支持中文的 gbk 数据库, 就要在创建数据库时,使用下面的语法
GBK 使用
CREATE DATABASE yitian DEFAULT CHARACTER SET gbk
COLLATE gbk_chinese_ci;
utf8 使用
CREATE DATABASE IF NOT EXISTS yitian default charset
utf8 COLLATE utf8_general_ci;
如果要改变数据库的默认编码可以修改 my.ini
设置 my.ini
#default-character-set=GBK
default-character-set = UTF8
java程序insert中文数据时,表中出现乱码????。
解决方法:url后带上&useUnicode=true&characterEncoding=GBK