有的时候查看mysql导入的数据后,发现是乱码,这是因为编码问题,包括数据库编码、表编码和需要到的文件编码,建议都设置为utf8,统一后就正常了,我将相关的命令整理下共享给需要的朋友。
查看mysql实例编码
show variables like 'character%';设置mysql实例编码
set character_set_database=utf8;
[root@server1 ~]# cat /etc/my.cnf
[client]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
default-character-set=utf8
init_connect='SET NAMES utf8'
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
no-auto-rehash
default-character-set=utf8
修改data库
alter database data character set utf8;
修改表编码
ALTER TABLE data CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
导数据
LOAD DATA local INFILE '/root/data .txt' INTO TABLE data FIELDS TERMINATED BY '\t';
建立新库 指定编码
CREATE DATABASE data DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
建立新表 指定编码
CREATE TABLE `table_test` (
`c1` varchar(40) DEFAULT NULL,
`c2` varchar(40) DEFAULT NULL
)default charset=utf8;
查看数据库编码
show create database data;
查看表编码
show create table table_test;