DNS+NamedManager双机高可用的配置方案:
安装步骤:
1.安装系统依赖插件和httpd包
2.安装mysql5.7并配置双主模式
3.下载并安装namedmanager
4.安装和配置bind9
5.安装keepalived
主机名 ip地址
dns01.kevin.cn 192.168.10.202
dns02.kevin.cn 192.168.10.203
VIP地址:192.168.10.190
两台机器做好主机名及hosts绑定
[root@dns01 ~]# vim /etc/hosts
......
192.168.10.202 dns01.kevin.cn
192.168.10.203 dns02.kevin.cn
192.168.10.190 dns.kevin.cn
四台机器都是centos7.9系统
[root@dns01 ~]# cat /etc/redhat-release
CentOS release 7.9 (Final)
关闭四台机器的iptables和selinux
[root@dns01 ~]# systemctl stop firewalld
[root@dns01 ~]# vim /etc/sysconfig/selinux
......
SELINUX=disabled
同步四台机器的系统时间
[root@dns01 ~]# yum install -y ntpdate
[root@dns01 ~]# ntpdate ntp1.aliyun.com
----------------------------------------------------------------
一 安装系统依赖插件和httpd包(在192.168.10.202和192.168.10.203两台机器上同样操作)
1[root@dns01 ~]# yum install perl httpd mod_ssl php php-intl php-ldap php-mysql php-soap php-xml
2修改/etc/httpd/conf/httpd.conf配置文件
vim /etc/httpd/conf/httpd.conf #修改下面两行配置
ServerName dns.kevin.cn:80
#Require all denied 注释掉此行,不然访问会报权限错误
----------------------------------------------------------------
----------1.mysql5.7--yum方式安装配置--------
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
启动mysql服务
systemctl start mysqld.service
查看默认的mysql密码
grep "password" /var/log/mysqld.log
进入mysql数据库:
mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决方法就是修改密码为规范复杂的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'z?guwrBhH7p>';
mysql> SHOW VARIABLES LIKE 'validate_password%';
这时候我们要把密码规则改一下,执行下面sql就可以了:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如1234之类的。到此数据库的密码设置就完成了。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
yum -y remove mysql57-community-release-el7-10.noarch
到此mysql5.7安装完成
------------------------------------------------------------------
-------2.mysql配置双主模式-------
配置两台机器的mysql主主关系
-------192.168.10.202机器上的mysql设置--------
[root@dns01 ~]# cp /etc/my.cnf /etc/my.cnf.bak
[root@dns01 ~]# vim /etc/my.cnf #在[mysqld]区域里添加下面几行内容
......
server-id = 1
log-bin = mysql-bin
sync_binlog = 1
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 1
slave-skip-errors = all
重启mysqld服务
[root@dns01 log]# systemctl restart mysqld
数据同步授权,这样I/O线程就可以以这个用户的身份连接到主服务器,并且读取它的二进制日志。
[root@dns01 log]# mysql -uroot -proot
......
mysql> grant replication slave,replication client on *.* to slavecp@'192.168.10.%' identified by "slavecp@123";
mysql> flush privileges;
最好将库锁住,仅仅允许读,以保证数据一致性;待主主同步环境部署后再解锁;
锁住后,就不能往表里写数据,但是重启mysql服务后就会自动解锁!
mysql> flush tables with read lock;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 365 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
-------192.168.10.203机器上的mysql设置---------
[root@dns02 ~]# cp /etc/my.cnf /etc/my.cnf.bak
[root@dns02 ~]# vim /etc/my.cnf
.......
server-id = 2
log-bin = mysql-bin
sync_binlog = 1
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 2
slave-skip-errors = all
[root@dns02 ~]# systemctl restart mysqld
[root@dns02 ~]# mysql -uroot -proot
.......
mysql> grant replication slave,replication client on *.* to slavecp@'192.168.10.%' identified by "slavecp@123";
mysql> flush privileges;
mysql> flush tables with read lock;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 365 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
---------192.168.10.202服务器做同步操作--------
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='192.168.10.203',master_user='slavecp',master_password='slavecp@123',master_log_file='mysql-bin.000001',master_log_pos=365;
Query OK, 0 rows affected (0.20 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status \G;
.......
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.203
Master_User: slavecp
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 365
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
.......
.......
---------------192.168.10.203服务器做同步操作---------------
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to master_host='192.168.10.202',master_user='slavecp',master_password='slavecp@123',master_log_file='mysql-bin.000001',master_log_pos=365;
Query OK, 0 rows affected (0.18 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.202
Master_User: slavecp
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 365
Relay_Log_File:


973





