zoukankan      html  css  js  c++  java
  • mysql 主从 设置

    总结:
    1.如果是虚拟克隆mysql 请注意auto.cnf的uuid保证不一样,即删除auto.cnf 重新启动即可
    2.默认安装的mysql配置文件mysqld.cnf可能绑定了127.0.0.1 只允许本地登录,需要注销此句,即开启允许远程访问。
    3.当master-slave配置完成以后。如果新增的slave不指定主二进制文件位置,则新节点会全部复制,即默认文件位置为0
    4.配置master-slave时,要指定二进制文件的日志索引文件名,这样即使master服务器切换主机名,slave也可复制成功。
    5.二进制日志文件内容,是以format事件开始,轮换事件结束。
    6.配置master-slave时,要设置master的二进制文件名以及slave的中继日志索引文件名.

    操作流程:

    安装mysql

    修改my.cnf 之后,需要重新启动

    1.linux 重新获取ip地址
    $>dhclient
    2.创建mysql用户
    grant replication slave,reload,create user,super on *.* to master@'192.168.2.%' with grant option identified by '密码'

    flush privileges;

    因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了,因此上面的语句可能会现现提示语法错误。

    或者
    create user repl_user;
    grant replication slave on *.* to repl_user identified by 'xyzzy'
    3.设置mysql

    找到my.cnf
    log-bin = master-bin
    log-bin-index = master-bin.index
    server-id = 1

    配置slave
    relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    server-id = 2

    3.链接复制
    master数据库:
    flush tables with read lock;
    在slave数据库配置完成以后,再执行
    unlock tables;

    slave数据库:
    change master to
    master_host='',
    master_port='',
    master_user='',
    master_password='',
    master_log_file='',
    master_log_pos='';

    start slave;

    2.监控
    show master status G;
    show slave status G;

    3.其它命令
    flush logs;强制轮换一个日志
    show binlog events 查看日志事件


    4.错误处理
    错误1:
    ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)
    my.cnf配置
    /etc/mysql/mysql.conf.d/mysqld.cnf
    bind-address=127.0.0.1 需要注销 默认是mysql只能本机链接不能远程链接

    1、错误消息
    mysql> show slave staus;

    Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
    these UUIDs must be different for replication to work.

    2、查看主从的server_id变量
    master_mysql> show variables like 'server_id';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id | 33 |
    +---------------+-------+

    slave_mysql> show variables like 'server_id';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id | 11 |
    +---------------+-------+
    -- 从上面的情形可知,主从mysql已经使用了不同的server_id

    3、解决故障
    ###查看auto.cnf文件
    [root@dbsrv1 ~] cat /data/mysqldata/auto.cnf ### 主上的uuid
    [auto]
    server-uuid=62ee10aa-b1f7-11e4-90ae-080027615026

    [root@dbsrv2 ~]# more /data/mysqldata/auto.cnf ###从上的uuid,果然出现了重复,原因是克隆了虚拟机,只改server_id不行
    [auto]
    server-uuid=62ee10aa-b1f7-11e4-90ae-080027615026

    [root@dbsrv2 ~]# mv /data/mysqldata/auto.cnf /data/mysqldata/auto.cnf.bk ###重命名该文件
    [root@dbsrv2 ~]# service mysql restart ###重启mysql
    Shutting down MySQL.[ OK ]
    Starting MySQL.[ OK ]
    [root@dbsrv2 ~]# more /data/mysqldata/auto.cnf ###重启后自动生成新的auto.cnf文件,即新的UUID
    [auto]
    server-uuid=6ac0fdae-b5d7-11e4-a9f3-0800278ce5c9


    ###再次查看slave的状态已经正常
    [root@dbsrv1 ~]# mysql -uroot -pxxx -e "show slave statusG"|grep Running
    Warning: Using a password on the command line interface can be insecure.
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
    ###主库端查看自身的uuid
    master_mysql> show variables like 'server_uuid';
    +---------------+--------------------------------------+
    | Variable_name | Value |
    +---------------+--------------------------------------+
    | server_uuid | 62ee10aa-b1f7-11e4-90ae-080027615026 |
    +---------------+--------------------------------------+
    1 row in set (0.00 sec)

    ###主库端查看从库的uuid
    master_mysql> show slave hosts;
    +-----------+------+------+-----------+--------------------------------------+
    | Server_id | Host | Port | Master_id | Slave_UUID |
    +-----------+------+------+-----------+--------------------------------------+
    | 33 | | 3306 | 11 | 62ee10aa-b1f7-11e4-90ae-080027615030 |
    | 22 | | 3306 | 11 | 6ac0fdae-b5d7-11e4-a9f3-0800278ce5c9 |
    +-----------+------+------+-----------+--------------------------------------+

  • 相关阅读:
    httpClient 中的post或者get请求
    java自带的http get/post请求servlet
    java文件的读写操作
    java文件创建和删除
    java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'waterQuality
    win10系统jdk安装和环境变量配置
    echarts报错Can't get dom width or height
    org.springframework.beans.factory.BeanCreationException
    jsp与后台交换数据(安全目录外)
    LeetCode —— Invert Binary Tree
  • 原文地址:https://www.cnblogs.com/liuxm2017/p/9628471.html
Copyright © 2011-2022 走看看