公司网站建设基本流程图,西宁高端网站建设公司,wordpress 加入页面,广告设计与制作包括哪些内容概述#xff1a; 将主库的数据 变更同步到从库#xff0c;从而保证主库和从库数据一致。 它的作用是 数据备份#xff0c;失败迁移#xff0c;读写分离#xff0c;降低单库读写压力 原理#xff1a; 主服务器上面的任何修改都会保存在二进制日志#xff08; Bin-log日志…概述 将主库的数据 变更同步到从库从而保证主库和从库数据一致。 它的作用是 数据备份失败迁移读写分离降低单库读写压力 原理 主服务器上面的任何修改都会保存在二进制日志 Bin-log日志 里面。 从服务器上面启动一个I/O线程 连接到主服务器上面请求读取二进制Bin-log日志然后把读取到的二进制日志写到本地的Realy-log中继日志里面。 从服务器上面同时开启一个SQL线程读取Realy-log中继日志如果发现有更新立即把更新的内容在本机的数据库上面执行一遍。 搭建 1.准备服务器 2.配置主库 3.配置从库 4.测试主从复制 实践
1.首先准备俩台安装MySQL的纯净服务器 主库192.168.231.153 从库192.168.231.136 关闭防火墙与selinux 在俩台服务器做域名解析 vim /etc/hosts 192.168.231.153 master 192.168.231.136 slave 俩台服务器都做如下操作
同步时间修改时区
#ntpdate time.windows.com
#timedatectl set-timezero Asia/Shanghai修改主机名
#hostnamectl set-hostname zhuku
#hostnamectl set-hostname congku配置静态ip
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
将dhcp改为static
IPADDR本机ip
GATEWAY192.168.231.2
NETMASK255.255.255.0
DNS1114.114.114.114
DNS28.8.8.8
清理环境在安装MySQL之前
俩台服务器都需要做的操作
[rootslave ~]#yum -y erase rpm -qa | grep -E mysql|mariadb
[rootslave ~]# rm -rf /etc/my* /var/lib/mysql* /var/log/mysql*
#检查一下环境清理干净没有
[rootslave ~]# [[ ! -f /etc/my.cnf ]] [[ ! -d /var/lib/mysql ]] [[ ! -f /usr/bin/mysql ]] echo 数据库已清除 || echo 数据库未清理
安装mysql
启动服务
# systemctl start mysqld
寻找密码
grep password /var/log/mysqld.log
也可以
mysqladmin -pawk /temporary password/{p$NF}END{print p} /var/log/mysqld.log password Qianfeng123
这条命令是直接登录MySQL顺便将密码修改以后 可以登录也可以是,获取新的MySQL的密码
# awk /temporary password/{p$NF}END{print p} /var/log/mysqld.log
2.配置主库
创建日志目录并赋予权限
# mkdir /var/log/mysql
# chown -R mysql.mysql /var/log/mysql
编辑主库服务器的配置文件 /etc/my.cnf
[mysqld]
log-bin/var/log/mysql/mysql-bin #启用二进制文件日志记录
server-id1 # 服务id保证整个集群环境唯一
read-only0 #1是只读0是读写
重启服务
# systemctl restart mysqld
在主库登录MySQL创建用户
为了用户在从库中用来连接主库的账号 mysql grant replication slave on *.* to 用户名ip identified by 密码;
这是为用户分配主从复制的权限并创建用户刷新
mysql flush privileges;
查看二进制日志坐标
mysql show master status;
-------------------------------------------------------------------------------
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
-------------------------------------------------------------------------------
| mysql-bin.000001 | 313 | | | |
-------------------------------------------------------------------------------
1 row in set (0.00 sec)3.配置从库
编辑从库服务器的配置文件my.cnf
[mysqld]
server-id2
read-only1 #普通用户一般只有只读可以不写
重启mysql服务
# systemctl restart mysqld
登录mysql
此处登录的是你从库mysql的root用户登录的账号与密码不是在主库创建的用户
mysql change master to master_host主库的ipmaster_user连接主库用户名,master_password连接主库用户的密码,master_log_file日志文件名,mastre_log_pos日志位置;日志位置就是在主库show master status查出来那个数字 ----313-------------------------------------------------------------------------------
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
-------------------------------------------------------------------------------
| mysql-bin.000001 | 313 | | | |
-------------------------------------------------------------------------------当你第一次记不住这么多命令时可以直接
mysql ? change master to出现下列直接复制CHANGE MASTER TOMASTER_HOSTsource2.example.com,MASTER_USERreplication,MASTER_PASSWORDpassword,MASTER_PORT3306,MASTER_LOG_FILEsource2-bin.001,MASTER_LOG_POS4,MASTER_CONNECT_RETRY10;然后 mysql ?e
进入文本编辑器内将复制的 内容进行修改 然后保存即可
启动
mysql start slave;
查看主从同步状态
mysql show slave status\G*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.231.153 -----主库的ipMaster_User: itcast -----用来连接主库的用户名 Master_Port: 3306 ------端口Connect_Retry: 60Master_Log_File: mysql-bin.000001 -----二进制日志名字Read_Master_Log_Pos: 313Relay_Log_File: congku-relay-bin.000002 -----中继日志名字Relay_Log_Pos: 479Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: Yes --------主要看俩个IO线程是否成功启动Slave_SQL_Running: Yes --------看SQL线程是否成功启动Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table:
4.测试主从复制
主库
mysql show databases;
--------------------
| Database |
--------------------
| information_schema |
| company |
| db1 |
| mysql |
| performance_schema |
| school |
| sys |
| xian |
--------------------
8 rows in set (0.00 sec)从库
mysql show databases;
--------------------
| Database |
--------------------
| information_schema |
| mysql |
| performance_schema |
| sys |
| xian |
--------------------
5 rows in set (0.00 sec)这是因为配置主从复制是在主库已经存在这些库以后配置的 !!!!在主库创建库创建表写入数据
mysql create database db2;
mysql create table db2.zhucong(id int,name varchar(50),age int);mysql insert into zhucong(id,name,age) values(1,aaa,18),values(2,bbb,19) ,(3,ccc,20);mysql select * from zhucong;
------------------
| id | name | age |
------------------
| 1 | aaa | 18 |
| 2 | bbb | 19 |
| 3 | ccc | 20 |
------------------
3 rows in set (0.00 sec)!!!在从库查看
mysql show databases;
--------------------
| Database |
--------------------
| information_schema |
| db2 |
| mysql |
| performance_schema |
| sys |
| xian |
--------------------mysql use db2;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql show tables;
---------------
| Tables_in_db2 |
---------------
| zhucong |
---------------
1 row in set (0.00 sec)mysql select * from zhucong;
------------------
| id | name | age |
------------------
| 1 | aaa | 18 |
| 2 | bbb | 19 |
| 3 | ccc | 20 |
------------------修改主库中的表数据查看从库是否有变化
主库
mysql update zhucong set age21;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0mysql select * from zhucong;
------------------
| id | name | age |
------------------
| 1 | aaa | 21 |
| 2 | bbb | 21 |
| 3 | ccc | 21 |
------------------
3 rows in set (0.00 sec)查看从库
mysql select * from zhucong;
------------------
| id | name | age |
------------------
| 1 | aaa | 21 |
| 2 | bbb | 21 |
| 3 | ccc | 21 |
------------------
3 rows in set (0.00 sec)配置好主从复制以后从库记录的只是主库以后的日志文件要想从库备份主库之前的可以先将主库之前的数据库文件备份然后拷贝到从库然后从库在进行恢复即可。 当从库所在的服务器关闭后主库所执行操作当从库服务器再次开启时从库服务器会自动同步主库服务器 附加
获取本机的uuid
[rootslave ~]# uuidgen
b392cd4c-9e3d-4596-9a72-0805c2162c8f修改本机的uuid
# vim /var/lib/mysql/auto.cnf
base64加密与解密
[rootslave mysql]# echo “马龙” | base64
4oCc6ams6b6Z4oCdCg
[rootslave mysql]# echo 4oCc6ams6b6Z4oCdCg | base64 -d
“马龙”