当前位置: 首页 > news >正文

淘宝优惠券微网站开发校园网站建设年度总结

淘宝优惠券微网站开发,校园网站建设年度总结,帮人做网站推选的公司,Wordpress插件授权破解文章目录 一、准备工作1. 安装配置Docker2. 准备MySQL相关的配置和数据目录 二、基于日志点的主从复制1. 配置Master服务器1.1 修改配置文件1.2. 在docker中启动Master节点1.3. 创建用户并授权 2. 配置Slave1服务器2.1. 修改配置2.2. 启动服务2.3. 指定Master2.4. 开始复制 3. … 文章目录 一、准备工作1. 安装配置Docker2. 准备MySQL相关的配置和数据目录 二、基于日志点的主从复制1. 配置Master服务器1.1 修改配置文件1.2. 在docker中启动Master节点1.3. 创建用户并授权 2. 配置Slave1服务器2.1. 修改配置2.2. 启动服务2.3. 指定Master2.4. 开始复制 3. 配置Slave2服务器3.1. 修改配置3.2. 启动服务3.3. 指定Master3.4. 开始复制 4. 测试效果4.1. 更新数据4.2. 查看同步结果 三、基于GTID的主从复制1. Master配置文件2. Slave配置文件3. 指定Master信息 四、主主复制1. 基于日志点的主主复制1.1. 修改节点1的MySQL配置1.2. 修改节点2的MySQL配置1.3. 启动两个MySQL1.4. 连接MySQL并创建用户1.5. 配置Master信息1.6. 开启复制1.7. 复制测试 2. 基于GTID的主主复制2.1. 修改节点的MySQL配置2.2. 配置Master信息 Docker容器是现在的主流技术容器提供了细粒度的系统隔离机制每个容器都完全独立其中包括了应用以及所有需要的系统依赖可以把系统中每个服务放入容器让各个服务都以容器的形式运行这样就大大简化了系统的部署过程更加便于维护。 一、准备工作 1. 安装配置Docker 各位看官根据自己的操作系统和喜好选择相应的Docker进行安装和配置。使用docker pull命令拉取mysql 8的镜像文件。 docker pull mysql:82. 准备MySQL相关的配置和数据目录 本次演示以一主二从共三台服务器为例进行演示。在当前目录创建三个配置文件目录和三个数据目录 cd /Users/Tom/dockermkdir mysqlconfmkdir mysqlconf/mastermkdir mysqlconf/slave1mkdir mysqlconf/slave2mkdir mysqldatamkdir mysqldata/mastermkdir mysqldata/slave1mkdir mysqldata/slave2tree -L 2 . ├── README.md ├── mysqlconf │ ├── master │ ├── slave1 │ └── slave2 └── mysqldata├── master├── slave1└── slave2运行MySQL容器并从中拷贝MySQL配置文件到本地备用配置文件目录/etc/my.cnf。 # 语法 docker cp containerId:/path/to/file /path/on/host# 示例temp_mysql8是本次启动的MySQL容器名称 docker cp temp_mysql8:/etc/my.cnf .拷贝配置文件到已创建的配置文件目录 cp my.cnf mysqlconf/master/my.cnf cp my.cnf mysqlconf/slave1/my.cnf cp my.cnf mysqlconf/slave2/my.cnf tree -L 3 . ├── README.md ├── mysqlconf │ ├── master │ │ └── my.cnf │ ├── slave1 │ │ └── my.cnf │ └── slave2 │ └── my.cnf └── mysqldata├── master├── slave1└── slave2二、基于日志点的主从复制 1. 配置Master服务器 1.1 修改配置文件 编辑主服务器的MySQL配置文件mysqlconf/master/my.cnf添加下列配置项 [mysqld] server-id1 log-binmysql-binlog binlog-do-dbyour-database-name default_authentication_pluginmysql_native_password1.2. 在docker中启动Master节点 docker run -P --name mysqlmaster \-v $PWD/mysqldata/master:/var/lib/mysql \-v $PWD/mysqlconf/master/my.cnf:/etc/my.cnf \-e MYSQL_ROOT_PASSWORD123456 -d mysql:8参数含义说明 -P本机与容器的端口映射--name为容器指定一个名称mysqlmasterMYSQL_ROOT_PASSWORD指定MySQL中root用户的密码为123456-d指定容器运行方式为后台运行 容器启动后登录MySQL并检查配置是否生效 $ docker exec -it mysqlmaster bash # mysql -uroot -p123456 mysql show variables like server_id; ---------------------- | Variable_name | Value | ---------------------- | server_id | 1 | ----------------------如果登录MySQL提示错误Access denied for user rootlocalhost (using password: YES)可能是你密码输入错误也可能是加密插件导致的。MySQL8使用的默认加密插件是 caching_sha2_password而MySQL5.6使用的是mysql_native_password当你在控制台使用明文密码登录的时候走的是mysql_native_password加密而数据库记录的是caching_sha2_password加密后的密码。两个密文不一致导致登录失败。解决办法是在配置文件中指定加密插件default_authentication_pluginmysql_native_password 1.3. 创建用户并授权 在Master上创建一个复制用户并授权 mysql CREATE USER repl% identified by password; mysql GRANT REPLICATION SLAVE ON *.* TO repl%; # 刷新用户权限信息 mysql FLUSH PRIVILEGES;# 查看Master状态 mysql SHOW MASTER STATUS; ------------------------------------------------------------------------------- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | ------------------------------------------------------------------------------- | mysql-bin.000003 | 1531 | | | | -------------------------------------------------------------------------------执行结果中显示二进制日志文件为mysql-bin.000003日志位置为1531。Slave就是从这个日志点开始进行复制的。 2. 配置Slave1服务器 2.1. 修改配置 编辑从服务器slave1的MySQL配置文件mysqlconf/slave1/my.cnf添加下列配置项 [mysqld] server-id2 relay-logmysql-relay-bin replicate-do-dbyour_database_name2.2. 启动服务 docker run -P --name mysqlslave1 \-v $PWD/mysqldata/slave1:/var/lib/mysql \-v $PWD/mysqlconf/slave1/my.cnf:/etc/my.cnf \-e MYSQL_ROOT_PASSWORD123456 -d mysql:8容器启动后登录MySQL并检查配置是否生效 $ docker exec -it mysqlslave1 bash # mysql -uroot -p123456 mysql show variables like server_id; ---------------------- | Variable_name | Value | ---------------------- | server_id | 2 | ----------------------2.3. 指定Master 指定Master的信息包括IP、用户、密码、日志文件和位置。 mysql change master to master_host172.17.0.2, master_userrepl, master_password123456, master_log_filemysql-bin.000003, master_log_pos828可以使用docker inspect mysqlmaster | grep IPAddress查看Master节点的IP信息 2.4. 开始复制 mysql start slave;mysql show slave status \G; ... Relay_Master_Log_File: mysql-bin.000003 Slave_IO_Running: Yes Slave_SQL_Running: Yes ...最关键的是这两项信息 Slave_IO_RunningSlave_SQL_Running 3. 配置Slave2服务器 3.1. 修改配置 编辑从服务器slave2的MySQL配置文件mysqlconf/slave2/my.cnf添加下列配置项 [mysqld] server-id3 relay-logmysql-relay-bin replicate-do-dbyour_database_name3.2. 启动服务 docker run -P --name mysqlslave2 \-v $PWD/mysqldata/slave2:/var/lib/mysql \-v $PWD/mysqlconf/slave2/my.cnf:/etc/my.cnf \-e MYSQL_ROOT_PASSWORD123456 -d mysql:8容器启动后登录MySQL并检查配置是否生效 $ docker exec -it mysqlslave2 bash # mysql -uroot -p123456 mysql show variables like server_id; ---------------------- | Variable_name | Value | ---------------------- | server_id | 3 | ----------------------3.3. 指定Master 指定Master的信息包括IP、用户、密码、日志文件和位置。 mysql change master to master_host172.17.0.2, master_userrepl, master_password123456, master_log_filemysql-bin.000003, master_log_pos8283.4. 开始复制 mysql start slave;mysql show slave status \G; ... Slave_IO_Running: Yes Slave_SQL_Running: Yes ...最关键的是这两项信息 Slave_IO_RunningSlave_SQL_Running 4. 测试效果 4.1. 更新数据 在Master节点上创建一个新的数据库和表并任意插入一条数据 mysql create database test; mysql use test; mysql create table user(id bigint(20) primary key, name varchar(20)); mysql insert into user value(1, Tom); mysql select * from user;4.2. 查看同步结果 在Slave1和Slave2节点查看test.user表的数据 mysql select * from test.user; ---------- | id | name | ---------- | 1 | Tom | ----------结果表明主从复制环境配置成功。 三、基于GTID的主从复制 基于GTID的主从复制配置步骤跟基于日志点的主从复制配置基本相似差别在于配置和指定Master时使用的命令参数略有差异。具体如下 1. Master配置文件 打开配置文件mysqlconf/master/my.cnf在[mysqld]部分添加配置 [mysqld] server-id1 # 启动二进制日志 log-binmysql-bin binlog_formatrow # 开启GTID模式 gtid_modeon # 强制GTID一致性 enforce_gtid_consistencytruebinlog_format指定二进制日志格式为row 2. Slave配置文件 打开配置文件mysqlconf/slave1/my.cnf和mysqlconf/slave2/my.cnf分别在[mysqld]部分添加配置 # slave1节点配置 server_id2 log-binmysql-bin log_slave_updates1 gtid_modeon enforce_gtid_consistencytrue master_info_repositoryTABLE relay_log_info_repositoryTABLE read_onlyONlog_slave_updates参数决定了在从服务器上是否将复制事件写入二进制日志文件Binary Log。默认情况下这个参数是0表示关闭也就是说从服务器不会将复制事件写入二进制日志。relay_log_info_repository指定中继日志的存储方式默认是文件这样配置是使用了两个表是INNODB存储引擎好处是当出现数据库崩溃时利用INNODB引擎事务的特点对这两个表进行恢复以保证从服务器可以从正确位置恢复数据。read_only指定从服务器是否只读此参数对超级用户无效并且不会影响从服务器的复制。这个参数主要保证从服务器的数据安全性。 # slave2节点配置 server_id3 log-binmysql-bin log_slave_updates1 gtid_modeon enforce_gtid_consistencytrue master_info_repositoryTABLE relay_log_info_repositoryTABLE read_onlyON3. 指定Master信息 change master to master_host172.17.0.2, master_userrepl, master_password123456, master_auto_position1; CHANGE MASTER TO MASTER_HOST172.17.0.2,MASTER_USERrepl,MASTER_PASSWORD123456,MASTER_AUTO_POSITION1;四、主主复制 主从复制支持在一台Master数据库的写入和其他Slave数据库只读操作。但这种部署架构有个缺点只有Master数据库具有写操作。当数据库写操作很多时它的压力比较大。为了解决这个问题可以对上述主从架构优化改成主主复制使每个数据库都能写入操作同时将写入的数据复制到其他数据库中。即数据库之间互为主从复制关系。 主主复制的搭建也比较简单就是在主从复制的操作基础上增加一些配置和步骤即可。 使用两个MySQL服务器节点互为主从进行演示。 1. 基于日志点的主主复制 1.1. 修改节点1的MySQL配置 配置文件路径mysqlconf/master1/my.cnf [mysqld] server_id10 log-binmysql-bin binlog_formatrow auto-increment-increment2 auto-increment-offset1auto-increment-increment设置自增长的步进值一般有n台MySQL设置为n即可auto-increment-offset设置自增长的起始值一般用n台MySQL的顺序号即可 主主备份配置中最重要的就是配置自增长的步进值和起始值。通过设置它们防止多个数据库更新数据时主键重复而造成冲突。 1.2. 修改节点2的MySQL配置 配置文件路径mysqlconf/master2/my.cnf [mysqld] server_id11 log-binmysql-bin binlog_formatrow auto-increment-increment2 auto-increment-offset21.3. 启动两个MySQL docker run -P --name mysqlmaster1 \-v $PWD/mysqldata/master1:/var/lib/mysql \-v $PWD/mysqlconf/master1/my.cnf:/etc/my.cnf \-e MYSQL_ROOT_PASSWORD123456 -d mysql:8docker run -P --name mysqlmaster2 \-v $PWD/mysqldata/master2:/var/lib/mysql \-v $PWD/mysqlconf/master2/my.cnf:/etc/my.cnf \-e MYSQL_ROOT_PASSWORD123456 -d mysql:81.4. 连接MySQL并创建用户 分别连接上两个MySQL并在每一个MySQL上创建复制用户用于后续的配置。 create user repl% identified by 123456; grant replication slave on *.* to repl%; flush privileges;1.5. 配置Master信息 通过docker inspect命令得知当前两个节点的IP分别为172.17.0.3、172.17.0.4。 先登录172.17.0.3查询 mysql show master status; ------------------------------------------------------------------------------- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | ------------------------------------------------------------------------------- | mysql-bin.000003 | 843 | | | | -------------------------------------------------------------------------------登录172.17.0.4使用上述查询的File、Position信息配置Master节点信息 change master to master_host172.17.0.3, master_userrepl, master_password123456, master_log_filemysql-bin.000003, master_log_pos843;同理登录172.17.0.4查询master节点信息然后登录172.17.0.3配置Master。 # 在172.17.0.4上查询 mysql show master status; ------------------------------------------------------------------------------- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | ------------------------------------------------------------------------------- | mysql-bin.000003 | 1577 | | | | -------------------------------------------------------------------------------# 在172.17.0.3上配置 mysql change master to master_host172.17.0.4, master_userrepl, master_password123456, master_log_filemysql-bin.000003, master_log_pos1577;1.6. 开启复制 在两个节点上分别执行start命令开启复制功能 mysql start slave;mysql show slave status;1.7. 复制测试 分别在两个节点上执行一些更新操作如INSERT、UPDATE或DELETE然后去另一个节点查询相关数据是否已变更。 2. 基于GTID的主主复制 这种方式比上述方式更加简单不用去查看日志File和Position直接配置即可。注意复制用户创建两次要配置忽略mysql库也可以创建一次复制用户然后同步信息后另一个库不再创建复制用户。只是这种方式相当于多个节点使用相同的用户账号、密码存在一定的安全风险。 2.1. 修改节点的MySQL配置 配置文件路径mysqlconf/master1/my.cnf [mysqld] server_id1 log-binmysql-bin binlog_formatrow gtid_modeon enforce_gtid_consistencytrue auto-increment-increment2 auto-increment-offset1配置文件路径mysqlconf/master2/my.cnf [mysqld] server_id2 log-binmysql-bin binlog_formatrow gtid_modeon enforce_gtid_consistencytrue auto-increment-increment2 auto-increment-offset22.2. 配置Master信息 change master to master_host172.17.0.3, master_userrepl, master_password123456, master_auto_position1;change master to master_host172.17.0.4, master_userrepl, master_password123456, master_auto_position1;start slave;
http://www.hkea.cn/news/14390386/

