查看是否存在死锁并解除死锁的方法:
(1)查看下在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
(2)杀死进程id(就是上面命令的trx_mysql_thread_id列)
kill 线程ID
只导出表结构不导出数据:
mysqldump -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 --skip-add-drop-table --no-data --databases db1 > ./iam_nodata$(date +%F).sql
sed -i "s/^USE\s*/-- &/g" ./iam_nodata$(date +%F).sql
sed -i "s/^CREATE DATABASE/-- &/g" ./iam_nodata$(date +%F).sql
--skip-add-drop-table 不删除表
--no-data 不导出表数据
sed命令用于将导出的sql文件中的【CREATE DATABASE 数据库名】和【USE 数据库名】给注释掉,防止导入这个文件时误操作正常使用中的数据库。
备份指定的数据库:
mysqldump -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 -F -E -R --triggers --force --master-data=2 --single-transaction --databases test_new > ./iam_$(date +%F).sql
全量备份数据库,适用于所有场景下的备份:
mysql -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 -e "show databases" | grep -Ev "Database|information_schema|performance_schema|sys" |\
xargs mysqldump -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 -F -E -R --triggers --force --master-data=2 --single-transaction --databases > ./iam_$(date +%F).sql
xargs前面的命令,是为了将information_schema、performance_schema、sys这三个库过滤掉,mysqldump中的参数解释如下:
-F 在执行导出前先执行一下刷新二进制binlog日志文件,
-E 备份事件调度器,
-R 备份存储过程和函数,
--triggers 备份触发器,
--force 遇到错误时继续执行,
--master-data=2 备份时将change master语句注释掉,
--single-transaction 快照备份,即在导出过程对表的更新操作被挂起,
--databases 指定要备份的多个数据库。
清空数据库:
delete_databases=`mysql -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql"`
for db in $delete_databases;do mysql -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 -e "drop database $db";done
mysql -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 -e "show databases"
导入全量备份文件:
mysql -S /usr/local/mysql5.7/mysql.sock -uroot -p123456 --force < ./iam_$(date +%F).sql
查看全量备份文件导出时的binlog位置:
head -n 1000 iam_$(date +%F).sql | grep "CHANGE MASTER TO MASTER_LOG_FILE"
先重置主从关系:
STOP SLAVE;
RESET SLAVE ALL;
再恢复主从关系:
CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.002712',
MASTER_LOG_POS=154;
START SLAVE;
查看主从同步状态:
SHOW SLAVE STATUS\G