步骤一 将待导出的数据表的表结构导出(可以用Phpmyadmin、mysqldump等,很简单就不说了),然后将导出的create table语句的CHARSET=latin1改为CHARSET=utf8,在目标库newdbname中执行该create table语句把表结构建好,接下来开始导出-导入数据
步骤二 命令行:进入mysql命令行下,mysql -hlocalhost -uroot -p dbname
步骤三 执行SQL select from tbname into outfile '/usr/local/tbnamesql';
步骤四 将tbnamesql转码为utf-8格式,建议使用UltraEditor,可以直接使用该编辑器的'转换->ASCII到UTF-8(Unicode编辑)',或者将文件另存为UTF-8(无BOM)格式
步骤五 在mysql命令行下执行语句 set character_set_database=utf8; 注:设置mysql的环境变量,这样mysql在下一步读取sql文件时将以utf8的形式去解释该文件内容
步骤六 在mysql命令行下执行语句 load data infile 'tbnamesql' into table newdbnametbname;通过MySQL命令行修改:
mysql> set collation_server=utf8;
Query OK, 0 rows affected (001 sec)
再查看 mysql> show variables like 'character_set_%';
mysql数据库的默认编码并不是utf-8,所以需要将数据库的编码改成utf-8。
具体的方法步骤如下:
安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码:
由上图可见database和server的字符集使用了latin1编码方式,不支持中文,即存储中文时会出现乱码。以下是命令行修改为utf-8编码的过程,以支持中文。
1、关闭mysql服务
[plain] view plaincopy
service mysql stop
2、修改 /etc/mysql/mycnf (默认的安装路径)
[plain] view plaincopy
vim /etc/mysql/mycnf
打开mycnf后,在文件内的[mysqld]下增加如下两行设置:
[plain] view plaincopy
character_set_server=utf8
init_connect='SET NAMES utf8'
(具体如截图所示):
保存退出。
3、重新启动mysql服务
[plain] view plaincopy
service mysql start
至此,完成修改默认编码,登陆mysql后重新使用show variable like '%character%'获得的输出效果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)