首先进入数据库我们可以用status查看字符编码
MySQL> status
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
还可以使用指令
show variables like '%char%'
创建数据库时指定编码CREATE DATABASE
数据库名DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
更改数据库编码
alter database 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci
查看表的编码show create table 表名 \G
创建表时指定编码drop table if exists 表名;
create table 表名(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表编码
alter table 表名 character set utf8 COLLATE utf8_general_ci
修改字段编码
alter table 表名change 字段名 字段名 类型 character set utf18 not null
或
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci
修改全部字段alter table 表名 convert to character set utf8
- 1
- 1
CREATE DATABASE
数据库名
:创建数据库tpcms。在命令行里创建的时候,`要用键盘Esc下的那个,而不是单引号,否则出错;DEFAULT CHARACTER SET utf8
:数据库字符集。设置数据库的默认编码为utf8,这里utf8中间不要”-“;COLLATE utf8_general_ci
: 数据库校对规则。该三部分分别为数据库字符集、通用、区分大小写。
set character_set_server = utf8; – 服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法是修改配置mysql文件MY.INI
mac下my.cnf
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
- [client]代表客户端默认设置内容
- [mysql]代表我们使用mysql命令登录mysql数据库时的默认设置
- [mysqld]代表数据库自身的默认设置