MySQL管理常用命令

本文介绍了MySQL数据库的管理技巧,包括设置复制坐标、检查复制延迟、监控事务影响行数、使用xtrabackup进行备份及恢复、解决密码遗忘问题以及查看SQL语句锁状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 新建slave设置复制坐标

a.) 5.5之前以及5.6未开启GTID复制的场合:

CHANGE MASTER TO MASTER_HOST='xxxx',
MASTER_PORT=3306,
MASTER_USER='xxxx',
MASTER_PASSWORD='xxxx',
MASTER_LOG_FILE='xxxx',
MASTER_LOG_POS=xxxx;


b. ) 5.6开启GTID复制的场合:

CHANGE MASTER TO MASTER_HOST='xxxx',
MASTER_PORT=3306,
MASTER_USER='xxxx',
MASTER_PASSWORD='xxxx',
MASTER_AUTO_POSITION=1;


2. 跟踪查看丛库复制延迟

while true ;do mysql -uuser -ppass -e "show slave status \G" | grep "Master_Log_File: \|  Read_Master_Log_Pos: \|  Relay_Master_Log_File: \|  Exec_Master_Log_Pos: \|  Seconds_Behind_Master:"; echo; sleep 1; done;


3. 跟踪查看MySQL事务执行过程中修改了多少行数据,对插入,更新,删除有效,其它场景未验证。

while true ;do mysql -uuser -ppass -e "select * from information_schema.INNODB_TRX where trx_mysql_thread_id=7959619 \G"  |  grep "trx_rows_modified:"; echo; sleep 1; done;


4.使用xtrabackup/innobackupex备份数据库

参考链接:http://blog.youkuaiyun.com/u010027484/article/details/51488552

a.)全量备份

#使用tar流备份全部db schema

/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/innobackupex --defaults-file=$MY_CNF --tmpdir=$TMP_DIR --ibbackup=/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/xtrabackup --user=user --password=password --slave-info  --stream tar  $DATA_DIR | ssh $REMOTE_HOST  "cat - > /vobiledata/tmp/${LOCAL_HOST}.mysqldata.tar.lzma"

#使用xbstream流备份全部db schema

./innobackupex  --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx--stream=xbstream /vobiledata/mysqldata/ |ssh root@$REMOTE_HOST
 "cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C  /vobiledata/mysqldata/" > innobackupex.log 2>&1

#使用xbstream流备份部分db schema

./innobackupex  --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx  --databases="db1 db2"  --stream=xbstream /vobiledata/mysqldata/ |ssh root@$REMOTE_HOST
 "cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C  /vobiledata/mysqldata/" > innobackupex.log 2>&1

-- 注意 --databases参数值要用引号括起来

b.)增量备份

#


5.使用xtrabackup/innobackupex重建数据库

#解压数据库备份文件
tar -xi --lzma -f ${db_data_package_file}
        
#还原数据库
innobackupex-1.5.1 --user=root --apply-log --defaults-file={mysql_conf_file} --ibbackup=/usr/bin/xtrabackup_51 --use-memory=2046M ${mysql_data_dir}

#将数据文件拷贝到数据目录,如果解压的时候文件已经在数据库目录下,则可省略此步骤       

#innobackupex-1.5.1 --user=root --copy-back --defaults-file=${mysql_conf_file} --use-memory=2046M --no-lock ${mysql_data_dir}


6.忘记mysql登陆密码了怎么办,执行下面的命令,只需简单三步就可绕过mysql 授权表启动,然后匿名登陆到mysql取回密码,前提是你得有重启mysql服务器的权限。

/etc/init.d/mysql stop;   

/usr/local/mysql/bin/mysqld --skip-grant-tables;

mysql;


 7. 查看sql语句锁信息

select * from processlist pl, innodb_trx trx, INNODB_LOCKS lk where lk.lock_trx_id = trx.trx_id and trx.trx_mysql_thread_id = pl.id limit 1 \G

select a.trx_mysql_thread_id 'brocking process', a.trx_state, c.trx_mysql_thread_id 'brocked process', c.trx_state, c.trx_query 'brocked sql' from INNODB_TRX a, INNODB_LOCK_WAITS b, INNODB_TRX c where a.trx_id = b.blocking_trx_id and c.trx_id = b.requesting_trx_id;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值