mysql5.0主从复制配置_mysql 5.5主从复制配置

48304ba5e6f9fe08f3fa1abda7d326ab.png

首先将主库现有的要实现主从的数据库原原本本地复制到从库上,目的是一开始就让主从同步,让binlog日志从最新的记录开始同步!

48304ba5e6f9fe08f3fa1abda7d326ab.png

备份:

方法1:快捷导出所要的库如(库goods)

将mysql的库的源数据(在/usr/local/mysql/var/下)打包成一个goods.tar.gz的压缩文件,然后再拷到从库的mysql对应目录中解压,推荐使用这种方法。

方法2: 导出所有库

系统命令行

mysqldump -uusername -ppassword --all-databases > test.sql

2 导入所有库

mysql命令行

mysql>source test.sql;

远程复制:将192.168.80.145上的test.sql拷到本机上

scp -P8880(默认为22,注意P是大写的) 192.168.80.145:/tmp/test.sql /tmp/

注意:要复制的文件可以是单个或批量文件或压缩包,但不能是文件夹。

48304ba5e6f9fe08f3fa1abda7d326ab.png

1.主库编辑my.cnf:

[mysqld]

log-bin=NEW_NAME

server-id=1 #配一个唯一的ID编号。

#设置要进行或不要进行主从复制的数据库名,同时也要在 Slave 上设定。

#说明:试验证明主库的binlog-do-db及binlog-ignore-db配不配置都行,关键是配置从库的就行。

#添加以下配置:要同步的库

#binlog-do-db=数据库名1

#binlog-do-db=数据库名2

#要忽略的库

#binlog-ignore-db=数据库名1

#binlog-ignore-db=数据库名2

#注意:要同步的库及要忽略的库只配置其中一项,一般只配要同步的库

mysql> grant replication slave on *.* to slaveuser@192.168.1.101 identified by '123456' ;

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000008 | 337 | | |

+------------------+----------+--------------+------------------+

记录下二进制日志文件名和位置

2.从库编辑my.cnf把server-id改成不和主机相同的数字。

如果只想同步指定的数据库,可以添加 replicate-do-db = yourdatabase,

同步几个就复制几个,把数据库名改了就好。

[mysqld]

server-id=2 #唯一(建议使用ip的最后一位)

#设置要进行或不要进行主从复制的数据库名,同时也要在 Master 上设定。

#添加以下配置:

//主库的数据库地址及访问账户

master-host = 192.168.1.100

master-user = slaveuser

master-password = 123456

master-port = 3306

要同步的库

replicate-do-db=数据库名1

replicate-do-db=数据库名2

跳过错误,防止主键冲突

slave-skip-errors = 1062

#如果只同步某库中的表,就使用下面这项

replicate-wild-do-table=库名.表名

#要忽略的库

#replicate-ignore-db=数据库名1(可以不配置)

#replicate-ignore-db=数据库名2(可以不配置)

注意:要同步的库及要忽略的库只配置其中一项,一般只配要同步的库

mysql> change master to master_host='192.168.1.100',master_user='slaveuser',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;//说明:这个master_log_file是主库最新的binlog日志,master_log_pos是主库最新的位置,使用show master status命令可以查看到。

mysql> start slave; mysql> show slave status\G;

如果出现:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上两项都为Yes,那说明没问题了。

注:如果出现Slave_SQL_Running:connecting的现象,首先在从库命令行下输入:

#mysql -uslaveuser -h 192.168.1.100 -p123456 看是否能登入mysql,如果是拒绝等提示,那要查看主机上的第从库授权操作是否用户的权限等设置正确。

如果开始的环境不是主从架构,跑了一段时间已经有了数据,

这时候要先在主机上加锁:

进入指定数据库test:use test;

flush tables with read lock;

打包主机的数据目录: #tar zcf /tmpdatabak.tgz /opt/data,拷贝这个压缩包到从机,解压后,做主从的配置。

然后解锁:

unlock tables;

48304ba5e6f9fe08f3fa1abda7d326ab.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值