首先你要先登录数据库,执行:flush tables with read lock 锁住数据库
然后用mysqldump程序把整个数据库dump出脚本。
接着输入命令:show master stauts
记录下bin-log文件的名字和position。
把dump出来的脚本导入slave库。
然后执行上面的命令。
最后解除master库的读锁
mysql主从同步的步骤一、主机环境
主机:
master *** 作系统:rhel6.0
IP:172.16.0.100
MySQL版本:5.1.47
从机: www.2cto.com
slave *** 作系统:rhel6.0
IP:172.16.0.200
MySQL版本:5.1.47
二、创建数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database repl
三、master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=mysql-bin
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
binlog-ignore-db=mysql //被忽略的数据库
在master机上为slave机添加一同步帐号
grant replication slave on *.* to 'replication'@'172.16.0.200' identified by '123456'
重启master机的mysql服务:service mysqld restart
用show master status 命令看日志情况
mysql>show master status
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
| log.000003 | 98 | repl | mysql |
1 row in set (0.00 sec)
2、修改slave机中mysql配置文件
同样在[mysqld]字段下添加如下内容
server-id=2 www.2cto.com
master-host=172.16.0.100
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库
然后重启slave机的mysql
在slave机中进入mysql
mysql>start slave
mysql>show slave status\G
如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。
这时 再执行show slave status\G
先在主数据库中创建新数据库rep_test。然后编辑主数据库的my.ini文件
在[mysqld]节点中增加如下内容:
server-id=1 #指定唯一的ID,1至32,必须的
log-bin=mysql-log-bin #指定二进制日志存放路径,必须的
binlog-do-db=rep_test #指定要同步的数据库,必须的
#binlog-ignore-db=mysql #指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项
重启主数据库,然后在主数据库中建立一个备份账户
mysql>grant replication slave on *.* to slave@192.168.1.128 identified by 'slave'
mysql>flush privileges
PS:identified by 指定的slave是账号slave@192.168.1.128 的密码
显示主服务器的状态信息,并且找到File 和 Position 的值记录下来;
mysql>show master status
在从数据库中创建新的数据库rep_test。
然后编辑从数据库的my.ini文件
在[mysqld]节点中增加如下内容:
server-id=2 #指定唯一的ID,2至32,必须的,并且不能跟主数据库一样
replicate-do-db=rep_test #指定要同步的数据库,必须的
#replicate-ignore-db=mysql #指定不要同步的数据库,
重启从数据库,设置登录主数据库的账号和密码等信息,然后启动slave
mysql>change master to master_host='192.168.1.2',master_user='slave',master_password='slave', master_log_file='mysql-bin.000002',master_log_pos=120
mysql>start slave
查看从数据库的信息
mysql>show slave status \G
如果出现: Slave_IO_Running: YesSlave_SQL_Running: Yes以上两项都为Yes,那说明没问题了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)