主库:
IP:192.168.0.111
1.编辑/etc/my.cnf 文件打开log-bin
vim /etc/my.cnf
server-id = 1 #自带就有的话就不用添加 看一下my.conf上下文
binlog-do-db=mydb_name #需要同步的数据库名称
binlog-ignore-db=mysql #需要忽略的数据库名
log-bin=mysql-bin #启用二进制日志
2.重启mysql服务器
(CentOS是serice mysqld restart 其他系统的自行重启 若不知请谷歌、度娘)
3、创建一个MySQL帐号为同步专用
用root用户登陆mysql
mysql> grant replication slave,reload,super on *.* to backup@192.168.5.200 identified by 'backup';
mysql> flush privileges;
ps:我这里是创建了一个backup用户密码也是backup的mysql数据库用户,用于同步。@后面指定该账户允许远程登录的ip,也就是B从机的ip地址
4.用刚创建的账户backup登陆mysql数据库
mysql> show master status; ###记下文件名,和位置信息
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 412 | | |
+------------------+----------+--------------+------------------+
从库:
服务器ip:192.168.0.93
修改/etc/my.cnf中的server-id=2,切忌不能与主库中的id相同。
将主库备份数据的备份还原到从数据库中:
mysqldump -ubackup -pbackup backup-db>masterdb.sql
mysql -uroot -p123456 backup_db
将以下内容在从库中执行:
CHANGE MASTER TO
MASTER_HOST='192.168.0.102',
MASTER_PORT=3306,
MASTER_USER='*****',
MASTER_PASSWORD='*******',
MASTER_LOG_FILE='mysql-bin.000002',####此处内容,同主库show master status;
MASTER_LOG_POS=412;##主库show master status;的Position信息
###############################
ok,以上内容会写入,master.info文件中
在数据库中执行:
start slave; ##执行同步开关
show slave status\G ##查看数据库是否同步
如果信息中有如下,两个yes,一个0,即表示 成功。
Slave_IO_Running: Yes
Slave_SQL_Running:Yes
Seconds_Behind_Master:0
以上是主从同步的全部过程。
可在主库中创建或更新数据库或表,在从库中查看是否有变化,以达到测试到目的。