Linux下Mysql主从复制(从库是MariaDB)

 

排版不易,希望能帮助到大家

一、准备2台服务器

ip:120.168.0.1(主)、120.168.0.2(从)
二、配置文件
        1. Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件为mysql.ini)
        2.主库
binlog-ignore-db=mysql   #不参与主从的数据库名,不参与主从复制的数据库名mysql
server-id=1 #服务器的标识  要和从服务器不一样
  log-bin=mysql-bin #注意:二进制日志必须开启,因为数据的同步实质上就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍。
                replicate-do-db=oa_system  #是你需要复制的数据库名称,如果有多个就用逗号“,”分开;或者分行写
3从库
server-id=2 #服务器的标识唯一,设置要进行或不要进行主从复制的数据库名,要和主服务器不一样
log-bin=mysql-bin  #可开可不开
replicate-do-db=oa_system #是你需要复制的数据库名称,如果有多个就用逗号“,”分开;或者分行写
三、开始构建主从复制
1.主库
            在120.168.0.1中创建一个120.168.0.2主机中可以登录的MySQL用户
            用户:mysql1   密码:mysql1
            mysql>GRANT REPLICATION SLAVE ON *.* TO‘mysql1’@’120.168.0.2’ IDENTIFIED BY ‘mysql1’;

            mysql>FLUSH PRIVILEGES;

#注:下图中的File是日志文件 Position 是开始行数,下面有用到

            

2.主库
            查看120.168.0.1中MySQL服务器二进制文件名与位置
            mysql>SHOW MASTER STATUS;
注意:如果为空则需要重启MySQL(service mysqld restart),MariaDB的重启方法为(systemctl restart mariadb.service)

3.从库
              告知二进制文件名与位置
在120.168.0.2中执行:mysql>change master to master_host='120.168.0.1',master_user='mysql1',master_password='mysql1',master_log_file='mysql-bin.000002',master_log_pos=120;
#这里的配置就是使用的上面主库的信息.还有日志文件的信息  

四、测试主从复制
在120.168.0.2中输入:

        mysql>SLAVE START;   #开启复制

        mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功 出现如下:

或出现:
Slave_IO_Runing:Yes
Slave_SQL_Running :yes
就说明成功了.然后你在主数据库的增删改查,看看从数据库.应该就会同步执行了.
五、文章来源
每个人都有自己的方式,不同的情景,时间都会有不一样的结果,我的问题在这两位作者中得到了解决,大家可以一起参考
      https://blog.csdn.net/sc9018181134/article/details/53886533          

      http://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label7  

mysql高级书籍,下载地址:https://download.csdn.net/download/qq_36103520/10461759

猜你喜欢

转载自blog.csdn.net/qq_36103520/article/details/80541983