MariaDB [LN]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO slave@'172.17.253.127'> MariaDB [LN]> CHANGE MASTER TO MASTER_HOST='172.17.253.127', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=245;
Start slave;
Show status slave\G;IO和SQL为yes即可 172.17.253.127上进行如下操作
auto_increment_offset=2
auto_increment_increment=2##使用偶数ID
进行数据库配置
MariaDB [LN]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO slave@'172.17.253.191'> MariaDB [LN]> CHANGE MASTER TO MASTER_HOST='172.17.253.191', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=245;
Start slave;
Show status slave\G;IO和SQL为yes即可 测验:
在191上创建表,并设置为自增长ID,检验效果
使用LN数据库
创建自增长ID表
在127上插入数据
查看表,成功
7.自增长ID,主键,外键,索引
自增长ID:对于某些唯一性的字段,例如一个班的学生的学号,可以通过设置自增长ID来实现,自增长ID的数据,代表这个表中存在一条唯一的记录,而且自增长ID是肯定不会重复的。
主键:关系型数据库的一条记录有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键,如学生表(学号,姓名,性别,班级)中,学号就是一个主键
外键:例如成绩表(学号,课程号,成绩),学号和课程号合称为主键,因为单单一个学号或者课程号并不能标识一个学生的成绩,而在学生表(学号,姓名,性别,班级)中,学号是主键,此时成绩表中的学号就是学生表中的外键。
外键主要用来连表查询,即通过学号查询了相关信息后,再把学号映射到成绩表中,和课程号结合,可以查看成绩。
索引:快速搜索的关键,没有索引的话,查询的时候会全库查询,比较慢 8.复制策略:异步,全同步,半同步
异步:这是默认的复制策略,master在执行完客户端的请求后,会立即将结果返给客户端,并不关心slave是否已经接受并处理,这样就会带来一个问题,当master宕机时,master的数据可能还没有全部传输到slave上,如果此时,强行将slave提升为master,就会造成数据不完整。
全同步:当master执行完一个客户端的请求后,会等待所有的slave执行完数据复制后才将事务返还给客户端,然而这样性能会受到严重的影响。
半同步:介于上述两者之间,当master执行完客户端的请求后,会等待至少一台slave完成数据复制才会将事务返还给客户端,这样提高了数据的安全性,但是也造成了一定程度的延迟,所以,半同步最好在延迟低的网络中使用。 9.开启半同步复制
主上
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled=ON;
SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
+------------------------------------+-------+
从上
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
MariaDB [mydb]> STOP SLAVE IO_THREAD;
MariaDB [mydb]> SET GLOBAL rpl_semi_sync_slave_enabled = ON ;
MariaDB [mydb]> START SLAVE ;
MariaDB [mydb]> SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';
查看是否生效
Tail -200 /var/log/mariadb/mariadb.log,有以下记录则生效