解决linux中mysql乱码问题
来源:互联网 发布:新浪微博修改个性域名 编辑:程序博客网 时间:2024/05/20 10:22
当把windows下的mysql文件拖到虚拟机ubuntu下时候,再导入到ubuntu下的mysql中就会出现错误,因为从windows下传过来的文件会被转码程gbk,而ubuntu下的mysql编码为utf8格式,所以倒入不进去。可以在进入mysql后运行status查看。
mysql> status
--------------mysql Ver 14.14 Distrib 5.1.66, for pc-linux-gnu (i686) using EditLine wrapper
Connection id: 4
Current database: mydb
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.66-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 8 min 33 sec
在网上查找方法,发现自己安装的时候仅仅是./configure 的时候没有制定字符集,于是果断重新编译
step1: ./configure --with-charset=utf8 --with-collation=utf8_bin --with-extra-charsets=big5,ascii,gb2312,gbk,utf8,latin1
//默认的字符集缺省为latin1。
//其中,utf8对应可用的collation值为:utf8_bin、utf8_general_ci、utf8_unicode_ci
//extra支持也可以使用 "--with-extra-charsets=all"。
Step2:在make步骤之前,修改config.h头文件,查找utf8、gbk、gb2312等定义字符集变量的行,确认有如下内容(如果没有则需要手动添加),例如:
#define HAVE_CHARSET_ascii 1
#define HAVE_CHARSET_big5 1
#define HAVE_CHARSET_gb2312 1
#define HAVE_CHARSET_gbk 1
#define HAVE_CHARSET_latin1 1
#define HAVE_CHARSET_utf8 1
//可是我并我没有找到config.h文件。
//一开始没有修改config.h,费了好多功夫,"mysql>"环境中使用非默认字符集时总报"Error 1115"错误:
mysqld> set names gbk;
ERROR 1115 (42000): Unknown character set: 'gbk'
//后来发现在./configure完成后,config.h文件中并没有自动打开gbk、gb2312等变量定义,不得不手动修改添加。
2、验证mysqld服务的多字符集支持
1) 查看当前mysql数据库支持的字符集
mysql> show character set;
2) 查看对应字符集可用的校对规则
mysql> show collation like 'gb%';
mysql> show collation like 'utf8%';
3) 查看当前mysql服务器使用的默认字符集状态
mysql> status
……
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
4) 在创建数据库时指定使用的默认字符集:
mysql> create database testdb default character set utf8;
mysql> show create database testdb; //验证数据库建立信息
5) 在创建数据表时指定使用的默认字符集:
mysql> create table testdb.tb1 ( id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(15) NOT NULL default '',PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARACTER SET gb2312;
mysql> show create table testdb.tb1; //验证数据表建立信息
6) 在mysql>客户端环境中设置使用的默认字符集
mysql> set NAMES utf8;
接着make && make install 后再重启一下,再导入数据库文件就没有错误了。
- Linux中解决mysql乱码问题
- Linux中解决mysql乱码问题
- 解决linux中mysql乱码问题
- 解决linux中mysql乱码问题
- 解决linux中mysql乱码问题
- 解决linux中mysql乱码问题
- 解决MySQL中乱码问题
- 解决linux环境mysql中文乱码问题
- Linux下解决mysql中文乱码问题
- 解决Linux mysql 中文乱码问题方案
- MySql中如何解决中文乱码问题
- mysql数据库中解决乱码问题
- mysql解决网页中乱码的问题
- 解决Linux系统中MySQL乱码
- CentOS(Linux)中解决MySQL乱码
- CentOS(Linux)中解决MySQL乱码
- CentOS(Linux)中解决MySQL中文乱码
- Linux中MySQL中文乱码解决
- Documentum 中编号标识和type类型的对应关系表(基础)
- test001
- Oracle中job的使用详解
- Java Annotation详解
- 使用Struts1实现文件上传(二) 连接使用Struts1实现文件上传(1)
- 解决linux中mysql乱码问题
- SQL Server常用测试题
- 当文件上传 无法获取request值时 的操作
- curl web site
- 嵌入式开发 配置软件环境
- linux防火墙关闭命令
- 获取linux服务器IP
- 如何禁止win7电脑访问某个网站?
- 上传文件一直用web_custon_request这种方式上传流文件,其实也可以用表单的方式上传文件,只需要将文件放在LR文件包中的目录。