修改最大连接数
1 | #查看当前设置的最大连接数 |
慢查询
1 | #------ 开启/关闭 慢查询日志---- |
修改时区
1 | #查看mysql当前时区 |
登录mysql
1 | $ mysql -u root -p |
连接远程数据库
1 | mysql -uroot -proot -h192.168.0.333 -P3306 #(mysql -u用户名 -p密码 -h 远程主机 -P数据库端口。)密码如果包含特殊字符将密码用单引号扩起来,如:-p'test@&12345' |
创建用户
1 | #创建用户‘htrace22’(`%`表示所有ip均可链接,可制定为具体的ip地址) |
修改密码
1 |
|
用户查询、赋权、删除
1 | #------查看所有用户------ |
设置只读模式
1 | # 设置普通用户只读模式(super用户可读写) |
查看mysql配置文件的路径
1 | # linux |
mysql系统变量设置
如果是全局级别需要加GLOBAL,如果是会话级别需要加SESSION。如果什么都不写,默认是SESSION。
全局变量的作用域: 修改全局变量后,针对后续创建的所有会话(连接)有效。服务重启后失效。
会话变量的作用域: 仅仅针对当前的会话(连接)有效。
服务器的配置文件: 永久有效,如果修改了,需重启服务才能生效。
修改mysql系统变量不重启服务的方式: 依次修改 当前所有会话变量、全局变量、配置文件,这样就能保证当前会话、后续会话、及服务重启后,系统变量都能生效的效果。
1 | -- 查看mysql版本 |
binlog常用参数介绍
binlog_rows_query_log_events=1
在row模式下开启该参数,将把sql语句打印到binlog日志里面.默认是0(off);
binlog_row_image=FULL
在binlog为row格式下,full将记录update前后所有字段的值,binlog增长速度较快,对存储空间,主从传输都是一个不小的压力。minimal时,只记录更改字段的值和where字段的值,noblob时,记录除了blob和text的所有字段的值,如果update的blob或text字段,也只记录该字段更改后的值,更改前的不记录;默认为full。(只有值为full时,才能通过binlog进行数据恢复)
在mysql中查询当前二进制日志列表:SHOW BINARY LOGS;
或SHOW MASTER LOGS;
mysqlbinlog命令介绍
一条示例命令: mysqlbinlog /data/mysql_data/bin.000008 --database EpointFrame --base64-output=decode-rows -vv --skip-gtids=true --start-datetime="2016-09-25 21:57:19" |grep -C 1 -i “delete from Audit_Orga_Specialtype” > /opt/sql.log
-v 参数: 显示sql语句
-vv 参数: 显示sql语句和字段类型
–base64-output参数: 用来控制binlog部分是否显示出来的,指定为decode-rows表示不显示binglog部分(加了该参数后导出的binlog文件将不能用来进行数据恢复)
grep -C 1 显示符合查询条件的当前行,及该行前后各一行的数据
grep -i 查询时忽略大小写
通过mysqlbinlog恢复数据方法
- 在备份时使用
--master-data=2
参数,在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息。如:mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz
- 通过最新的备份文件还原数据库,如:
mysql --host=host_name -u root -p < dump_file
- 使用
grep
命令从备份文件中找到备份时对应的binlog位置,如:grep CHANGE ops_2016-09-25.sql
从dump_file中找到– CHANGE MASTER TO MASTER_LOG_FILE=‘binlog.001002’, MASTER_LOG_POS=27284; - 通过以上几步,已经将数据库还原到了binlog的binlog.001002对应的27284位置,然后再通过mysqlbinlog命令对27284位置之后的数据进行增量恢复即可。如:
mysqlbinlog --start-position=27284 binlog.001002 binlog.001003 binlog.001004 | mysql --host=host_name -u root -p
。如果想恢复到指定的时间点也可以通过设置--stop-position=binlog截止位置
实现。另外如果想恢复某个时间段的数据也可以使用时间戳参数进行恢复,如:--start-datetime="2016-09-25 21:57:19" --stop-datetime="2016-09-25 21:58:41"
。
(完)