mysql 主从配置
kevin.Zhu 发布于:2013-1-16 12:56 分类:Mysql 有 10 人浏览,获得评论 0 条
主: 192.168.0.186
从: 192.168.0.187
1. Master 端设置
一、 创建一个用来同步的用户,指定只能在 192.168.0.187 登录
mysql>GRANT REPLICATION SLAVE ON *.* TO backup@192.168.0.187 IDENTIFIED BY '1234';
如果想要在Slave上有权限执行 "LOAD TABLE FROM MASTER"
或 "LOAD DATA FROM MASTER" 语句的话,必须授予全局的 FILE 和 SELECT 权限:
mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO backup@192.168.0.187 IDENTIFIED BY '1234';
二、1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=log
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
binlog-ignore-db=mysql //被忽略的数据库
三、在master机器上登录mysql 用show master status看同步配置情况
2. Slave 端的设置
一、 [mysqld]字段下添加如下内容
server-id=2
master-host=192.168.1.222
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库
然后重启slave机的mysql 。如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。
二、 执行show slave status;又提示Empty set (0.00 sec),想不通问题在哪里
后来发现,原来slave已经默认开启,要先关闭再开启
执行 slave stop;
再执行
change master to master_host='192.168.0.186',master_user='backup',master_password='1234', master_log_file='log.000003' ,master_log_pos=98;
(master_log_file/master_log_pos 可以在master机上登录mysql 运行 show master status; 看到 )
然后执行 slave start;
这时 再执行show slave status\G
最关键的两条 显示必须如下:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
到此, mysql主从配置完成。