zoukankan      html  css  js  c++  java
  • mysql主从复制的配置总结

    首先确定安装配置的环境

    centOS7,mysql5.6

    在配置之前要保证的几个点

    1、系统防火墙,如果只是测试,可以关闭防火墙,如果不是测试,请开发需要使用的端口号,如3306;

    开放端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent

    关闭防火墙
    systemctl stop firewalld.service

    让防火墙重启之后也是关闭的
    systemctl disable firewalld.service

    2、两台机器可以互相访问,ip必须都能互相ping通。

    3、两台机器最好不要使用虚拟机的克隆功能,让mysql重新安装过,这样mysql的配置文件会不一样,避免了一些错误。

    4、保证两台机器的mysql版本相同,数据库,表相同。

    5、数据库需要远程可以访问,需要给出任意或者确定的ip可以访问到数据库,不能让数据库只有本地能访问。

    使用下面的命令可以使任意ip用户可以访问;
    mysql>grant all privileges on *.* to 'root'@'%' identified by '这里是root的密码' with grant option;

    配置步骤

    修改主服务器master:
    #vi /etc/my.cnf
    [mysqld]
    log-bin=mysql-bin
    server-id=1


    修改从服务器slave:
    #vi /etc/my.cnf
    [mysqld]
    log-bin=mysql-bin
    server-id=2


    重启两台服务器的mysql
    /etc/init.d/mysqld restart


    登录主服务器的mysql,查询master的状态
    mysql>show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000021 |      120 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    !注意!这两个值需要记住,记住之后请不要动主服务器的mysql,否则这两个值会改变。

    配置从服务器Slave
    mysql>change master to master_host='192.168.75.128',master_user='root',master_password='这里是root的密码',master_log_file='mysql-bin.000021',master_log_pos=120;

    然后启动
    mysql> start slave;

    使用下面的命令查看状态
    mysql> show slave statusG

    看到这两个状态都是Tes才算成功。
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    如果有任意一个状态为no那么查看下面四个显示的错误是什么
    Last_IO_Errno: 1593
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:

    一些基本错误都可以百度出来,还是比较容易解决的。

    看到两个YES之后,那么你就可以测试一下主从复制的数据库是否能有用了。
    主服务器添加之后从服务器应该会有一条一模一样的记录。

    最后需要考虑的点

    首先主从mysql的复制,只是在主服务器改了之后,从服务器会做出相应的变动,而从服务器的改动不会影响主服务器。
    所以在设计数据库服务器架构的时候就要考虑,实际的情况。
    如果你只是用从服务器来备份数据,那么完全可以。
    如果你要实现的是读写分离,然后减少读服务器的压力,那么读取可以读从服务器,而且可以多弄几台服务器作为从服务器。
    如果你需要两台服务器都可以互相复制,那么两台服务器需要互相做主从。
    还有一些架构就要看具体情况了,网上有很多可以用的架构。

    如果要复制特定的数据库,修改my.cnf

    binlog-do-db=要复制的数据库名字
    binlog-ignore-db=不要复制的数据库名字,mysql,test

    参考的网站


    一个是高性能mysql的一些摘录
    http://blog.csdn.net/hguisu/article/details/7325124/
    一个是简单的配置记录
    http://369369.blog.51cto.com/319630/790921/

  • 相关阅读:
    实践测试登录功能的思路与原理解析(基于 Spring Security)
    测试人如何突破职业瓶颈,实现指数级成长?| 测试大咖在线沙龙
    往期优秀文章
    webRTC初接触,网页获取媒体音视频
    Guava Cache源码浅析
    打着维护用户利益旗号的厮杀
    HDFS资源管理器源码发布
    Ext复制grid里某一列的值
    不引入外部文件也可以显示图片
    页面嵌入Windows Media Player需要注意的
  • 原文地址:https://www.cnblogs.com/linkstar/p/6004497.html
Copyright © 2011-2022 走看看