mysql互为主从配置

环境为2台ubuntu1604的ECS

先在各数据库创建emeetdb库
master1操作
1.修改A数据库配置文件加入:
[mysqld]
lower_case_table_names=1
server-id = 31
binlog_do_db=emeetdb
replicate-do-db=emeetdb
log-bin=mysql-bin
log-slave-updates
binlog-ignore-db=mysql
slave-skip-errors=all

修改运营商的端口限制,设定固定ip允许访问3306端口
修改ufw :sudo ufw allow from 121.121.121.37 to any port 3306

重启mysql

#  service mysql restart

建立用于同步的账户

#  mysql -uroot -p
mysql>  grant replication slave on *.* to 'root'@'121.121.121.37' identified by 'e88888888#';

拷贝时候注意单引号格式可能错误。
建议使用ip限制,不要开放给所有都可以访问,保障数据库安全

查看File对应值,并记录下来

show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      449 | e2222db      | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>  exit

master2操作
sudo ufw allow from 39.120.120.31 to any port 3306`
2.修改slave上的配置文件my.cnf

#  vi /etc/my.cnf

[mysqld]
lower_case_table_names=1
server-id   = 37
binlog_do_db=emeetdb
replicate-do-db=emeetdb
log-bin=mysql-bin
log-slave-updates
binlog-ignore-db=mysql
slave-skip-errors=all

重启mysql

#  service mysql restart

在从服务器上建立相应的数据库
#  mysql -uroot -p

将39.120.120.31设置为自己的主服务器
mysql>  CHANGE MASTER TO
MASTER_HOST='39.120.120.31',MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=449;

#此处的参数都是前面配置和保存的数值
启动从服务器复制功能

mysql>  start slave;

mysql>  show slave status\G;


Slave_IO_Running: Yes
Slave_SQL_Running: Yes

注:

#Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
#Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。
上面两个必须都是yes,其中一个NO均属错误

mysql>  exit

错误一可能是没有给用户授权:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'121.121.121.37' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

错误二是mysql没有监听外部ip访问
如果要让mysql监听到其他的地址,my.cnf中可以将bind-address = 127.0.0.1注释掉。
或者将bind-address = 0.0.0.0监听所有的地址,然后重启mysql服务。

至此,单向主从配置完毕

互为主从继续配置如下

--------------------以下在服务器master2上操作
建立用于同步的账户

mysql -uroot -p

grant replication slave on *.* to 'root'@'39.120.120.31' identified by '123456';

查看File对应值,并记录下来

show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      747 | em2222db      | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

回到作为从机的master1操作
将121.299.68.37设置为自己的主服务器

mysql>  CHANGE MASTER TO 
MASTER_HOST='121.121.121.37',
MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=747;

启动从服务器复制功能

mysql>  start slave;

mysql>  show slave status\G;


Slave_IO_Running: Yes
Slave_SQL_Running: Yes

上面两个必须都是yes,其中一个NO均属错误

mysql>  exit

至此互为主从配置完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值