使用vmware搭建mysql主从数据库

    xiaoxiao2021-12-14  17

    今天搭建了一套mysql主从数据库,但是搭建过程中遇到一个问题在这里简单介绍一下:

    被库启动后报错如下:

    错误1:

    2016-12-03T15:09:15.347102Z 6 [ERROR] Slave I/O for channel '': error connecting to master 'replay@192.168.57.130:3306' - retry-time: 60  retries: 9, Error_code: 2003

    答疑: MYSQL默认绑定了127.0.0.1,其他机器无法账号密码登录,所以在配置前需要将my.cnf中的bing_address注释掉

    错误2:

    2016-12-03T15:20:24.449985Z 2 [ERROR] Slave I/O for channel '': 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. Error_code: 1593

    由于我是拷贝了vmware的ubuntu虚拟机,所以mysql的配置文件auto.cnf在两个虚拟机中是一样的。我看了一下mysql的文档,解释如下:

    mysql在启动的时候会去检查auto.cnf文件,如果没有那么根据server-id创建一个,如果有就跳过。auto.cnf文件自动生成,请无手动更改。

    所以解决上面问题的方法也很简单,删除auto.cnf即可(好习惯是cp auto.cnf auto.cnf.2016120212032342,然后再删除)

    加入机器M为主机,机器N为备机,那么搭建主从的步骤如下:

    1. 创建账户主从复制账户

    在M机器:执行sql CREATE REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'%' IDENTIFIED BY 'pass4word'

    在N机器:执行sql

    CREATE REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'%' IDENTIFIED BY 'pass4word'

    2. 更改配置

    在M机器:更改my.cnf配置

    log_bin=mysql-bin

    server_id=1

    在N机器:更改my.cnf配置

    log_bin=mysql-bin

    server_id=2

    lrelay_log=/path/to/save/relay/log

    log_slave_updates=1

    read_only=1

    3. 在N机器上配置master:执行sql语句

    CHANGE MASTER TO MASTER_HOST=‘M的IP’, MASTER_USER='repl', MASTER_PASSWORD='pass4word', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;

    4. 将N备机启动:执行sql语句

    START SLAVE

    至此配置完成,备机加入成功,确认方法为,在M中更改数据,在N中能同步更改

    转载请注明原文地址: https://ju.6miu.com/read-972155.html

    最新回复(0)