显示所有的binlog
SHOW BINARY LOGS;
显示所有binlog事件
SHOW BINLOG EVENTS IN 'mysql-bin.004374';
使用binlog恢复误删数据
mysqlbinlog /data/mysql/mysql-bin.004374 --database=test3
--start-datetime='2019-01-01:00:00'
--stop-datetime='2019-02-01:00:00'
>/home/sl.sql;
/data/mysql/mysql-bin.004374 binlogs的文件路径
--start-datetime='2019-01-01:00:00' 开始时间
--stop-datetime='2019-02-01:00:00' 结束时间
/home/sl.sql 导入到文件
查看relaylog事件
show relaylog EVENTS in 'localhost-relay-bin.000010';
1.主从配置:
主库修改文件
server-id = 1 主库写1
log-bin = mysql-bin binlog的前置文件随便写
binlog_format = mixed
replicate-do-db= MasterSlave 同步的数据库
replicate-ignore-db= test 忽略的数据库
replicate-ignore-db= mysql
# 根据需要选择配置
log-slave-updates=true slave更新时是否记录到日志中
rpl_semi_sync_master_enabled=ON 开启半同步,需要安装插件支持
从库修改文件
server-id = 2 从库除了1之外的数字
binlog_format = mixed
replicate-do-db= MasterSlave 同步的数据库
relay-log = mysql-slave-bin relaylog的前置文件随便写
配置两个数据库的关联
切换到主数据库执行:
建立一个操作主从同步的数据库用户
create user repl;
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库ip' IDENTIFIED BY '密码';
flush privileges;
或直接用root用户:
GRANT REPLICATION SLAVE ON *.* TO 'root'@'从库ip' IDENTIFIED BY '密码';
flush privileges;
.表面这个权限是针对主库所有的表。
切换到从数据库:
change master to master_host='主库ip', master_port=3306, master_user='用户', master_password='密码', master_log_file='mysql-bin.000003', master_log_pos=120;
这里面的master_host是主服务器ip,同时配置端口,用户,密码,logfile,logpos
其中master_log_file和master_log_pos可以执行show master status
得到.
执行start slave启动配置:
start slave; 开启
stop slave; 结束
从库查看状态命令,\G表示换行查看
mysql> show slave status \G;
主要看这两条都为yes则表示ok,其他信息可以自行查看理解
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_IO_Running 为no解决方法!
主库执行:
show master status;
File | Position
+------------------+----------
| mysql-bin.000003 | 120
从库执行:
slave stop;
change master to Master_Log_File='mysql-bin.000003',Master_Log_Pos=120;
slave start;
show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
可以在主库进行创建表和插入数据进行测试看是否主从同步成功
2.安装和卸载Atlas进行读写分离
下载地址: https://github.com/Qihoo360/Atlas/releases
根据需要下载
Atlas (普通) : Atlas-2.2.1.el6.x86_64.rpm
Atlas (跨机器分表) : Atlas-sharding_1.0.1-el6.x86_64.rpm
执行安装
rpm -i Atlas-2.2.1.el6.x86_64.rpm 安装
rpm -e Atlas-2.2.1.el6.x86_64.rpm 卸载
进行配置:
安装目录在 /usr/local/mysql-proxy
修改tets.cnf文件
密码需要加密
进入到 mysql-proxy/bin/
./encrypt 123456 得到密码/iZxz+0GRoA=
proxy-backend-addresses = ip:端口
proxy-read-only-backend-addresses = ip:端口@权重
pwds = root:/iZxz+0GRoA=
proxy-address= 0.0.0.0:1234
其他配置可以根据需要自行配置,都有中文说明自行理解x
服务操作:
在/usr/local/mysql-proxy中执行
开启服务: ./bin/mysql-proxyd test start
停止: ./bin/mysql-proxyd test stop
重启: ./bin/mysql-proxyd test restart
查看状态: ./bin/mysql-proxyd test status
启动远程链接工具进行测试连接
ip为Atlas的安装ip地址 ,端口为 1234,账号密码为: pwds = root:/iZxz+0GRoA=