Lachlan
发布于 2025-10-13 / 10 阅读
0

一些杂乱的积累(MySQL)

MySQL数据库

xtrabackup 备份 mysql

xtrabackup --user='' --password='' --target-dir=/home/app/dbbackup/$(date +%Y-%m-%d) --backup --rsync --ftwrl-wait-timeout=3600 --check-privileges

xtrabackup --target-dir=/home/app/dbbackup/$(date +%Y-%m-%d) --prepare

#可以先prepare之后,直接把prepare后的目录传到新mysql的数据目录下。对应mysql目录下的数据需要清空。
#从库需拷贝完后执行:
>mysql reset master;
>mysql reset slave all;
>mysql set global gtid = '';

innobackupex --defaults-file=/etc/my.cnf --user=lachlan --password='Lachlan@123' /opt/dbbackup_01

全备:--target-dir=name --backup --rsync --ftwrl-wait-timeout=3600 --check-privileges

增备:--target-dir=name --backup --incremental-basedir=name --rsync --ftwrl-wait-timeout=3600 --check-privileges

全备恢复:--target-dir=name --check-privileges --prepare

增备恢复:--target-dir=fullbackup --check-privileges --prepare --apply-log-only

--target-dir=fullbackup --check-privileges --incremental-dir=incrbackup --prepare

MySQL迁移

xtrabackup --target-dir=/opt/0506 --backup --rsync --ftwrl-wait-timeout=3600 --check-privileges -u -p

xtrabackup --target-dir=/opt/0506 --check-privileges --prepare

scp -r | rsync /opt/0506

mydumper 备份 mysql

#排除部分库的备份:
mydumper -u lachlan -p Lachlan@123 --regex '^(?!(sys|performance_schema|information_schema|其它需排除的库))' --verbose=3 --outputdir /opt/dbbackup_01

#导入:
myloader -h 10.4.1.1 -u lachlan -p Lachlan@123 -v 3 -o -d /opt/dbbackup_02/

mysqldump排除部分库的备份

mysql -ulachlan -pLachlan@123 -N -e "show databases;" |grep -Ev "sys|performance_schema|informaition_schema|其它需排除的库" | xargs mysqldump -ulachlan -pLachlan@123 --databases > dbbackup_01.sql

mysql -ulachlan -p -h地址 <dbbackup_01.sql

MySQL启动命令

mysqld --defaults-file=/etc/my.cnf --daemonize

#或
/usr/sbin/mysqld --defaults-file=/etc/my.cnf --daemonize

mysqldump搭建主从同步步骤

#主库
>mysql GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'%' IDENTIFIED BY 'Repl@123';

#导出主库SQL
mysqldump -h10.4.1.1 -P3306 -ulachlan -p --single-transaction --triggers --routines --flush-privileges --events --all-databases > dbbackup_01.sql

#从库
>mysql reset master

#主库/从库节点执行都可以,指定的ip为从库即可
nohup mysql -h10.4.1.2 -ulachlan -pLachlan@123 < dbbackup_01.sql &

#从库
>mysql change master to
master_host='10.4.1.1',
master_user='repl',
master_password='Repl@123',
master_port=3306,
master_auto_position=1;

>mysql start slave;

不重启MySQL情况下从库过滤某一些表不同步(从库执行)

>mysql stop slave;

>mysql change replication filter Replicate_wild_ignore_table=(\'aaadb.aaatable\',\'bbbdb.bbbtable\',\'cccdb.ccctable\');

>mysql start slave;

#配置文件my.cnf同时也修改。

MySQL审计audit日志(仅供参考方法论,各种日志和关键词以实际为准)

grep '202308.*adapter_auth' /opt/mysql-files/auditlog/server-audit.log > tmp
less tmp
mysqlbinlog -v /opt/mysql-files/relaylog/relay.000004|less
grep -v 'select * from' tmp > 1
less 1
grep 'update.*ABCD0000' 1
grep '20230824.*update.*ABCD0000' 1

mysql导出部分库

mysqldump -h10.4.1.1 -P3306 -ulachlan -pLachlan@123 --single-transaction --triggers --routines --set-gtid-purged=OFF --events --databases aaadb bbbdb cccdb ddddb eeedb fffdb > "export_$(date +%Y%m%d).sql"

mysql导出某个库的某些表

mysqldump -h10.4.1.1 -P3306 -ulachlan -pLachlan@123 --single-transaction --triggers --routines --set-gtid-purged=OFF --events aaadb aaatable aabtable aactable aadtable aaetable aaftable > export_01.sql