MySQL总结02
sql优化
- Insert使用批量
- 查询不要使用*, MySQ需要先查出表里的所有字段,再进行匹配
- 字符串的查询条件要带引号,否则可能不走索引
备份及恢复
备份
mysqldump -uroot -ppasswd -B dbname > filename.sql
note: -B备份指定库,使用-B备份文件中多了两行代码(create database dbname; use dbname;)
-A是备份所有的库指定字符集备份
mysqldump -uroot -ppasswd -B -default-character-set=utf8 dbname > mysql.bak.sql使用压缩命令备份
mysqldump -uroot -ppasswd --default-character-set=utf8 dbname|gzip > mysql.bak.sql.zip备份多个库
mysqldump -uroot -ppasswd -B dbname1 dbname2..|gzip > mysql.bak.sql.zip备份多个表
mysqldump -uroot -ppasswd dbname tablename1 tablename2.. > mysql.bak.sql恢复
mysqldump -uroot -ppasswd dbname < filename.sqlmysqldump关键参数
- -B 指定多个库,增加建库语句和use语句
- --compact去掉注释,适合调试输出,生产不用
- -A备份所有库
- -F刷新binlog日志
- --master-data 增加binlog日志文件及对应的位置点
- -x, --lock-all-tables
- -d 只备份表结构
- -t 只备份数据
mysqlbinlog
开启binlog
修改mysqld文件中的log-bin=日志文件名,binlog日志会根据自己的规则自动轮询
binlog只记录增删改的操作日志,不记录查询的操作日志,此日志通常用来恢复数据用使用binlog日志恢复数据
首先将binlog日志到处为sql文件
mysqlbinlog -d dbname binlogname > bin.sql
note: binlog文件只能用mysqlbinlog命令打开查看
-d: 只导出数据内容将sql文件导入数据库
mysql -uroot -ppasswd dbname < bin.sql
刷新切割日志
mysqladmin -uroot -ppasswd flush-log
命令使用范围
在mysql内部操作外部命令
system + 外部命令在mysql外部执行mysql内部命令
mysql -uroot -ppasswd -e "sql命令"
字符集乱码问题
mysql字符集乱码问题主要是因为系统字符集、客户端字符集、mysql字符集不统一造成的
客户端字符集修改
临时改变显示字符集:set names utf-8
永久:更改my.cng客户端模块的参数服务端字符集修改
更改my.cnf参数
[mysql]
default-character-set=utf8 适合5.1及之前版本
default-set-server=utf8 适合5.5版本
linux系统字符集修改
修改linux的字符集:vi /etc/sysconfig/i18n
是修改的文件生效:source /etc/sysconfig/i18n或者. /etc/sysconfig/i18n查看字符集
mysql -uroot -ppasswd -e "show variables like 'character_set%'
显示内容为:

修改已经中文乱码的数据库表
- 建库及建表语句到处,修改为utf8
- 到处所有的mysql数据
- 修改mysql服务端和客户端编码为utf8
- 删除原有的库表及数据
- 导入新的建库及建表语句
- 导入mysql所有数据
MySQL主从同步
文件同步
- NFS网络文件共享同步存储数据
- samba共享数据
- 定时任务或守护进程结合rsync, scp
- inotify(scrsync) + rsync触发式实时数据同步
- ftp数据同步
- ssh key + scp/rsync
mysql主从同步四种方案
- 主从方式,通过同步binlog最大限度保持数据一致,但也有风险
- 双写, 写的压力大
- 谷歌半同步插件,异步改为半同步
MySQL总结02的更多相关文章
- mysql笔记02 创建高性能的索引
创建高性能的索引 1. 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数据结构. 2. 索引可以包含一个或多个列的值.如果索引包含多个列,那么列的顺序 ...
- MYSQL基础02(查询)
查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表, ...
- MySQL高级02
索引简介 索引(Index)是帮助MySQL高效获取数据的数据结构.可以得到索引的本质:索引是数据结构.你可以简单理解为“排好序的快速查找数据结构”. 在数据之外,数据库系统还维护着满足特定查找算法的 ...
- MySQL案例02:ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
MySQL在授权用户时出现报错信息,具体信息如下: 一.错误信息 执行命令: GRANT SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SH ...
- Angular4+NodeJs+MySQL 入门-02 MySql操作类
NodeJs操作MySQL类 此类封装了几个常用的方法:插入,更新,删除,查询,开启事务,事务提交,事务回滚等操作.有一这个类,操作MYSQL就方便多了. 批处理,存储过程等方法还没有添加,因为觉得目 ...
- MySQL训练营02
一.表操作: 1.MySQL表的数据类型: MySQL的数据类型分为3种: 数值 时间/日期 字符/字符串 (1)数值类型: 包括:TinyInt.SmallInt.MediumInt.Int.Big ...
- MySQL丨02丨忘记root用户密码怎么办?
软件:Mysql 版本:8.0.13 1. 先暂停mysql的服务,方法是在cmd里输入如下代码: net stop mysql 2. 在安装文件夹下创建一个文件:mysql-ini.txt (我的安 ...
- MySQL存储过程02
这次接着说MySQL存储过程: 我们先看它的多分支控制结构case: case的语句很简单: case 变量名 when 条件1 then 输出结果1; when 条件2 then 输出结果2; .. ...
- MySQL数据库02
MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL. (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份 ...
随机推荐
- HTML设置span宽度
CSS中的 width 属性并不总是有效的如果对象是 inline 对象,width 属性就会被忽略,Firefox 和 IE 是遵循CSS标准,因而直接设置span宽度会无效. 解决:span { ...
- 好1.1.4 PTA提交列表及说明
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 我在这个课程的目标是 这个作业在那个具体方面帮助我实现目标 概括本周的学习以及更加熟练本周的代码 参考文献 C语言程序设计 百度文献 (h ...
- linux下用户切换
Linux学习使用ubuntu17,ubuntu安装的时候没有超级用户root的密码. 设置系统root用户的密码,Ubuntu刚安装后,因为root没有默认密码,需要手动设定.以安装ubuntu时输 ...
- BZOJ 4657 (网络流)
题面 Nick最近在玩一款很好玩的游戏,游戏规则是这样的: 有一个n*m的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需要操纵炮塔攻击BETA狗们. 攻击方法是:对于 ...
- js 监听input 实现数据绑定
<!DOCTYPE html> <html> <head> <script> function checkField(val) { //alert(&q ...
- [Fw]初探linux中断系统(2)
初探linux中断系统(2) 中断系统初始化的过程 用来初始化中断系统的函数位于arch/x86/kernel/irqinit.c,定义如下 void __init init_IRQ(void){ i ...
- runtime之归档和解档
IOS开发之NSCoding协议(使用runtime)近期学习IOS的runtime库,然后看到之前写的NSCoding协议有点复杂,如果属性少还好,如果100多个属性,则会显得麻烦.下面使用常规方式 ...
- GenXus学习笔记——Transaction的建立
我们上次聊到 如何正确无误的的创建一个项目KB 那么这次我们就该聊一点实际的东西了(敲黑板( ̄▽ ̄)) 上回书说道我们在创建完自己的KB后 该创建自己的数据库了 首先我们先创建创建一个表 但是创建之 ...
- php7类型约束的意义
在PHP7之前,函数和类方法不需要声明变量类型,任何数据都可以被传递和返回,导致几乎大部分的调用操作都要判断返回的数据类型是否合格. 为了解决这个问题,PHP7引入了类型声明. 目前有两类变量可以声明 ...
- C# 在Word表格中插入新行(表格含合并行)
public string CreateWordFile(string CheckedInfo) { string message = "" ...