Mysql相关知识点总结

字符集相关问题

1、如果出现数据库数据显示乱码请从三个方面解析
- 客户端字符集
- 服务端字符集
- 连接工具字符集

其中客户端字符集临时生效使用set name utf8,如果想要永久生效,请在my.cnf配置文件配置,并重启mysql

2、常用的集中字符集
- GBK:不是国际字符,对中文字符支持比较好,一个字符占两个字节
- utf-8:在中英文混合的情况下适合使用,每个中文字符都占三个字节
- latin1:mysql的默认字符集,每个字符占一个字节
- utf8mb4:UTF-8 unicode,每个字符占四个字节

3、如何选择mysql的字符集设置,这里分几种情况记录一下
- 如果处理各种各样的文字,发布到不同语言国家地区,应选择Unicode字符集,对mysql来说就是UTF-8,如果要使用英文,仅使用少量的UTF-8更好
- 如只需要支持中文,性能也要求比较高,可选GBK,如果需要大量运算,比较排序等,定长字符集,更快,性能更高。
- 处理移动互联网业务,可以需要使用utf8mb4字符集

4、如何修改已有的数据字符集
- 不能直接使用alter databases character set *,这个命令没有更新已有记录的字符集,而只是对新创建的表或者记录生效。
- 已有记录的字符调整,必须先将数据导出,经过修改字符集后重新导入后才可完成

5、修改字符集步骤
1)、建库及建表的语句导出,sed批量修改改为utf8
2)、导出所有mysql数据
3)、修改mysql服务端和客户端编码为utf8
4)、删除原有的库表及数据
5)、导入新的建库及建表的语句
6)、导入mysql的所有数据

6、备份语句

mysqldump -uroot -p --quick --no-create-info --extended-insert--default-character-set=latin dbname >alldata.sql

参数说明:
--quick:用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有行,并输出钱cache到内存中
--no-create-info:不创建create table语句
--extended-insert:使用包括几个VALUES列表的多行INSERT语法,这样文件更小,IO也小,导入数据时会非常快。
--default-character-set=latin1 #按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码。

mysql备份

1、备份的时候加入-B参数,增加创建数据库和连接数据库的命令,如

mysqldump -uroot -proot --default-character-set=latin1 -B
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值