以下内容应用于[mysqld]段内
-
server-id= 1 此行必须,1可以为其他数字,一般推荐的是IP最后段位。
-
log-bin=mysql-bin 必须有此,开启binlog二进制所需。
-
binlog-do-db=abc 可选,仅同步abc数据库,有,号隔开,可以同步多个数据库。binlog-do-db写错时会导致mysqld启动失败,提示找不到pid文件。
-
binlog-ignore-db=abc 可选,同步除了abc以外的数据库。
-
同一机子配置两个mysqld时,在启动第二个mysqld时,在对应mysql目录下运行:bin/mysqld_safe & 可以启动成功,在bin目录里启动会失败,在目录里运行:bin./mysqld_safe --defaults-file=../my.cnf --user=mysql & 会失败,会无法加载my.cnf配置文件。
-
启动第二个mysqld方法: mysql -S /data/mysql2.sock -p123456 # mysql -S 第二个mysql sock 的路径,密码123456
-
关闭第二个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;后会继续同步。