MySQL双组一从高可用
环境准备
主机名 | ip | 环境说明 | VIP | 操作系统 |
---|---|---|---|---|
nfs | 192.168.10.130 | nfs服务器 | CentOS-8 | |
m1 | 192.168.10.131 | mysql、keepalived | 192.168.10.250 | CentOS-8 |
m2 | 192.168.10.132 | mysql、keepalived | 192.168.10.250 | CentOS-8 |
slave | 192.168.10.133 | mysql(从) | CentOS-8 |
m1和m2为主数据库,slave为从数据库
关闭防火墙和selinux(所有主机上都要操作)
[root@nfs ~]# systemctl disable --now firewalld
[root@nfs ~]# setenforce 0
[root@nfs ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
配置yum源(所有主机上都要操作)
[root@nfs ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@nfs ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@nfs ~]# yum clean all
[root@nfs ~]# yum makecache
在需要部署keepalived服务的两台主机上配置epel源(只在m1和m2主机上操作)
[root@m1 ~]# yum -y install https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
[root@m1 ~]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@m1 ~]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
部署nfs
安装nfs
[root@nfs ~]# yum -y install nfs-utils
创建公共目录
[root@nfs ~]# mkdir /opt/data
配置export,添加可挂载的客户端
[root@nfs ~]# vi /etc/exports
[root@nfs ~]# cat /etc/exports
/opt/data 192.168.10.131(rw,sync,no_root_squash)
/opt/data 192.168.10.132(rw,sync,no_root_squash)
[root@nfs ~]#
创建mysql用户和组
[root@nfs ~]# groupadd -r -g 306 mysql
[root@nfs ~]# useradd -r -M -s /sbin/nologin -g 306 -u 306 mysql
[root@nfs ~]# id mysql
uid=306(mysql) gid=306(mysql) groups=306(mysql)
[root@nfs ~]#
给data目录添加mysql属主和属组
[root@nfs ~]# chown -R mysql.mysql /opt/data/
[root@nfs ~]# ll /opt/
total 0
drwxr-xr-x 2 mysql mysql 6 Oct 21 16:21 data
[root@nfs ~]#
启动服务
[root@nfs ~]# systemctl restart rpcbind.service
[root@nfs ~]# systemctl restart nfs-server.service
[root@nfs ~]# systemctl enable nfs-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@nfs ~]#
安装MySQL,并挂载nfs (m1、m2和slave都是同样的操作,slave不需要挂载nfs)
创建mysql用户
[root@m1 ~]# groupadd -r -g 306 mysql
[root@m1 ~]# useradd -r -M -s /sbin/nologin -g 306 -u 306 mysql
二进制安装mysql
下载mysql二进制包
[root@m1 ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
[root@m1 ~]# ls
anaconda-ks.cfg mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
[root@m1 ~]#
[root@m1 ~]# scp mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 192.168.10.132:/root/
[root@m1 ~]# scp mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 192.168.10.133:/root/
解压
[root@m1 opt]# tar xf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@m1 opt]# ls /usr/local/
bin etc games include lib lib64 libexec mysql-5.7.39-linux-glibc2.12-x86_64 sbin share src
[root@m1 opt]# ln -sv /usr/local/mysql-5.7.39-linux-glibc2.12-x86_64/ /usr/local/mysql
'/usr/local/mysql' -> '/usr/local/mysql-5.7.39-linux-glibc2.12-x86_64/'
[root@m1 opt]#
修改目录/usr/local/mysql的属主属组
[root@m1 ~]# chown -R mysql:mysql /usr/local/mysql
添加环境变量
[root@m1 ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@m1 ~]# source /etc/profile.d/mysql.sh
[root@m1 ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@m1 ~]#
建立数据存放目录
[root@m1 ~]# mkdir /opt/data
[root@m1 ~]# chown -R mysql.mysql /opt/data/
安装nfs,并设置开机自启(只在m1和m2上操作、不需要在从库上操作)
[root@m1 ~]# yum -y install nfs-utils.x86_64
[root@m1 ~]# systemctl enable --now nfs-server.service
[root@m1 ~]# systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Active: active (exited) since Sat 2023-10-21 17:01:10 CST; 13min ago
Process: 11277 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exi>
Process: 11266 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Process: 11264 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 11277 (code=exited, status=0/SUCCESS)
挂载nfs
[root@m1 ~]# vim /etc/fstab
.......
192.168.10.130:/opt/data /opt/data nfs defaults,_netdev 0 0 #最后一行添加nfs主机的ip地址
配置mysql软链接
[root@m1 ~]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
'/usr/local/include/mysql' -> '/usr/local/mysql/include/'
[root@m1 ~]#
[root@m1 ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@m1 ~]# ldconfig
[root@m1 ~]#
[root@m1 ~]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@m1 ~]#
生成my.cnf配置文件
[root@m1 ~]# vim /etc/my.cnf
[root@m1 ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[root@m1 ~]#
配置服务启动脚本
[root@m1 ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@m1 ~]#
[root@m1 ~]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@m1 ~]#
[root@m1 ~]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld
添加软链接
[root@m1 ~]# ln -s libncurses.so.6.1 /usr/lib64/libncurses.so.5
[root@m1 ~]# ln -s libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
以上步骤要在m1、m2和从数据库上操作
初始化数据库
由于配了nfs文件共享,只需要初始化一台主数据库,另外一台主数据库会自动同步文件
[root@m1 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
......
2023-10-22T09:49:55.664947Z 1 [Note] A temporary password is generated for root@localhost: uq)ty=0a+2#Y
查看/opt/data目录
m1
[root@m1 ~]# ls /opt/data/
auto.cnf client-cert.pem ibdata1 mysql public_key.pem sys
ca-key.pem client-key.pem ib_logfile0 performance_schema server-cert.pem
ca.pem ib_buffer_pool ib_logfile1 private_key.pem server-key.pem
m2
[root@m2 ~]# ls /opt/data/
auto.cnf client-cert.pem ibdata1 mysql public_key.pem sys
ca-key.pem client-key.pem ib_logfile0 performance_schema server-cert.pem
ca.pem ib_buffer_pool ib_logfile1 private_key.pem server-key.pem
先在两台主机上安装一个库文件包
[root@m1 ~]# yum -y install ncurses-compat-libs
[root@m2 ~]# yum -y install ncurses-compat-libs
启动数据库,修改密码
#先启动m1的数据库服务,由于两个数据库完全一模一样,所以只可以启动一台,不可以同时启动
[root@m2 ~]# service mysqld stop #关闭m2的数据库服务
ERROR! MySQL server PID file could not be found!
[root@m1 ~]# service mysqld start #开启m1的数据库
Starting MySQL.Logging to '/opt/data/m1.err'.
SUCCESS!
[root@m1 ~]# mysql -uroot -p'X?g0iI20qj.d' #使用临时密码登录
mysql> set password = password('12345678'); #修改密码
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit
Bye
使用修改后的密码登录m2上的数据库
#由于两台主机的主数据库文件一样,只能同时启动一个mysql服务,先停止m1的数据库服务
[root@m1 ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@m1 ~]#
启动m2上的mysql服务,登录mysql
[root@m2 ~]# service mysqld start #开启m2的数据库
[root@m2 ~]# mysql -uroot -p12345678
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit
[root@m2 ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@m2 ~]#
登陆成功,说明m1和m2上的主数据库是同步的
mysql主从数据库配置
在主数据库里创建一个同步账号授权给从数据库使用
[root@m1 ~]# service mysqld start
Starting MySQL. SUCCESS!
[root@m1 ~]# mysql -uroot -p12345678
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant replication slave on *.* to 'repl'@'192.168.10.133' identified by '666666';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@m1 ~]#
在m1上修改my.cnf配置文件添加内容,重启mysql服务
[root@m1 ~]# vi /etc/my.cnf
[root@m1 ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
server-id = 10 #添加这两行
log-bin = mysql_bin
[root@m1 ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@m1 ~]# service mysqld stop
Shutting down MySQL.
. SUCCESS!
[root@m1 ~]#
在m2上修改my.cnf配置文件添加内容,重启mysql服务
[root@m2 ~]# vi /etc/my.cnf
[root@m2 ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
server-id = 11 #添加这两行
log-bin = mysql_bin
[root@m2 ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@m2 ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@m2 ~]#
部署keepalived高可用
安装keepalived
[root@m1 ~]# yum -y install keepalived
[root@m2 ~]# yum -y install keepalived
配置keepalived脚本监控负载均衡机状态
在m1上创建脚本并加上执行权限
[root@m1 ~]# mkdir /scripts
[root@m1 ~]# vi /scripts/check_mysql.sh
[root@m1 ~]# cat /scripts/check_mysql.sh #这个脚本的作用是用来监控mysql的状态,当mysql服务关闭时同时关闭
#!/bin/bash
mysql_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bmysql\b'|wc -l)
if [ $mysql_status -lt 1 ];then
systemctl stop keepalived
fi
[root@m1 ~]# chmod +x /scripts/check_mysql.sh
编辑keepalived.conf配置文件
[root@m1 ~]# cp /etc/keepalived/keepalived.conf /opt/
[root@m1 ~]# vi /etc/keepalived/keepalived.conf
[root@m1 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id mysql01
}
vrrp_script check_mysql {
script "/scripts/check_mysql.sh"
interval 1
weight -50
}
vrrp_instance VI_1 {
state m
interface ens160
virtual_router_id 80
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.10.250
}
track_script {
check_mysql
}
}
virtual_server 192.168.10.250 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.10.131 3306 {
weight 1
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.10.132 3306 {
weight 1
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@m1 ~]#
设置keepalived服务开机自启,并查看VIP
[root@m1 ~]# service mysqld start
Starting MySQL. SUCCESS!
[root@m1 ~]#
[root@m1 ~]# systemctl enable --now keepalived
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /usr/lib/systemd/system/keepalived.service.
[root@m1 ~]#
[root@m1 ~]# ip a #VIP已经存在
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:e4:b6:ad brd ff:ff:ff:ff:ff:ff
inet 192.168.10.131/24 brd 192.168.10.255 scope global dynamic noprefixroute ens160
valid_lft 1665sec preferred_lft 1665sec
inet 192.168.10.250/32 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee4:b6ad/64 scope link noprefixroute
valid_lft forever preferred_lft forever
在m2上创建脚本并加上执行权限
[root@m2 ~]# mkdir /scripts
[root@m2 ~]# vim /scripts/notify.sh
[root@m2 ~]# cat /scripts/notify.sh
#!/bin/bash
case "$1" in
m)
mysql_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bmysql\b'|wc -l)
if [ $mysql_status -lt 1 ];then
service mysqld start
fi
;;
backup)
mysql_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bmysql\b'|wc -l)
if [ $mysql_status -gt 0 ];then
service mysqld stop
fi
;;
*)
echo "Usage:$0 m|backup"
;;
esac
[root@m2 ~]# chmod +x /scripts/notify.sh
[root@m2 ~]# ll /scripts/
total 4
-rwxr-xr-x 1 root root 422 Oct 22 19:30 notify.sh
[root@m2 ~]#
设置keepalived配置文件
[root@m2 ~]# cp /etc/keepalived/keepalived.conf /opt/
[root@m2 ~]# vi /etc/keepalived/keepalived.conf
[root@m2 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id mysql02
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 80
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.10.250
}
notify_m "/scripts/notify.sh m"
notify_backup "/scripts/notify.sh backup"
}
virtual_server 192.168.10.250 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.10.133 3306 {
weight 1
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.10.132 3306 {
weight 1
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@m2 ~]#
配置从数据库
先进入主库查看状态
mysql> show m status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000004 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
修改my.cnf配置文件
[root@slave ~]# vi /etc/my.cnf
[root@slave ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
server-id = 20
relay-log = myrelay
[root@slave ~]#
初始化从数据库,并启动数据库
[root@slave ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
.....
2023-10-22T11:44:03.323535Z 1 [Note] A temporary password is generated for root@localhost: *rXGu#xew0hl
[root@slave ~]# service mysqld start
Starting MySQL.Logging to '/opt/data/slave.err'.
SUCCESS!
[root@slave ~]#
使用临时密码登录,修改数据库密码
[root@slave ~]# mysql -uroot -p'*rXGu#xew0hl'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
mysql> set password = password('12345678');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit;
Bye
[root@slave ~]#
配置并启动主从数据库复制
[root@slave ~]# mysql -uroot -p12345678
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql> change m to
-> m_host='192.168.10.250',
-> m_user='repl',
-> m_password='666666',
-> m_log_file='mysql_bin.000004',
-> m_log_pos=602;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql>
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for m to send event
m_Host: 192.168.10.250
m_User: repl
m_Port: 3306
Connect_Retry: 60
m_Log_File: mysql_bin.000004
Read_m_Log_Pos: 604
Relay_Log_File: myrelay.000002
Relay_Log_Pos: 320
Relay_m_Log_File: mysql_bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
测试验证
在m1上创建一个数据库
[root@m1 ~]# mysql -uroot -12345678
mysql: [Warning] Using a password on the command line interface can be insecure.
...
mysql> create database huang;
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| huang |
+--------------------+
5 rows in set (0.00 sec)
mysql>
mysql> quit;
Bye
[root@m1 ~]#
在从数据库查看,数据同步成功
[root@slave ~]# mysql -uroot -12345678 -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| huang |
+--------------------+
[root@slave ~]#
模拟宕机
当手动关闭m1上的mysqld服务,脚本会自动执行停掉keepalived服务
[root@m1 ~]# service mysqld stop
Shutting down MySQL............ SUCCESS!
[root@m1 ~]#
[root@m1 ~]# systemctl status keepalived
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Tue 2023-10-17 23:28:46 CST; 11s ago
Process: 38343 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
...
[root@m1 ~]#
[root@m1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:80:df:b8 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.131/24 brd 192.168.10.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe80:dfb8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@m1 ~]#
此时VIP被m2抢了过来,同时mysql服务自动开启
[root@m2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:18:11:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.10.132/24 brd 192.168.200.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.10.250/32 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe18:118c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@m2 ~]#
[root@m2 ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
...
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:20048 [::]:*
[root@m2 ~]#
在m2上创建数据库
[root@m2 ~]# mysql -uroot -p12345678 -e "create database hte;"
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@m2 ~]#
[root@m2 ~]# mysql -uroot -p12345678 -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| information_schema |
| hte |
| mysql |
| performance_schema |
| sys |
| huang |
+--------------------+
[root@m2 ~]#
数据同步成功
[root@slave ~]# mysql -uroot -p12345678 -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| information_schema |
| hte |
| mysql |
| performance_schema |
| sys |
| huang |
+--------------------+
[root@slave ~]#