mysql主从复制

mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复。

需要至少两台机器,安装mysql,两台机器要在相通的局域网内,可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
注意:从服务器的mysql版本必须高于主服务,因为从服务器读取主服务器的bin_log 日志 在本地执行。
高版本的能兼容低版本的  低版本的不能兼容高版本的。
1.打开主机主服务器的my.cnf 编辑,修改主服务器master
vi /usr/local/mysql/my.cnf
找到[mysqld]节点 修改或是添加
#log-bin是指开启二进制操作日志
log-bin=mysql-log
#serverid是指他的唯一id,可以理解为IP.所以说以ip的最后三位为id比较合适
server-id=251
#需要同步的库. 不写同步所有
binlog-do-db = 需要同步的数据库,多个用逗号隔开
2.重启MySQL
service mariadb(mysqld) restart
3.添加一个同步用的用户,注意,最好别用root
GRANT REPLICATION SLAVE ON *.* to '用户'@'%' identified by '密码';
3.查看主服务器状态
show master status  看到以下页面成功
+------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000001 |      308 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)
重启.到此为止.服务器的配置完成
4.修改从服务器slave  即mysql配置文件 步骤同1  id必须唯一
5.配置从服务器slave 
change master to master_host='103.212.32.135',
master_user='用户',
master_password='密码',
master_log_file='mysql-bin.000001', 
master_log_pos=308;
start slave;
6.启动从服务器复制功能
start slave;
7.检查从服务器复制功能状态
show slave status \G  出现以下说明正确
Slave_IO_State: Waiting for master to send event
              Master_Host  主服务器地址
              Master_User 授权帐户名
                        .........
              Slave_IO_Running: Yes    //此状态必须YES
              Slave_SQL_Running: Yes     //此状态必须YES
注意:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
到此实现全部过程
8.可能出现的问题
a.Slave_IO_Running:connecting    可能原因为主服务器版本高于从服务器
b.Slave_SQL_Running 值为 NO或 Seconds_Bebind_Master 值为 Null  程序有可能在 slave 上进行了写操作,也有可能是 slave 机器重启后, 事务回滚造成的
解决方案:
msyql> stop slave;
 
msyql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
 
msyql> start slave;
9.可能用到的命令
reset master 清空bin-log日志
start slave 启动复制线程
stop slave 停止复制线程
show processlist  查看从数据库运行的进程
show binlog events; 只查看第一个binlog文件的内容
show binlog events in 'mysql-bin.000002';   查看指定binlog文件的内容
show binary logs;  获取binlog文件列表
flush logs;刷新
show variables like "%log_%";  查看 bin-log 日志是否成功开启  on为开启
 
以上就是这次的全部内容!
posted @ 2017-04-28 20:05  静小妞  阅读(176)  评论(0编辑  收藏  举报