【mysqld】
expire_logs_day=20;
1.主库编辑my.cnf:
[mysqld]
log-bin=NEW_NAME
server-id=1 #配一个唯一的ID编号,1至32。
#设置要进行或不要进行主从复制的数据库名,同时也要在Slave 上设定。
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 #唯一
#设置要进行或不要进行主从复制的数据库名,同时也要在Master 上设定。
replicate-do-db=数据库名1
replicate-do-db=数据库名2
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;
mysql> start slave;
mysql> show slave statusG;
如果出现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两项都为Yes,那说明没问题了。如果指定了个别的数据库,还可以看到
注:如果出现Slave_SQL_Running:connecting的现象,首先在从库命令行下输入:
#mysql -uslaveuser -h 192.168.1.100 -p123456
看是否能登入mysql,如果是拒绝等提示,那要查看主机上的第从库授权操作是否用户的权限等设置正确。
如果开始的环境不是主从架构,跑了一段时间已经有了数据,这时候要先在主机上加锁:flush tables with read lock;
打包主机的数据目录:#tar zcf /tmpdatabak.tgz /opt/data,拷贝这个压缩包到从机,解压后,做主从的配置。
然后解锁:unlock tables;
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。