%77w%77%2Ef%6F%72p%73%70%2Ec%6E

mysql 同步检查错误常用sql
 
# 查询正在执行的sql
SELECT
  ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO
FROM information_schema.PROCESSLIST
WHERE COMMAND != 'Sleep'
 AND INFO IS NOT NULL
ORDER BY TIME DESC;
   
USER:连接用户(system user 说明是复制线程或后台线程)。
DB:使用的数据库。
COMMAND:正在做的操作,比如 Query、Sleep、Binlog Dump 等。
TIME:当前状态持续的秒数。
STATE:当前 SQL 所处的阶段(如 Sending data、Waiting for table metadata lock)。
INFO:完整 SQL 文本(如果有的话,就是正在执行的 SQL)。
 
# 查询具体异常执行错误 
SELECT * FROM performance_schema.replication_applier_status_by_worker\G;
 
# 查看,非僵尸进城
SELECT * FROM information_schema.processlist WHERE COMMAND != 'Daemon';
 
 
# 跳过错误,跳过1次
stop SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
start SLAVE;
SHOW SLAVE STATUS\G;
 
# 重新设置 同步位置 
stop SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.022083', MASTER_LOG_POS=4;
start SLAVE;
 
# mysql.conf 配置 跳过错误, 重启后 有效
slave-skip-errors = 1062,1032
1062 是配置跳过插入key 重复
1032 = Could not find record (delete 时没找到行)
 
# 如果同步文件错误,则需要重置从库同步账号和同步位置:
STOP REPLICA; 
RESET REPLICA ALL;
重置代码
change master to master_host='master-1orIP',MASTER_PORT=3306, master_ssl=1,master_user='repl52', master_password='mAster2c',master_log_file='mysql-bin.056244',master_log_pos=4;

START REPLICA;
Show slave status\G;
   
 # 查看主库 有哪些可以同步的账号:
SELECT user, host, Repl_slave_priv FROM mysql.user WHERE Repl_slave_priv='Y';
 查看主库 可同步的日志:
SHOW BINARY LOGS;
 
 mysql 查询具体执行sql 指定 执行pid
   SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID =[PID]\G;   
可以根据具体的字段查询
   SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER='system user';   
 
 
 
 
 
 


http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E