首先将主库现有的要实现主从的数据库原原本本地复制到从库上,目的是一开始就让主从同步,让binlog日志从最新的记录开始同步!
备份:1 导出所有库
系统命令行
mysqldump -uusername -ppassword --all-databases > all.sql
2 导入所有库
mysql命令行
mysql>source all.sql;远程复制:将192.168.80.145上的test.sql拷到本机上
scp 192.168.80.145:/tmp/test.sql /tmp/
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 [email protected] 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;//说明:这个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,如果是拒绝等提示,那要查看主机上的第从库授权操作是否用户的权限等设置正确。 如果开始的环境不是主从架构,跑了一段时间已经有了数据,这时候要先在主机上加锁:flush tables with read lock; 打包主机的数据目录: #tar zcf /tmpdatabak.tgz /opt/data,拷贝这个压缩包到从机,解压后,做主从的配置。 然后解锁:unlock tables;
mysql 5.5主从复制配置,布布扣,bubuko.com
时间: 2024-10-13 06:19:20