一、字符集乱码

1.操作系统字符集

[root@mysql5 ~]# cat /etc/system-release /etc/sysconfig/i18n
CentOS release 6.5 (Final) # 操作系统发行版本
LANG="en_US.UTF-8"      # 语言版本
SYSFONT="latarcyrheb-sun16"

2.设置MySQL客户端

set names utf8;

[mysql]

default-character-set=utf8

3.设置MySQL服务端

[mysqld]
# mysql5.1
default-character-set=utf8
# mysql5.5
character-set-server=utf8

4.库表

create database zwq default character set utf8 collate utf8_general_ci;

5、系统字符集与数据库字符集的关联

[root@mysql5 ~]# cat /etc/sysconfig/i18n ; mysql -e "show variables like 'character_set%';";
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
+--------------------------+----------------------------------+
| Variable_name | Value     |
+--------------------------+----------------------------------+
| character_set_client | utf8 $LANG决定           |
| character_set_connection | utf8 $LANG决定 |
| character_set_database | utf8 属性 character_set_server |
| character_set_filesystem | binary |
| character_set_results | utf8 $LANG决定 |
| character_set_server | utf8 属性 character_set_server |
| character_set_system | utf8 $LANG决定 |
| character_sets_dir | /app/mysql/share/charsets/    |
+--------------------------+-----------------------------------+

/etc/sysconfig/i18n中的LANG变量决定了 character_set_client、character_set_connection、character_set_results、character_set_system

my.cnf配置项

[mysqld]

character_set_server 决定了 character_set_database、character_set_server

character_set_filesystem 决定了 character_set_filesystem

set names utf8 决定了 character_set_client、character_set_connection、character_set_results

--default-character-set=utf8 效果跟set names utf8一样

二、更改已有数据的字符集

-- 1、建库建表的语句导出,sed批量修改为utf8

  mysqldump -uroot -proot --default-character-set=latin1 -d zwq > destructer.sql
-- 2、导出所有数据

  mysqldump -uroot -proot --quick --no-create-info --extended-insert --default-character-set=utf8 db_name >db_name_data.sql 
-- 3、修改mysql客户端和服务端编码为utf8
-- 4、删除原有的库表、数据
-- 5、导入新的建库建表语句
-- 6、导入mysql的所有数据

三、安全的更新操作

为了防止不加where条件的update语句被执行,需要在 /etc/my.cnf 、 ~/.my.cnf 或 --defaults-file 指定的配置文件中加入

[mysql]
safe-updates=TRUE

四、将表移动到另一个库中

-- 方式1
rename table school.student to zwq.student;
-- 方式2
alter table zwq.student rename to school.student;

MySQL 字符集问题及安全的更新操作的更多相关文章

  1. mysql批量update更新,mybatis中批量更新操作

    在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

  2. python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)

    今天在尝试用下面的python代码对MySQL进行数据的插入.更新和删除时, 突然发现代码执行成功, 通过代码查询也显示数据已经插入或更新, 但是当我在MySQL客户端通过SQL语句查询时, 数据库中 ...

  3. 技术分享 | 在MySQL对于批量更新操作的一种优化方式

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 作者:景云丽.卢浩.宋源栋 GreatSQL社区原创内容未经授权不得随意使用,转 ...

  4. MySQL 的更新操作update

    1 更新操作(单表更新) 1)单表更新 update [low_priority] [ignore] table_reference set col_name1={expr1|default},col ...

  5. MySQL字符集

    字符集的选择 1.如果数据库只需要支持中文,数据量很大,性能要求也很高,应该选择双字节定长编码的中文字符集(如GBK).因为相对于UTF-8而言,GBK"较小",每个汉字只占2个字 ...

  6. Mysql字符集知识总结

    字符集&字符编码方式 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,这里的字符可以是英文字符,汉字字符,或者其他国家语言字符. 常见字符集 ...

  7. [MySQL] 字符集的选择

    1. Mysql支持的字符集 MySQL服务器可以支持多种字符集,不同的字段都可以使用不同的字符集. 查看所有可用字符集: show character set; select * from info ...

  8. MySQL字符集编码

    MySQL字符集编码总结 之前内部博客上凯哥分享了一篇关于mysql字符集的文章,之前我对mysql字符集一块基本没有深究过,看到凯哥文章后有些地方有点疑惑,遂自己去看了mysql的官方文档,并參考了 ...

  9. MySQL字符集设置及字符转换(latin1转utf8)

    MySQL字符集设置及字符转换(latin1转utf8) http://blog.chinaunix.net/uid-25266990-id-3344584.html  MySQL字符集设置及字符转换 ...

随机推荐

  1. 工厂模式(Factory Method)

    1.工厂方法模式(Factory Method) 工厂方法模式分为三种: 1-1.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建. 举例如下:(我们举一个发送邮件和短信的例子 ...

  2. sql server 2008 r2 登陆时显示无法打开默认的数据库

    解决! 第一步: 远程其他服务器的数据库能连上,本地的数据库某个用户名就是打不开,一开始以为是用户名或者密码错误, 后来用sqlcmd dos命令 -S . -U an -P sa 的方式登陆时可以的 ...

  3. 关于verilog中语句可不可综合

    1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,functio ...

  4. Okio 之初探黄龙

    Okio 是一个包装了 java.io 和 java.nio api 的库,以便可以更容易的访问.存储以及处理数据. ByteStrings 和 Buffers Okio 是围绕着两个容器类构建起来的 ...

  5. jquery on的常用 用法

    定义和用法 on()方法在被选元素及子元素上添加一个或多个方法. 提示:使用on方法添加的事件处理程序适用于当前及未来的元素(javascript创建的) 提示:移除事件处理程序使用off()方法,如 ...

  6. QScintilla 编译

    直接上英文了,不翻译了.看不懂的可以留言哈. ———————————————————————————————————————— Installation As supplied QScintilla ...

  7. Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤

    首先,介绍一下MySQL的几种安装方式 1.RPM.Yum 的安装方式:安装方便.安装速度快,无法定制 2.二进制:不需要安装,解压即可使用,不能定制功能 3.编译安装:可定制,安装慢. 编译安装中需 ...

  8. vmware 上ubuntu server连接外网

    最近在自己的电脑上搞了个ubuntu server,自己做点小demo,当需要连接网络时问题来了,没法连接网络,网上有一些资料都是一笔带过,并不符合自己的情况,现在将我解决的过程记录下: 首先,在自己 ...

  9. 设计模式 - 装饰者模式(Decorator Pattern) 具体解释

    装饰者模式(Decorator Pattern) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26707033 装饰者 ...

  10. 大白话Vue源码系列(03):生成render函数

    阅读目录 优化 AST 生成 render 函数 小结 本来以为 Vue 的编译器模块比较好欺负,结果发现并没有那么简单.每一种语法指令都要考虑到,处理起来相当复杂.上篇已经生成了 AST,本篇依然对 ...