MySQL主从介绍

配置主

mysql安装后修改my.cnf配置文件,修改my.cnf,增加server-id=130和log_bin=dashuo1

[root@100xuni1 ~]# vim /etc/my.cnf

修改完配置文件后,启动或者重启mysqld服务

[root@100xuni1 ~]# /etc/init.d/mysqld restart

重启完成后/data/mysql下会出现几个文件

把mysql数据库的zrlog库备份并恢复成hanshuo库,作为测试数据

[root@100xuni1 mysql]# mysqldump -uroot -phanshuo1 zrlog > /tmp/zrlog.sql     ##备份db1库
[root@100xuni1 mysql]# mysql -uroot -phanshuo1 -e "create database hanshuo"   ##创建hanshuo库
[root@100xuni1 mysql]# mysql -uroot -phanshuo1 hanshuo < /tmp/zrlog.sql   ##把备份zrlog的数据库恢复成hanshuo数据库

进入数据库创建用户,用作主从同步数据

[root@100xuni1 mysql]# mysql -uroot -phanshuo1    ##进入数据库

mysql> grant replication slave on *.* to 'repl'@'192.168.63.104' identified by 'www692517111';
     ##创建用户

锁表目的是不让继续写

mysql> flush tables with read lock;

mysql> show master status;

为了测试把所有的库做下备份,用作同步

配置从

从上边已经安装了mysql配置文件里加上server-id

[root@100xuni1 ~]# vim /etc/my.cnf

修改完配置文件后,启动或者重启mysqld服务

[root@100xuni1 ~]# /etc/init.d/mysqld restart

把主上aming库同步到从上 可以先创建hanshuo库,然后把主上的/tmp/mysql.sql拷贝到从上,然后导入hanshuo库

[root@100xuni1 ~]# scp 192.168.63.100:/tmp/*.sql /tmp/

创建库

mysql> create database hanshuo
mysql> create database db1;
mysql> create database zrlog;
mysql> create database mysql2

恢复数据库

保持主从数据库一致

实现主从

登录从的数据库

[root@100xuni1 ~]# mysql -uroot -phanshuo1
mysql> stop slave;

主从同步非常重要的语句

mysql> change master to master_host='192.168.63.100', master_user='repl', master_password='www692517111', master_log_file='dashuo1.000001', master_log_pos=16821;
mysql> start slave;

判断主从是否配置成功

**在从上登录mysql执行show slave status\G

到主上恢复操作

查看主从同步是否正常

** 测试主从同步参数解释**

主从都可以:定义要同步的库,仅同步指定的一个库比如就同步zrlog库写法如下

mysql> binlog-do-db=zrlog      ##如果想同步多个库以逗号隔开

主从都可以定义:忽略某一个库比如说除了zrlog库不同步其他都同步

mysql>binlog-ignore-db=zrlog

再从上和可以定义指定同步表和不想同步某个表尽量不要用这两个参数

mysql>replicate_do_table=
mysql>replicate_ignore_table=

针对一个表的所有进行更改,比如aming库%表,支持库点表

replicate_wild_do_table=   //如aming.%, 支持通配符% 
 replicate_wild_ignore_table=

测试主从是否成功

针对hanshuo库进行测试

mysql> use hanshuo     ##切换hanshuo库

查看hanshuo库的表

mysql> show tables;

针对表做操作

mysql> select count(*) user;      ##主上查看多少行
+------+
| user |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql> select count(*) user;     ##从上查看多少行
+------+
| user |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

在主上把link表做个删除操作

在主上把hanshuo这个库删除掉