相关文章:

  • 网站域名好了下一步问题反馈的网站怎么做
  • 云南能投基础设施投资开发建设有限公司网站代理注册公司注意事项
  • 百度推广送企业网站吗内部网站建设的步骤过程
  • 网站建设 英文怎么说做的一个网站多少钱
  • 办个人网站租空间重庆市建设工程信息网综合网
  • 网站建设教程视频网络推广竞价
  • 找人做logo网站网站备案情况查询
  • 群晖可不可以做网站用wordpress 培训小程序
  • 个人域名可以做企业网站吗石景山郑州阳网站建设
  • 网站建设费算不算固定资产安徽建设干部学校网站
  • 企业网站案例公司游戏下载网站 wordpress
  • 个人网站 备案东营考试信息网官网
  • 沽源网站建设佛山网站制作哪个好薇
  • 珠海企业网站建设价格企业名录免费查询器下载
  • 网站开发 python北京建站模板公司
  • 网站店铺分布图怎么做阿里云备案 网站备案域名
  • 做网站网站建设专业公司哪家好域名查询
  • 海口网站建设设计wordpress主题安装500
  • 有没一些网站只做临床药学公司优化是什么意思
  • 遵义网站建设1w1hdedecms网站后台很卡
  • 网站开发就业趋势手机网站怎么上传图片
  • 电子商务网站建设开发wordpress如何配置伪静态页面
  • 自贡网站建设哪家好品牌推广互联网广告
  • 江苏茂盛建设有限公司网站网站建设公司广州
  • 我想找阿里巴巴做网站推广建筑模型网站
  • 滕州网站制作网站推广有哪些常用的方法
  • 网站所有页面只显示域名运城网站建设多少钱
  • 做个人的网站怎么做用vs做的网站怎么打开吗
  • 网站备案需要的资料运涛网站建设
  • 重庆快速网站建设平台广东省住房城乡建设厅门户网站