主从mysql安装配置
前期准备
- 准备一台虚拟机作为模板机
- 关闭selinux与防火墙
- 克隆出三台虚拟机
- 根据实际情况分配ip
ip | 主机名 | 节点名称 |
---|---|---|
172.16.1.30 | mysql1 | 数据库主节点 |
172.16.1.40 | mysql2 | 数据库从节点 |
172.16.1.50 | nginx | Nginx服务节点 |
172.16.1.60 | php | PHP环境节点 |
准备环境
mysql1节点
Last login: Tue Jan 19 23:20:21 2021
[root@localhost ~]# hostnamectl set-hostname mysql1
[root@localhost ~]# bash
[root@mysql1 ~]#
[root@mysql1 ~]# vi /etc/hosts
172.16.1.30 mysql1
172.16.1.40 mysql2
mysql2节点
Last login: Tue Jan 19 23:19:27 2021
[root@localhost ~]# hostnamectl set-hostname mysql2
[root@localhost ~]# bash
[root@mysql2 ~]#
[root@mysql2 ~]# vi /etc/hosts
172.16.1.30 mysql1
172.16.1.40 mysql2
数据库双节配置yum
[root@mysql2 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bk
[root@mysql2 ~]# vi /etc/yum.repos.d/CentOS-Media.repo
把 enabled=0 这一行 改 enabled=1
[root@mysql2 ~]# mkdir /media/CentOS
[root@mysql2 ~]# mount /dev/sr0 /media/CentOS/
[root@mysql2 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* c7-media:
repo id repo name status
c7-media CentOS-7 - Media 3,723
repolist: 3,723
其他节点都同上
[root@mysql2 ~]# yum -y install mariadb mariadb-server
[root@mysql2 ~]# systemctl start mariadb
[root@mysql2 ~]# systemctl enable mariadb
[root@mysql2 ~]# mysql_secure_installation
把mariadb密码设置为000000,mysql1同上
配置主数据库
[root@mysql1 ~]# vi /etc/my.cnf
[root@mysql1 ~]# systemctl restart mariadb
[mysqld] # 在这一栏后追加
log_bin = mysql-bin
binlog_ignore_db = mysql
server_id = 30
[root@mysql1 ~]# systemctl restart mariadb
[root@mysql1 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.44-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by "000000";
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant replication slave on *.* to 'user'@'mysql2' identified by "000000";
Query OK, 0 rows affe