CentOS7 下配置MySQL主从复制)
- 一:桥接模式配置静态IP
-
- 1.设置静态IP
- 2.添加网关地址
- 二:安装配置MySQL5.7
- 三:主从配置
-
- 配置主
- 配置从
一:桥接模式配置静态IP 这次做桥接模式配置静态IP遇到问题,在网上查了很多资料,但还是遇到了很多坑,现在来整体记录一下。
1.设置静态IP 1.1 先查看本机IP和网卡信息
1.2 修改虚拟机中对应的网卡信息(在root下):
vim /etc/sysconfig/network-scripts/ifcfg-eth32
注:有的centOS可能初始网卡的名称不是eth32,可以自己修改一下名称
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
UUID="ae679cf5-f894-4e23-8a82-60a220f69299"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.3.200"
PREFIX="24"
GATEWAY="192.168.34.1"
DNS1="114.114.114.114"
IPV6INIT=no
修改其中字段:
BOOTPROTO:static,静态,IP不会改变
NMAE和DEVICE:要和自己网卡名称的一致
IPADDR(ip地址):与主机中IP的前三位一致,最后一位需要修改
GATEWAY(网关):与主机一致
DNS1:最好设置为114.114.114.114(我当时设置的为8.8.8.8,然后ping www.baidu.com 会报unknown host,也就是解析不出来,后来改成114.114.114.114就可以了,当然DNS解析服务主要在/etc/resolv.conf中生效)
1.3 保存后使用命令 service network restart重启网络服务
2.添加网关地址
vim /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=compute
GATEWAY=192.168.3.1#与主机网关一致
如果能ping通网关,但是ping www.baidu.com时若出现“unknown host www.baidu.com”(还是域名的问题),则使用命令“vi /etc/resolv.conf ” , 查看其中的DNS是不是114.114.114.114,不是可以修改为它。
# Generated by NetworkManager
nameserver 114.114.114.114
二:安装配置MySQL5.7 1.下载MySQL安装
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
如果提示wget命令不存在,先执行
yum -y install wget
下载完成后安装源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
2.安装MySQL
yum -y install mysql-community-server
3.启动MySQL服务
systemctl start mysqld
4.设置开机启动
systemctl enable mysqld
systemctl daemon-reload
5.修改 root登录密码
mysql安装完成之后,会在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。
vim /var/log/mysqld.log
文章图片
先复制此密码,用此密码登录root,不过进去后必须马上修改密码,不然会报如下错误:
mysql> select user();
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改:
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
此时会报错
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这是应为密码太简单了,而要求的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。但是为了自己测试不想把密,码设置太难所以我们要改validate_password_policy参数的值。
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
现在密码就没有组合要求了。判断密码的标准就只是基于密码的长度了。不用低于8位就不用看下边这些了。
长度由validate_password_length参数来决定。
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
|8 |
+----------------------------+
1 row in set (0.00 sec)
validate_password_length参数默认为8,它有最小值的限制,最小值为:
validate_password_number_count
+ validate_password_special_char_count
+ (2 * validate_password_mixed_case_count)
其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。
这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。
如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。
6.设置允许远程登录
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
7.退出
mysql> exit
Bye
8.防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload
9.配置mysql默认编码为utf-8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置
character_set_server=utf8
init_connect=‘SET NAMES utf8’
10.重启MySQL
systemctl restart mysqld
三:主从配置 配置主 1.Master主数据库上进行配置,修改配置文件/etc/my.cnf
vim /etc/my.cnf
添加如下:
设置:log-bin=mysql-bin #用yum安装的mysql数据库/etc/my.cnf文件只是满足基本要求,mysql主从时,查看master日志时没有数据显示,因此在/etc/my.cnf文件中添加一行 log-bin=mysql-bin启用二进制文件
设置:server-id = 1 #此值不能和从数据库的一样,
设置:binlog-ignore-db=mysql #表示哪些库不同步,每个不同步的库写一行(这里应为我用的库不多就没有配置这一行)
文章图片
配置完成重新启动Master数据库;
systemctl restart mysql
执行以下命令登陆本地数据库:
mysql -uroot -p123456
查看Master的状态:
show master status;
文章图片
记录File的mysql-bin.000002 与 Position的154,等会要用到。
分配一个数据库账号给Slave从数据库 Server,是从服务器能够访问Master数据库; (应为我直接用的root库,所以就没有重新分配,之后的操作是一样的,只是换个用户名)
grant replication slave on *.* to 'slave'@'centos-node7' identified by '123456'
配置从 修改/etc/my.cnf添加如下:(和上边一样就不截图了)
server-id=2
设置:replicate-do-db = test (可以指定要复制的库 ,可以不配)
设置:replicate-ignore-db = mysql (忽略的库,可以不配)
然后重启服务器
systemctl restart mysql
然后登录:
mysql -uroot -p123456
通过mysql命令配置同步日志指向:
mysql>change master to master_host=‘192.168.3.199’, master_port=3306,
master_user='root',master_password='123456',
master_log_file='mysql-bin.000002',
master_log_pos=154;
master_host 主服务器的IP地址(内网地址)
master_port 主服务器的PORT端口
master_log_file 和主服务器show master status中的File字段值相同
master_log_pos 和主服务器show master status中的Position字段值相同
mysql>start slave;
#启动服务,stop slave; 停止服务,出错时先停止,再重新配置
mysql>show slave status\G;
【配置|CentOS7 下配置MySQL主从复制】查看SLAVE状态,\G结果纵向显示。必须大写,这个命令无法再sqlyog中使用
systemctl restart mysql.service#重启服务
推荐阅读
- Linux|Linux——进程间通信(管道)
- CentOS7配置静态IP,拥有上网功能
- Java毕业设计项目实战篇|Java项目:医院心理咨询问诊系统(java+Spring+Maven+mybatis+Vue+mysql)
- mysql|Mysql窗口函数-自用
- MYSQL|MySQL - SQL窗口函数
- 数据库|mysql窗口函数中的滑动窗口
- mysql|mysql 窗口函数 求和_mysql窗口函数
- Mysql|mysql窗口函数-累计求和sum over
- 工具教程|MySQL8.0.26安装超详细教程〔超详细〕