配置mysql replication出错记录

2023-05-11,,

以下内容应用于[mysqld]段内

  1. server-id= 1  此行必须,1可以为其他数字,一般推荐的是IP最后段位。

  2. log-bin=mysql-bin 必须有此,开启binlog二进制所需。

  3. binlog-do-db=abc  可选,仅同步abc数据库,有,号隔开,可以同步多个数据库。binlog-do-db写错时会导致mysqld启动失败,提示找不到pid文件。

  4. binlog-ignore-db=abc     可选,同步除了abc以外的数据库。

  5. 同一机子配置两个mysqld时,在启动第二个mysqld时,在对应mysql目录下运行:bin/mysqld_safe & 可以启动成功,在bin目录里启动会失败,在目录里运行:bin./mysqld_safe --defaults-file=../my.cnf --user=mysql & 会失败,会无法加载my.cnf配置文件。

  6. 启动第二个mysqld方法: mysql -S /data/mysql2.sock -p123456  # mysql -S  第二个mysql sock 的路径,密码123456

  7. 关闭第二个mysqld方法:

    A. 先找出第二个mysqld的pid :ps aux|grep 3307   #第二个mysqld我配置的端口为 3307

    [root@KAKA ~]# ps aux|grep 3307

    mysql     6136  0.0 71.2 1011252 352200 pts/0  Sl   13:55   0:03 /soft/mysql/bin/mysqld --basedir=/soft/mysql --datadir=/data/mysql --plugin-dir=/soft/mysql/lib/plugin --user=mysql --log-error=/data/mysql/KAKA.err --pid-file=/data/mysql/KAKA.pid --socket=/tmp/mysql.sock --port=3307

 

 B.  kill 6136          #不能用kill -9 6136 以免造成数据库数据损

8. 在初始化第二个mysql 数据库时,提示没有my-default.cnf.

  cp /etc/my.cnf /soft/mysql2/support-files/my-default.cnf  

  vi /soft/mysql2/support-files/my-default.cnf 修改mysql2的正确路径和端口

9.  设置slave

  A.修改my.cnf文件,删掉行server-id= ,或改成其他,不能和master相同。

  B.根据 master的配置,添加行:

replicate-do-db=abc                 #同步数据库abc

 #replicate-ignore-db=abc             #同步除了abc以外的数据库

10.手动删除data 下的mysql-bin.0000* 的文件后,导致mysqld不能启动的问题:

  A,注释掉 my.cnf文件内的 log-bin=mysql-bin ,binlog-do-db=abc  行;

  B,删除data目录下的 mysql-bin.index 文件。

 

11. show slave status\G;   Slave_IO_Running: connecting 的问题

  请确认在master mysql 上,设置了replication 的用户。

12.重启master mysql 后, show slave status\G; Slave_IO_Running:变成 connecting 的问题

  由于重启后,mysql-bin.000001已经不再此当前最新的日志,此时是0002,需要在 slave mysql重新启动slave同步功能:stop slave; start slave;

13.给slave  mysql  设置flush tables with read lock;后,即使master mysql 有发动,slave mysql 也不会有反应。当执行 unlock tables;后会继续同步。

 

《配置mysql replication出错记录.doc》

下载本文的Word格式文档,以方便收藏与打印。