欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql主从配置实战记录

程序员文章站 2022-07-14 20:45:51
...

mysql主从配置实战记录

MySQL主从可以最低限度保证数据安全,以防数据库服务器坏了,系统崩溃,并且可以通过读写分离,降低数据库访问压力
准备工作:

1、准备两台服务器

主数据库 | 192.168.1.1 | master |

从数据库 | 192.168.1.2 | slave |

坑吧1:该ip地址为内网地址,如果是外网地址,需要保证数据库可以进行远程连接,连接的命令如mysql -h192.168.1.1 -P3306 -utest01 -p’123456’

2、启动两台服务器

3、关闭系统防火墙

查看防火墙状态
systemctl status firewalld
临时关闭防火墙命令。重启电脑后,防火墙自动起来。
systemctl stop firewalld
永久关闭防火墙命令。重启后,防火墙不会自动启动。
systemctl disable firewalld
打开防火墙命令
systemctl enable firewalld

注意:用root权限

4、保证两台服务器之间可以相互ping 通

具体操作步骤如下:

第一步:在主数据库master 上编辑mysql配置文件,做如下操作:

注:mysql安装方式的不同会导致mysql的配置文件的位置不一样,大家要根据自己的安装位置来找配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
bind_address = 0.0.0.0
server-id = 1 #IP地址最后一位
log_bin = /var/log/mysql/mysql-bin.log #开启binlog 日志
expire_logs_days = 10 #日志的缓存时间
max_binlog_size = 200M #日志的最大大小
binlog_do_db = test #同步的数据库名称
binlog_ignore_db = mysql #忽略同步的数据库

第二步:在从数据库slave上编辑mysql配置文件,做如下操作:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
bind_address = 0.0.0.0
server-id = 2 #IP地址最后一位
expire_logs_days = 10 #日志的缓存时间
max_binlog_size = 200M #日志的最大大小
replicate_do_db = test #同步的数据库名称
replicate_ignore_db = mysql #忽略同步的数据库

第三步:在两台服务器上的mysql上配置一模一样的两个test数据库,做如下操作:

mysql> use test;
Database changed
mysql> CREATE TABLE tableA (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
-> name varchar(100) DEFAULT NULL COMMENT ‘名称’,
-> PRIMARY KEY (id) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT=‘表A’;

第四步:在主数据master上创建一个同步权限的账户test01,用来同步数据,做如下操作:

mysql>CREATE USER ‘test01’@'192.168.1.2 IDENTIFIED BY ‘123456’; #创建用户
mysql>GRANT REPLICATION SLAVE ON . TO ‘test01’@‘192.168.1.2’ IDENTIFIED BY ‘123456’; #分配权限
mysql>flush privileges; #刷新权限
show master status; #查看主数据库master的状态,不要关闭窗口先 ,不要重启
mysql主从配置实战记录

第五步:在从数据库slave上做如下操作:

mysql> change master to
-> master_host=‘192.168.1.1’,
-> master_user=‘test01’,
-> master_password=‘123456’,
-> master_port=3306,
-> master_log_file=‘mysql-bin.000003’,
-> master_log_pos=73;
查看是否主从运行正常:show slave status \G;
mysql主从配置实战记录
坑2:master_log_file和master_log_pos为上面的命令show master status对照的值,并且都可能发生变化;

坑3:如果同步没有发挥作用,需要重新设置同步模式,先执行stop slave;在执行 start slave;

相关标签: 技术 mysql