要做MySQL主从关系的设置,那么就得有两台MySQL主机。所以在开始之前准备两个MySQL服务器,可以是自己装的虚拟机也可以是其他的..反正有两台MySQL主机就行了。
然后来解释下上面的这些配置的含义,注意上面这几项配置,如果在配置文件中已经存在就不用添加了。
Server-id 顾名思义就是服务器id了
log-bin
Binlog-do-db 是你需要备份的数据库名称,可以有多个用“,”分开,比如test1,test2
Binlog-ignore-db 是不需要备份的数据库名称,也可以有多个用“,”分开
OK,主服务器配置完了,然后添加一个用户,用于从服务器访问。
上面这段就是添加一个用户了。@前面的slave是用户名,后面的是有效的域,192.%也就是说以192开头的任意IP都能使用这个帐号访问这台MySQL服务器,你也可以设置成固定的比如192.168.1.1。然后by面的slave是密码。
好了现在主服务器配置好了,就来配置从服务器。
下面来解释下:
Server-id 不说了和上面一样
Master-host 是主服务器的IP地址
Master-port 主服务器的端口
Master-user 用于和主服务器同步数据的用户名,我们在配置主服务器已经添加了就是slave
Master-password 当然就是密码了
Replicate-do-db 就是要备份的数据库名称
注意,默认就有一个server-id=1的配置,需要注释掉。
主从服务器都配置好了,然后重启两台服务器。
执行后会显示很多东西, 然后找到下面这两项:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果两项都是Yes那么就配置成功了。
接着执行命令:
这个命令就是说载入数据从主服务器。
好了,现在我们配置什么的都做完了,开始创建数据库,看看MySQL是否自动同步了数据。
创建表test
选择表test
创建表user
插入一条记录
然后我们登录到从服务器
+----+---------+
| id | name |
+----+-------- +
| 1 | xiaokai |
+----+---------+
1 rows in set (0.01 sec)
很明显我们在主服务器插入的数据在从服务器上也有了。
如果你执行后也有同样的效果,那么恭喜你成功了。你学会了MySQL主从服务器的设置。
.....
1 主服务器Master
首先打开你主的MySQL服务器的配置文件my.ini,一般都在MySQL安装目录下,记得先备份以下原来的配置文件。然后找个合适的地方加入下面的代码,比如配置文件最下面:
1 |
Server-id=1 |
2 |
log-bin=mysql-bin |
3 |
Binlog- do -db=test |
4 |
Binlog-ignore-db=mysql |
然后来解释下上面的这些配置的含义,注意上面这几项配置,如果在配置文件中已经存在就不用添加了。
Server-id 顾名思义就是服务器id了
log-bin
Binlog-do-db 是你需要备份的数据库名称,可以有多个用“,”分开,比如test1,test2
Binlog-ignore-db 是不需要备份的数据库名称,也可以有多个用“,”分开
1 |
Grant usage on *.* to 'slave' @ '192.%' identfied by 'slave' |
OK,主服务器配置完了,然后添加一个用户,用于从服务器访问。
上面这段就是添加一个用户了。@前面的slave是用户名,后面的是有效的域,192.%也就是说以192开头的任意IP都能使用这个帐号访问这台MySQL服务器,你也可以设置成固定的比如192.168.1.1。然后by面的slave是密码。
好了现在主服务器配置好了,就来配置从服务器。
2 从服务器Slave
打开从服务器的配置文件my.ini,同样找个合适的地方加入下面的代码:
1 |
# Slave Config |
2 |
Server-id=2 |
3 |
Master-host=192.168.1.100 |
4 |
Master-port=3306 |
5 |
Master-user=slave |
6 |
Master-password=slave |
7 |
Replicate- do -db=test |
下面来解释下:
Server-id 不说了和上面一样
Master-host 是主服务器的IP地址
Master-port 主服务器的端口
Master-user 用于和主服务器同步数据的用户名,我们在配置主服务器已经添加了就是slave
Master-password 当然就是密码了
Replicate-do-db 就是要备份的数据库名称
注意,默认就有一个server-id=1的配置,需要注释掉。
主从服务器都配置好了,然后重启两台服务器。
然后登录到从服务器,执行以下命令,查看从服务器的配置是否正确。
1 |
Show slave status\G; |
执行后会显示很多东西, 然后找到下面这两项:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果两项都是Yes那么就配置成功了。
接着执行命令:
1 |
Load data from master; |
这个命令就是说载入数据从主服务器。
好了,现在我们配置什么的都做完了,开始创建数据库,看看MySQL是否自动同步了数据。
创建表test
1 |
Create database test; |
选择表test
1 |
Use test; |
创建表user
1 |
Create table user(name varchar(50)); |
插入一条记录
1 |
Inster into user (name) value ( 'xiaokai' ); |
然后我们登录到从服务器
1 |
Mysql -uroot -h192.168.1.101 |
+----+---------+
| id | name |
+----+-------- +
| 1 | xiaokai |
+----+---------+
1 rows in set (0.01 sec)
很明显我们在主服务器插入的数据在从服务器上也有了。
如果你执行后也有同样的效果,那么恭喜你成功了。你学会了MySQL主从服务器的设置。
转载请注明:谷谷点程序 » MySQL主从关系设置