MySQL双主一从高可用

MySQL双组一从高可用

环境准备

主机名ip环境说明VIP操作系统
nfs192.168.10.130nfs服务器CentOS-8
m1192.168.10.131mysql、keepalived192.168.10.250CentOS-8
m2192.168.10.132mysql、keepalived192.168.10.250CentOS-8
slave192.168.10.133mysql(从)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 ~]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值