1、如何监控主从复制是否发生故障?
mysql -uroot -p111111 -e "show slave status\G"
| egrep "Slave_IO_Running|Slave_SQL_Running" | awk '{print $2}' | grep -c 'Yes'
通过判断Yes个数是否等于2
2、MySQL主从复制故障如何解决?
登陆从库:
1、停止主从复制:stop slave;
2、跳过一步错误:set global sql_slave_skip_counter = 1; (可重复执行解决)
3、开启主从复制:start slave; 最后检查主从复制状态:show slave status\G
3、MySQL出现主从复制延迟的原因有哪些?如何解决?
1、主库的从库太多。
解决方法:从库数以3~5个为宜。
2、从库硬件配置比主库差。
解决方法:提高从库硬件配置。
3、慢SQL语句过多。
解决方法:通过show processlist查看,找出执行时间长的,修改后分多次写入。
4、主从复制单线程(5.5以下)。
解决方法:升级为高版本的支持多线程的 MYSQL版本(5.6以上)。
5、主从库之间的网络延迟。
解决方法:提升网络带宽。
6、主库读写压力大。
解决方法:提升主库硬件配置,架构前端加缓存层,比如memcached。
4、误操作执行了一个drop库的删除SQL语句,如何完整恢复?
防火墙设置非内网IP禁止访问数据库的3306端口
备份日志,然后截取binlog位置点
全备恢复,增量恢复
5、mysql忘记密码怎么办?(面试说)
1-关闭mysql。
/etc/init.d/mysqld stop
2-加参数启动。
mysqld_safe --skip-grant-tables & ,然后输入:mysql
3-修改密码。
mysql> update mysql.user set password=PASSWORD('123456') where user='root' and host='localhost';
mysql> flush privileges;
4-退出重启服务。
killall mysqld
/etc/init.d/mysqld start
5-登录验证。
mysql -uroot -p
6、补充。
MySQL主从复制原理。
(1)主库将改变记录到二进制日志。
(2)从库将主的二进制日志的事件拷贝到它的中继日志。
(3)从库重做中继日志中的事件。
MySQL主从复制基本操作。
1、主从库修改配置文件:/etc/my.cnf。
主:log-bin=mysql-bin ;server-id = 1
从:server-id = 2
全部重启:/etc/init.d/mysqld restart
2、主库全备数据,通过scp推送到从库,从库导入全备数据。
3、主库创建复制用户。
4、从库配置复制参数:change master to。
5、从库开启主从复制:start slave。
6、从库查看主从状态:show slave status\G。
如果Slave_IO_Running、Slave_SQL_Running都是Yes,说明配置成功。