mysql 主从部署记录

2021-05-19  本文已影响0人  梅村_9643

数据库版本5.7.25

主数据库:192.168.12.243
从数据库: 192.168.12.244

mysql的安装

可以参考:https://www.jianshu.com/p/891d02f3939a

=========maser服务器配置=========

1 my.cnf 主服务器配置

centos 7 一般在/etc/my.cnf

==========数据库集群主服务器配置!!!mysqld配置下边==============
[mysqld]
#server-id 必须唯一
server-id=243
##启动MySQ二进制日志系统 存储地址 
log_bin=/data/mysql/mysql-bin
# 需要同步的数据库
binlog_do_db=database_name
#确保binlog日志写入后与硬盘同步
sync_binlog = 1
#跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
#bin-log日志文件格式,设置为MIXED可以防止主键重复。
 binlog_format = mixed

2 导出master中的数据库,然后再导入到slave数据,导出前先锁定数据库,保证双方的数据在同步前一致

 mysql> flush tables with read lock; 

导出master数据库中多余的huanqiu库(master数据库的root用户登陆密码:123456)

mysqldump -uroot -p    database_name > /data/database_name.sql

3 设置数据库同步权限

mysql> grant replication slave,replication client on *.* to slave@'192.168.12.244' identified by "password";
mysql> flush privileges;

温馨提示:
权限查看方式

mysql> show grants;
mysql> show grants for slave@'192.168.12.244';

4 查看主服务器master状态(注意File与Position项,从服务器需要这两项参数)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000007 |      120 | database_name      | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

========= slave服务器配置=========

1 my.cnf 主服务器配置

1==========数据库主从配置从服务器配置mysqld节点下===============
#设置从服务器id,必须于主服务器不同
server-id=244
#启动MySQ二进制日志系统
log-bin=/data/mysql/mysql-bin
#需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)。
replicate-do-db=database_name
#跳过所有的错误错误,继续执行复制操作
slave-skip-errors = all
2在slave数据库中导入从master传过来的数据。
mysql> CREATE DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;   #先创建一个huanqiu空库,否则下面导入数据时会报错说此库不存在。
mysql> use database_name;
mysql> source /opt/database_name.sql;   #导入master中多余的数据。
3配置主从同步指令
mysql> stop slave;   #执行同步前,要先关闭slave
mysql> change  master to master_host='192.168.12.243',master_user='slave',master_password='password',master_log_file='mysql-bin.000007',master_log_pos=120;
     
mysql> start slave;
mysql> show slave status \G;
.......
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 182.148.15.238
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000007
          Read_Master_Log_Pos: 120
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 279
        Relay_Master_Log_File: mysql-bin.000007
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: huanqiu
          Replicate_Ignore_DB: mysql
           .............
        Seconds_Behind_Master: 0

如上,当IO和SQL线程的状态均为Yes,则表示主从已实现同步了!

至此,主从同步环境已经实现!

主从配置另外一种方法

主服务器my.cnf配置

# ===================设置主从备份主服务器配置部分===================
[mysqld]
#server-id 必须唯一
server-id=150
##启动MySQ二进制日志系统 存储地址
log_bin=/opt/mysql-8.0.27/data/mysql-bin
# 需要同步的数据库
#binlog_do_db=szmachine
#binlog_do_db=jianzhengtong
# 配置需要忽略的库,其他库就自动同步了!!!
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
#确保binlog日志写入后与硬盘同步
sync_binlog = 1
#跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
#bin-log日志文件格式,设置为MIXED可以防止主键重复。
binlog_format = mixed

从服务器配置

[mysqld]
#==============从服务器配置项==================
#设置从服务器id,必须于主服务器不同
server-id=151
#启动MySQ二进制日志系统
log-bin=/opt/mysql-8.0.27/data/mysql-bin
#需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)。
#replicate-do-db=szmachine
#replicate-do-db=jianzhengtong
#配置忽略的数据库
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
#跳过所有的错误错误,继续执行复制操作
slave-skip-errors = all

上一篇下一篇

猜你喜欢

热点阅读