ubuntu12.04(64位)中mysql5.6.28(64位)主从复制

来源:互联网 发布:字母logo在线设计软件 编辑:程序博客网 时间:2024/06/16 18:38
1.配置master主服务器
在主服务器上创建一个用户‘repl’,并允许其他slave服务器可以通过远程访问master,通过该用户读取二进制日志,实现数据同步。
use mysql;
create user repl; //创建新用户
grant all privileges on *.* to 'repl'@'%' identified by 'mysql' with grant option; //可供远程客户端工具连接
FLUSH PRIVILEGES;
//repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。
//这里%是通配符,表示任何slave服务器的server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。
grant replication slave on *.* to 'repl'@'%' identified by 'mysql';
FLUSH PRIVILEGES;


2.修改主服务器master
#vim /usr/local/mysql/my.cnf
[mysqld]


server-id=131      //[必须]服务器唯一ID,默认是1,一般取IP最后一段
log-bin=master-bin //[必须]启用二进制日志
log-bin-index=master-bin.index
3.查看日志


show master status;


+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |      120 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)


重启MySQL服务


4.修改从服务器slave


#vi /etc/my.cnf
[mysqld]

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-bin=master-bin   //[不是必须]启用二进制日志
server-id=132      //[必须]服务器唯一ID,默认是1,一般取IP最后一段
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin 


重启MySQL服务


5.slave连接master


change master to master_host='192.168.17.131',master_port=3306,master_user='repl',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=120;


//master_host: 主服务器ip
//master_user: 第1部中创建的用户名
//master_password: 第1部中创建的密码
//master_log_file: 主服务器产生的日志,第3部中查询的File
//master_log_pos: 第3部中查询的Position


6.开启slave


start slave;


7.检查从服务器复制功能状态


show slave status\G


*************************** 1. row ***************************


              Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.2.222  //主服务器地址
              Master_User: mysync   //授权帐户名,尽量避免使用root
              Master_Port: 3306    //数据库端口,部分版本没有此行
              Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
              Read_Master_Log_Pos: 600     //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
              Relay_Log_File: ddte-relay-bin.000003
              Relay_Log_Pos: 251
              Relay_Master_Log_File: mysql-bin.000004
              Slave_IO_Running: Yes    //此状态必须YES
              Slave_SQL_Running: Yes     //此状态必须YES
                    ......

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。


8.测试

在master 创建一个数据库product,然后在从服务器上查看product,若是存在说明,主从复制已经配置成功。

目前的配置master上只能负责写操作,slave上只能负责读操作,若是在slave上进行写操作,就会发生异常。


0 0
原创粉丝点击