mysql

备份

1
2
mysqldump  -uroot  -p  --all-databases>backup.sql
mysqldump -uroot -p --databases dbname1 dbname2>backup.sql

恢复

1
mysql  -uroot  -p  <backup.sql

排查最大连接数

1
2
3
show global status like 'Max_used_connections'; 查询设置的最大连接数
show variables like '%max_connections%'; 查询历史最大连接数
set GLOBAL max_connections=256; 更新最大连接数

导出mysql结构

1
mysqldump -h localhost -uroot -pwise2c2017 -d builderdb > dump.sql

mysql-用户授权

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE USER 'permission'@'%' IDENTIFIED BY 'permission'; 
#创建用户 % 允许远程用户访问 用户名:permission 密码:permission

show grants for permission;
#查看permission用户的权限

grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, REFERENCES on bldr.* to permission@'%'
#给db中的 bldr数据库实例授权

grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, REFERENCES on *.* to permission@'%'
#给全部数据库实例授权

GRANT ALL PRIVILEGES ON *.* TO 'permission'@'%'
#授予全部db权限

revoke select, insert, update, delete on *.* from permission@'%';
#撤销权限

mysql-问题排查

执行计划
1
2
EXPLAIN select * from test; 
#查看sql执行计划
慢日志
1
2
3
4
5
6
7
8
9
10
# 慢日志参数
slow_query_log # 是否开启慢查询日志 1:开启 0 关闭
slow-query-log-file # 慢日志输出的路径
long_query_time # 设置慢查询时间阈值 1 表示1秒
log_queries_not_using_indexes # 查询为使用索引 被记录
log_output # 日志存储的方式 默认:FILE 可以是: FILE,TABLE

# 命令更新参数
set global slow_query_log = 1
show variables like '%slow_query%'

db权限说明

所有库都需要都权限

  • grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, REFERENCES on dbname.* to permission@’%’
    第三方组件 grafana 权限 (需要DROP权限)
  • grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, REFERENCES,DROP on dbname.* to permission@’%’
    autocommit (需要开启)
  • set global autocommit = 1

查看mysql 链接数状态

1
show processlist

清理mysql-binlog

当mysql集群开启了主从同步,会产生大量当binlog, 耗费大量的磁盘空间

方法:

1
2
3
- 关闭主从
- 设置expire_logs_days 超过过期时间自动清理
- 手动清理日志

mysql 8 小时超时

1
2
interactive_timeout  默认8小时超时 8小时不连接自动端口, 用户mysql 客户端
wait_timeout 默认8小时超时 8小时不连接自动断开, 用于类似jdbc 连接