zoukankan      html  css  js  c++  java
  • mysql主从同步

    如果主从配置之前安装了云平台,请停止云平台后在进行mysql主从配置。

      1、登录master数据库,检查数据库端口防火墙设置,允许远程客户连接,如果没有,执行以下操作。 
      执行命令:iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 
      /etc/init.d/iptables save 
      注:参照具体操作系统进行配置 
      2、编辑master数据库上的/etc/my.cnf,并将以下语句添加至[mysql]小节datadir语句下的区域 
      log_bin=mysql-bin  
      server_id=1 
      3、重起master数据库mysql 
      #service mysqld restart 
      4、在master数据库上创建一个replication账户并给予权限。我们将使用“cloud-repl”用户,密码“password”。这里假定master数据库和slave数据库运行在10.117.66.0/25网络。 
      mysql>create user 'cloud-repl'@'10.117.26.%' identified by 'password';(此处写实际主数据库ip) 
      5、mysql> grant replication slave on *.* to 'cloud-repl'@'10.117.66.%' identified by 'password'; (此处从服务器ip) 
      mysql> flush privileges;  
      mysql> flush tables with read lock; 
      6、保持当前shell下MySQL 会话的运行 
      7、在新的shell启动第二个MySQL 会话 
      8、获取数据库的当前position  
      mysql>show master status;  
       +------------------+----------+--------------+------------------+ 
       | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
       +------------------+----------+--------------+------------------+ 
       | mysql-bin.000001 |      412 |              |                  |  
          +------------------+----------+--------------+------------------+ 
      9、记下实例返回的File和position。 
      10、压缩master数据库的数据文件 
       #tar zcf /tmpdatabak.tgz /var/lib/mysql 
      11、登录slave数据库所在的服务器,安装mysql,版本要求跟master数据库一致。 
       注:安装mysql,需要按照elaster的方式安装 
      12、停止slave数据库 
       #service mysqld stop 
      13、拷贝master数据库的tmpdatabak.tgz到slave数据库的根目录/,在主数据库操作复制命名如下: 
       scp /tmpdatabak.tgz root@10.110.122.202:/ 
      解压到目录/var/lib/mysql 
       #cd / 
       #tar -zxvf tmpdatabak.tgz 
      14、检查slave数据库端口防火墙设置,允许远程客户连接,如果没有,执行以下操作。 
       iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 
       /etc/init.d/iptables save 
      注:参照具体操作系统进行配置 
      15、编辑slave数据库上的my.cnf,并添加如下语句于[mysql]小节的datadir语句下 
       server_id=2  
      16、重启slave数据库MySQL  
       /etc/init.d/mysqld start 
      17、指示slave数据库连接master数据库并进行复制。 
       使用之前步骤里已经使用的值替换IP地址、密码、log file和position。在slave执行如下操作 
       mysql>change master to master_host='10.117.66.137', 
       master_user='cloud-repl', 
       master_password='password', 
       master_log_file='mysql-bin.000001', 
       master_log_pos=412; 
      18、启动slave数据库上的replication  
       mysql> start slave; 
      19、登录到master数据库释放master数据库库的lock(可以等slave数据库准备完成再解锁) 
       mysql> unlock tables; 
      20、测试master数据库和slave数据库配置是否正常工作,检查一下操作后,看master数据库和slave数据库是否一致: 
       增加表、删除表 
       增加记录、删除记录、修改记录 
       master数据库重起后,工作是否正常 
       slave数据库重起后,工作是否正常 
       命令查看同步状态 
       mysql>show slave status; 
       mysql>show slave status G; 
      如果第一遍失败,第二遍操作注意事项 
      1、在slave节点执行 
       mysql> show slave status; 
       mysql> stop slave; 
      2、删除从数据库默认安装目录 /var/lib/mysql 下所有文件,以免主数据库文件覆盖时与第一次未成功的文件合并 
      3、确保具有replication slave权限的用户可以从slave节点访问master节点 例如master ip为10.117.66.137 slave ip为10.117.66.138则,在slave节点执行以下命令测试: 
      mysql -h10.117.66.137 -ucloud-repl -ppassword
    
  • 相关阅读:
    多个EditText 监听矛盾的 解决办法 (Overstack)溢出栈
    JZ2440 裸机驱动 第5章 GPIO接口
    从头调试stm32 HID
    嵌入式GPIO接口及操作(二)
    嵌入式GPIO接口及操作(一)
    嵌入式linux网络配置
    嵌入式开发环境搭建之安装交叉编译工具链
    securecrt鼠标右键的配置
    S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
    s3c2440串口详解
  • 原文地址:https://www.cnblogs.com/liangml/p/6411689.html
Copyright © 2011-2022 走看看