Mysql字符集乱码解决方案
2015-12-21 11:28
351 查看
主题思想就是系统,客户端,服务器端需要统一字符集:(中英文混合环境推荐utf8)
1,修改系统字符集:
8,导入导出数据的数据完整无乱码:
导出:
myisam
1,修改系统字符集:
#vim /etc/sysconfig/i18n LANG=”zh_CN.utf8”2,修改my.cnf
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 适合5.5 default-character-set=utf8 适合5.13,重启数据库
#mysqladmin –uroot –p’abc-123’ shutdown #/etc/init.d/mysqld start4,查看生效的字符集:
#show varliables like ‘character_set%’5,创建库表的时候带上字符集设置:
mysql>create database student default characterset utf8 collate utf8_general_ci; create tables info( id int(4) auto_increment , name var(20) not null, sex tinyint(1) not null default 0, primary key(id), idx index_name(name) )engine=innodb default charset=utf86,在操作数据库的时候如果碰到临时生效字符集
mysql>set names utf8;7,生产环境中更改字符集的方法
mysql>alter database student charset *; alter table info character set *;这条命令之后对后创建的表内数据生效,不会修改之前的数据类型,解决办法就是到处厡数据的表内数据,然后重新创建想要的字符集库,然后导入。
8,导入导出数据的数据完整无乱码:
导出:
myisam
#mysqldump –uroot –p’abc-123’ –A –B --quick –F –events \ --flush-privileges –x –master-data=1 --default-character-set=gbk|gzip>/opt/all_bak.sql.gzinnodb:
#mysqldump -uroot -p'abc-123' -A -B -F--quick --events --flush-privileges --single-transaction --master-data=1--default-character-set=utf8|gzip >/opt/all_bak.sql.gz导入:
#gunzip /opt/all_bak.sql.gz #vim all_bak.sql 修改set namesgbk为utf8 #mysql –uroot –p’abc-123 <all_bak.sql
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复