网站建设毕业答辩ppt怎么写,有没有做网站源代码修改的,顺企网哈尔滨网站建设,wordpress登录回复1. 在/user/local/share/下创建mysql文件夹#xff0c;在mysql文件夹目录下创建4个文件夹分别是:master1, master2, slave1, slave2分别在每个目录下建立data, conf, logs用于数据持久化创建后如下2.创建容器#xff1a;1)创建一个名为master1的mysql容器(主 mysql)docker ru…1. 在/user/local/share/下创建mysql文件夹在mysql文件夹目录下创建4个文件夹分别是:master1, master2, slave1, slave2分别在每个目录下建立data, conf, logs用于数据持久化创建后如下2.创建容器1)创建一个名为master1的mysql容器(主 mysql)docker run -p 4306:3306 --name master1 \-v /usr/local/share/mysql/master1/conf:/etc/mysql/conf.d \-v /usr/local/share/mysql/master1/logs:/var/log/mysql \-v /usr/local/share/mysql/master1/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD123456 -itd mysql:8.0.222)创建一个名为master2的mysql容器(主 mysql)docker run -p 4307:3306 --name master2 \-v /usr/local/share/mysql/master2/conf:/etc/mysql/conf.d \-v /usr/local/share/mysql/master2/logs:/var/log/mysql \-v /usr/local/share/mysql/master2/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD123456 -itd mysql:8.0.223)创建一个名为salve1 的mysql容器(从 mysql)docker run -p 5306:3306 --name salve1 \-v /usr/local/share/mysql/salve1/conf:/etc/mysql/conf.d \-v /usr/local/share/mysql/salve1/logs:/var/log/mysql \-v /usr/local/share/mysql/salve1/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD123456 -itd mysql:8.0.224)创建一个名为salve2的mysql容器(从 mysql)docker run -p 5307:3306 --name salve2 \-v /usr/local/share/mysql/salve2/conf:/etc/mysql/conf.d \-v /usr/local/share/mysql/salve2/logs:/var/log/mysql \-v /usr/local/share/mysql/salve2/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD 123456 -itd mysql:8.0.22命令参数注解--name : 容器名称-p : 映射容器端口号和宿主机端口号-v : 挂载宿主机目录和docker容器中的目录前面是宿主机目录后面是容器内部目录-d : 后台运行容器-e 环境参数MYSQL_ROOT_PASSWORD设置root用户的密码-itd : 指定数据库版本3.查看是否将mysql容器创建成功命令docker ps4.配置(双主双从)1) 配置master1命令vim /usr/local/share/mysql/master1/conf/my.cnf 添加如下内容[mysqld]# master01主服务器01唯一IDserver-id4306# 启用二进制日志log-binmysql-bin#从库的中继日志主库日志写到中继日志中继日志再重做到从库# relay-logmyslql-relay-bin# binlog保留时间7天expire_logs_days7# binlog 文件的大小max_binlog_size1G#设置logbin格式。取值STATEMENT (默认)ROWMIXEDbinlog_formatROW# 设置不要赋值的数据binlog-ignore-dbmysqlbinlog-ignore-dbinformation_schemabinlog-ignore-dbperformance_schemabinlog-ignore-dbsys# 设置需要复制的数据(可选)# 如果配置了此项,就是只复制那个数据库, 如果不指定就是所有# binlog-do-db需要复制的主数据库1# 设置login格式binlog_formatSTATEMENT# 在作为从数据库的时候有写入操作也要更新二进制日志文件log-slave-updates# 该从库是否写入二进制日志。如果需要成为多主则可启用。只读可以不需要log-slave-updates1#表示自增长字段每次递增的量指自增字段的起始值其默认值是1取值范围是1 ..65535auto-increment-increment2# 表示自增长字段从哪个数开始指字段一次递增多少他的取值范围是1 ..65535auto-increment-offset12)配置master2命令vim /usr/local/share/mysql/master2/conf/my.cnf 添加如下内容[mysqld]# master01主服务器01唯一IDserver-id4307# 启用二进制日志log-binmysql-bin#从库的中继日志主库日志写到中继日志中继日志再重做到从库# relay-logmyslql-relay-bin# binlog保留时间7天expire_logs_days7# binlog 文件的大小max_binlog_size1G#设置logbin格式。取值STATEMENT (默认)ROWMIXEDbinlog_formatROW# 设置不要赋值的数据binlog-ignore-dbmysqlbinlog-ignore-dbinformation_schemabinlog-ignore-dbperformance_schemabinlog-ignore-dbsys# 设置需要复制的数据(可选)# 如果配置了此项,就是只复制那个数据库, 如果不指定就是所有# binlog-do-db需要复制的主数据库1# 设置login格式binlog_formatSTATEMENT# 在作为从数据库的时候有写入操作也要更新二进制日志文件log-slave-updates# 该从库是否写入二进制日志。如果需要成为多主则可启用。只读可以不需要log-slave-updates1#表示自增长字段每次递增的量指自增字段的起始值其默认值是1取值范围是1 ..65535auto-increment-increment2# 表示自增长字段从哪个数开始指字段一次递增多少他的取值范围是1 ..65535auto-increment-offset13)配置slave1命令vim /usr/local/share/mysql/slave1/conf/my.cnf 添加如下内容[mysqld]# 从服务唯一IDserver-id5306# 启用中继日志relay-logmysql-relay4)配置slave2命令vim /usr/local/share/mysql/slave2/conf/my.cnf 添加如下内容[mysqld]# 从服务唯一IDserver-id5307# 启用中继日志relay-logmysql-relay注查看server_id 的语句 show variables like server_id;5.配置完成后重启容器即可生效docker restart $(docker ps -q)6.创建数据库相关账户并授权1)进入容器 master1是容器名称docker exec -it master1 bash2)进入mysql窗口mysql -uroot -p123456 //-u表示账号 -p密码(为上述创建容器时设置)3)创建一个用户来做同步的用户,并授权,所有集群内的服务器都需要做create user master1% identified with mysql_native_password by a123456;grant replication slave,replication client on *.* TO master1%; //一般不用root帐号“%”表示所有客户端都可能连只要帐号密码正确此处可用具体客户端IP代替如192.168.245.139加强安全。4)刷新生效flush privileges;6)使用exit命令退出mysql命令、退出master1容器7)进入master2容器创建账号docker exec -it master2 bash //进入容器master2mysql -uroot -p123456 //进去mysql窗口mysql create user master2% identified with mysql_native_password by a123456; //创建账号 master2mysqlgrant replication slave,replication client on *.* TO master2%; //授权mysql flush privileges;//刷新生效7.从机复制主机slave1复制master1 slave2复制master2#复制主机的命令CHANGE MASTERTO MASTER_HOST主机的IP地址,//查看容器ip的命令 docker inspect master1 |grep IPAddress #master1 容器名称MASTER_USERusername,//主机的数据库账号MASTER_PASSWORDpassworld,//主机的数据库密码MASTER_LOG_FILEmysql-bin.具体数字,MASTER_LOG_POS具体值;配置slave1如下图即为主机master1的参数master_log_file的值对应为File的值master_log_pos的值为Position对应的值配置步骤同上述主机配置 先进入容器salve1-再进入mysql窗口运行如下命令即可具体参数配置根据自己安装的查询填写change master to master_host172.17.0.2,master_usermaster1,master_passworda123456,master_log_filemysql-bin.000004,master_log_pos156;启用同步进程start slave;查看同步从库状态show slave status\G;如上图没有相关报错信息就是配置成功了本人安装时遇到的问题执行start slave时报Slave failed to initialize relay log info structure from the repository原因由于之前配置过主从备份已经执行过一次change master to命令这次再次执行change master to2次的pos值不一样。解决#停止同步stop slave# 重置slavereset slave;# 执行同步change master to master_host172.17.0.2,master_usermaster1,master_passworda123456,master_log_filemysql-bin.000004,master_log_pos156;# 启动slavestart slave;# 查看slave状态show slave status\G;配置完成后报错The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manu原因server_id重复是由于配置文件放错位置导致未生效解决my.cnf放到容器创建时指定的位置重启容器即可同理配置slave2不再重复赘述change master to master_host172.17.0.3,master_usermaster2,master_passworda123456,master_log_filemysql-bin.000003,master_log_pos880;8.两主机互相复制master1复制master2, master2复制master1配置master1change master to master_host172.17.0.3,master_usermaster2,master_passworda123456,master_log_filemysql-bin.000003,master_log_pos880;启用同步进行start master查看状态show slave status\G;如上报错解决使用flush privileges 刷新一下即可如果还是不行使用show master status\G查看对应的主机信息是否已经变更新了重新设置slave即可正常的显示如下同理配置master2复制master1change master to master_host172.17.0.2,master_usermaster1,master_passworda123456,master_log_filemysql-bin.000004,master_log_pos156;到此就完成了安装和配置测试以上集群是否成功1.在master1上创建一个库CREATE DATABASE test_db;2.创建一个表CREATE TABLE IF NOT EXISTS user(idINTUNSIGNED AUTO_INCREMENT,nameVARCHAR(30) NOT NULL,ageINT(3) NOT NULL,PRIMARY KEY( id ))ENGINEInnoDB DEFAULT CHARSETutf8;3.插入数据INSERT INTO user (name, age) VALUES (zhaoming, 18);INSERT INTO user (name, age) VALUES (张三, 20);出现如下说明主从同步成功至此集群可以快乐玩耍了