您的位置:首页 > 数据库 > MySQL

MySQL管理常用命令

2016-06-06 12:20 686 查看
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.csdn.net/u010027484/article/details/51488552

a.)全量备份

#使用tar流备份[b]全部[b]db schema[/b][/b]

/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流备份全部[b]db schema[/b]

./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

#[b]使用xbstream流备份部分db schema[/b]

./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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: