mysql的默认编码是latin1,不支持中文。
怎么修改mysql的默认编码?本文以utf-8默认编码修改为例来介绍。
创建数据库并指定编码方式:
create database aa default character set 'utf-8';
上面是在创建数据库时指定数据库的编码方式.下面为大家分享一种最简单最彻底的修改mysql默认编码的方法,一起来看看吧。
注意,修改mysql默认编码的方法,要修改的地方非常多,相应的修改方法也很多。
一、windows系统下面
1、中止mysql服务
2、在mysql的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可
3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭.
(mysqld中增加如果出错,可以试 character-set-server=utf8)
4、启动mysql服务
二、linux系统下面
1、中止mysql服务(bin/mysqladmin -u root shutdown 或者 service mysqld stop)
2、在/etc/下找到my.cnf,如果没有就把mysql的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可(针对编译安装的用户)
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动mysql服务(bin/mysqld_safe & 或者 service mysqld start)
以上修改一劳永逸,mysql一切相关的默认编码均为utf-8了,创建新表格时无需再次设置。
提示:当前数据库中已经存在的数据仍保留现有的编码方式,因此需要自行转码。
查看数据库的当前编码:
mysql -uroot -p mysql> use db; mysql> status; -------------- mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1 Connection id: 116 Current database: blog Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.1.73 Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: gbk Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 27 min 57 sec
更改方式:
alter database db_name default character set 'utf-8';
注意:如果是高版本的mysql中,将mysql默认编码修改为utf-8?只需在my.ini中的[mysqld]组名的末尾添加:character-set-server=utf8即可。
mysqld:unknown variable 'default-character-set=utf8'的错误原因是什么?
因为参数:default-character-set=utf8 在较新版本的mysql 中已移除。
建议高版本的mysql使用”character-set-server“,而不要使用“default-character-set”。
查看字符编码:
设置好后,如何查看设置的字符编码是否可以?
查看方法,在命令提示符下输入:
show variables like 'char%'
备份:
导出数据:
mysqldump -uroot -p'' dbname --default-character-set=utf8 > dbname.sql
查看导出数据的编码方式:
file dbname.sql dbname.sql: UTF-8 Unicode English text, with very long lines
转换为要用的编码:
iconv -f utf-8 -t gbk base_user.sql >base_user_gbk.sql
二〇一五年三月三十日 09:11:31
评论区