直播网站建设需要什么软件有哪些,大学生html网页设计作业,站长工具seo下载,济南百度爱采购注意#xff1a;在同一台服务器上部署主从或主主之类的时候#xff0c;数据库data下有一个auto.cnf里的uuid不能重复。
原则#xff1a;做同步之前要保证两个数据库数据一致.
锁表操作#xff1a;
FLUSH TABLES WITH READ LOCK; 注#xff1a;没有锁定主服务器#xf…注意在同一台服务器上部署主从或主主之类的时候数据库data下有一个auto.cnf里的uuid不能重复。
原则做同步之前要保证两个数据库数据一致.
锁表操作
FLUSH TABLES WITH READ LOCK; 注没有锁定主服务器这里记录的主服务器二进制日志position值可能会大于做mysqldump时的值这将导致从服务器丢失在此期间的更新。如果可以保证在此期间主服务器不会出现创建新表的更新那么丢失的影响不大否则将导致从服务器复制线程失败这时必须在做mysqldump时锁定主服务器。 取消主数据库锁定 mysqlUNLOCK TABLES;
在主机1的mysqld下增加
server-id1
log-binmysql-bin
binlog_format mixed
#不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-dbmysql,information_schema,performance_schema,sys
#不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
replicate-ignore-dbmysql,information_schema,performance_schema,sys
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
#将复制事件写入binlog,一台服务器既作主库又作从库此选项必需要开启
log-slave-updates
#控制数据库的binlog刷到磁盘上去,sync_binlog0表示MySQL不控制binlog的刷新由文件系统自己控制它的缓存的刷新。这时候的性能是最好的但是风险也是最大的。因为一旦系统Crash在binlog_cache中的所有binlog信息都会被丢失。
sync_binlog1
#避免两台服务器同时做更新时自增长字段的值之间发生冲突
auto_increment_offset1
auto_increment_increment2
slave-skip-errorsall #过滤掉一些没啥大问题的错误
小知识slave_skip_errors选项有四个可用值分别为 offallErorCodeddl_exist_errors。 默认情况下该参数值是off我们可以列出具体的error code也可以选择allmysql5.6及MySQL Cluster NDB 7.3以及后续版本增加了参数ddl_exist_errors该参数包含一系列error code1007,1008,1050,1051,1054,1060,1061,1068,1094,1146 一些error code代表的错误如下 1007数据库已存在创建数据库失败 1008数据库不存在删除数据库失败 1050数据表已存在创建数据表失败 1051数据表不存在删除数据表失败 1054字段不存在或程序文件跟数据库有冲突 1060字段重复导致无法插入 1061重复键名 1068定义了多个主键 1094位置线程ID 1146数据表缺失请恢复数据库 1053复制过程中主服务器宕机 1062主键冲突 Duplicate entry %s for key %d 在主机2的mysqld下增加
server-id2
log-binmysql-bin
binlog-ignore-dbmysql,information_schema,performance_schema,sys#不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
replicate-ignore-dbmysql,information_schema,performance_schema,sys #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog1
auto_increment_offset2
auto_increment_increment2
slave-skip-errorsall #过滤掉一些没啥大问题的错误
在主机1上登录mysql cd /home/mysqlinstall/public/mysql/bin ./mysql -S ../mysql.sock -uroot -p密码 grant replication slave on *.* to repl主机2 identified by 密码; 例grant replication slave on *.* to replip identified by 密码; flush privileges; show master status;或show master status \G#记录下二进制日志文件名和位置 在主机2设置操作 cd /home/mysqlinstall/public/mysql/bin ./mysql -S ../mysql.sock -uroot -p密码 stop slave; change master to master_host主机1,master_userrepl,master_password密码,master_log_filemysql-bin.000001,master_log_pos608; 例change master to master_hostip,master_port3306,master_userrepl,master_password密码,master_log_filemysql-bin.000001,master_log_pos609; (master_log_file和master_log_pos填上刚才记录下主1的二进制日志文件名和位置) start slave; show slave status\G出现Slave_IO_Running: Yes Slave_SQL_Running: Yes 标识主1设置成功即可测试主主复制
在主机2上操作 grant replication slave on *.* to repl主机1 identified by 密码; 例grant replication slave on *.* to replip identified by 密码; flush privileges; show master status;或show master status \G#记录下二进制日志文件名和位置
在主机1设置操作 stop slave; change master to master_host主机2,master_userrepl,master_password密码,master_log_filemysql-bin.000001,master_log_pos154; 例change master to master_hostip,master_port3306,master_userrepl,master_password密码,master_log_filemysql-bin.000001,master_log_pos609; (master_log_file和master_log_pos填上刚才记录下主1的二进制日志文件名和位置) start slave; show slave status\G出现Slave_IO_Running: Yes Slave_SQL_Running: Yes 标识主1设置成功即可测试主主复制
在主机3上登录
server-id3
log-binmysql-bin
master_info_repository table
relay_log_info_repository table
#限制普通用户只读
read-only1
#限制超级管理员用户只读
super_read_only1
mysql -uroot -p
CHANGE MASTER TO MASTER_HOST主1IP, MASTER_PORT3306, MASTER_USER用户, MASTER_PASSWORD密码, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS886 for channel 主1标识; (master_log_file和master_log_pos填上刚才记录下主1的二进制日志文件名和位置) CHANGE MASTER TO MASTER_HOST主2IP, MASTER_PORT3306, MASTER_USER用户, MASTER_PASSWORD密码, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS154 for channel 主2标识; (master_log_file和master_log_pos填上刚才记录下主2的二进制日志文件名和位置)
例 change master to master_hostip,master_port3306,master_userrepl,master_password密码,master_log_filemysql-bin.000004,master_log_pos154 for channel 3306标识; change master to master_hostip,master_port3307,master_userrepl,master_password密码,master_log_filemysql-bin.000003,master_log_pos154 for channel 3307标识;
flush privileges; start slave; show slave status\G出现Slave_IO_Running: Yes Slave_SQL_Running: Yes 标识主1 和标识主2设置成功 1.创建用户CREATE USER hwb% IDENTIFIED BY 密码;
2.用户授权所以数据库 grant SELECT on *.* to hwb%; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON [databasename].* TO dba% 3.刷新 flush privileges; 测试表
create database testdb;
create table testdb.data01(
id int not null primary key auto_increment,
name varchar(60),
age int); insert into testdb.data01 (name,age) values
(tom,18),
(jack,17),
(rock,16),
(james,15),
(cris,20); 通过 select hostname 查看可以看到此时连接的是主库 B。