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

网站建设与管理属于计算机专业吗做网站的数据从哪里来

网站建设与管理属于计算机专业吗,做网站的数据从哪里来,购物网站促销方案,企业展厅的设计公司价格文章目录 一、准备工作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.w-s-a.com/news/442667/

相关文章:

  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页
  • 多语言外贸网站制作苏州建设网站微信公众号
  • 用wordpress建站学什么百度给企业做网站吗
  • 福建城乡建设网站做数码测评的网站
  • 东海县建设局网站wordpress 好用的主题
  • 网站图片设计制作制作一个门户网站需要多少钱
  • 虚拟币交易网站源码自己给网站做支付接口
  • 免费的seo网站在线 crm
  • 绍兴市高速公路建设指挥部网站网站主页和子页风格如何统一
  • 获取网站状态网站租金可以做办公费吗
  • 网站开发执行什么标准号wordpress主题 表白
  • 杭州网站推广与优化凡科网是免费的吗
  • 公司网站的重要性门户网站推广介绍方案
  • 做金融网站看那些素材江门网红打卡景点蓬江区
  • 饮食网站模板建网站中企动力优
  • 郑州 制造 网站东平企业建站公司
  • 天津设计师网站大全展示型网站搭建
  • 南宁网站建设 传导网站开发平台开发公司
  • 网站建设好处上海建设工程网站
  • 黑河哈尔滨网站建设太原网站制作定制开发
  • 建站做网站香河住房与建设局网站
  • 如何制造一个网站域名分类网站
  • 解析视频的网站怎么做凡科网快图
  • 企业网站优化问题接单app平台有哪些
  • 怎么做网站后缀识别符号才不会变什么是电子商务网站建设
  • 中山 五金 骏域网站建设专家专门用来制作网页的软件是什么
  • 怎么做刷东西的网站数据分析软件工具有哪些
  • 官方购物网站正品交易网站域名
  • lol网站建设seo 网站太小