当前位置:首页 > 计算机相关 > mysql > 正文内容

mysql主从同步配置

piikee2年前 (2021-12-27)mysql1082

两台mysql服务器主从同步配置方法如下:

我们假设两台服务器IP分别如下

主master : 192.168.1.10

从slave  :   192.168.1.11


一、主服务器要开启允许外网访问,这个mysql开允许外网访问自己谷歌一下

二、

配置主库,授权给从数据库服务器,主数据库登录mysql执行以下命令,创建一个slave用户给192.168.1.11这台从服务器,让它可以通过这个用户名和密码来访问主服务器获取数据:

mysql>CREATE USER 'slave'@'192.168.1.11' IDENTIFIED WITH mysql_native_password BY 'test123456';
mysql>GRANT USAGE ON *.* TO 'slave'@'192.168.1.11';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.11';
mysql>FLUSH PRIVILEGES;

三、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效。主服务器的mysql配置文件加入以下内容:

server-id = 1
log-bin=mysql-bin
log-bin-index=mysql-bin.index
sync_binlog=1

binlog-do-db=cmdb #要同步的数据库名

还可以显示 设置不同步的数据库(binlog-do-db和binlog-ignore-db是互斥的,设置其中一个就可以):

binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

修改配置文件后,重启服务:service mysqld restart

四、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。执行以下命令:


mysql>show master status;


+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000001 |     13034 | cmdb         |                  |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)


五、配置从库。也是从服务器的mysql配置文件里面加入以下内容:


server-id=2
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
replicate-do-db=cmdb
slave_skip_errors=1062,1032
log_timestamps=system


六、登录从库mysql,输入以下命令:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_PORT=3306, MASTER_USER='slave', MASTER_PASSWORD='test123456', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=13034; #后面两个参数的值与主库保持一致
mysql> start slave ;
Query OK, 0 rows affected (0.04 sec)
七、查看同步状态
在从库mysql命令行输入 show slave status\G;
查看slave的状态,如果下面两项值为YES,则表示配置正确:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

七、如果以上两个不是YES,可以执行以下内容:


mysql>  reset slave;
Query OK,  rows affected ( sec)
mysql> start slave IO_THREAD;
Query OK,  rows affected ( sec)
mysql> stop slave IO_THREAD;
Query OK,  rows affected ( sec)
mysql> reset slave;
Query OK,  rows affected ( sec)
mysql> start slave;
Query OK,  rows affected ( sec)
mysql> show slave status\G


应该就正确了。

扫描二维码推送至手机访问。

版权声明:本文由萍客小居发布,如需转载请注明出处。

本文链接:https://www.piikee.net/1497.html

分享给朋友:

相关文章

ubuntu等linux系统下如何让mysql后台执行

由于有几十亿条数据的表要进行某个重大工程修改。。。然后然后。。。好吧,直入主题,下面语句就是直接让mysql后台执行的:root@10-10-74-251:~# nohup mysql -u用户名 -p密码 -e "insert into...

myisamchk: error: myisam_sort_buffer_size is too small解决办法

用myisamchk修复一个被损坏的表,结果显示如下错误:root@10-10-74-251:/data/mysql_data/cmd5# myisamchk -r -f md5_core.MYI- recovering (with sor...

常用sql语句

insert ignore into md5(a,b,c,d,pid) select substring(md5(pwd),1,8),substring(md5(pwd),9,16),substring(md5(pwd),17,24),su...

PHP实现mysql加密算法mysql323和mysql5,即old_password()和password()两个mysql函数

由于mysql5.7之后,已经停用old_password函数了,所以这里用PHP实现mysql加密算法mysql323和mysql5,即old_password()和password()两个mysql函数,转载请注明来自萍客小居www.p...

sync_binlog和 innodb_flush_log_at_trx_commit的设置

sync_binlog和 innodb_flush_log_at_trx_commit的设置

 innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数。本文从参数含义,性能,安全角度阐述两个参数为不同的值时对db 性能,数据的影响.一 参数...

ubuntu下mysql设置允许远程连接,(10061)错误

一,先确认Iptable里面没有阻止3306端口二,创建用户,允许任意主机登录,即允许登录主机为%,而不是local三,很多人忽略的一步,/etc/mysql/my.cnf里面设置bind-address = 0.0.0.0,如果已经存在b...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。