msyql主备安装

准备

master172.16.3.89
slave172.16.3.90

安装mysql(两台服务器相同)

1.下载msyql
地址:http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.gz
2.下载解压

cd /usr/local/src
wget  http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.gz

3.移动文件夹

mv mysql-8.0.23-linux-glibc2.12-x86_64 /usr/local/mysql

4.创建数据目录

cd /usr/local/mysql
mkdir data

5.创建mysql用户和组,并且给文件加添加用户和组

groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql

6.初始化数据库

mkdir mysql_install_db
chmod 777 mysql_install_db 
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化后记录密码:
2021-07-25T09:30:02.157926Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2BJ6xuglQv,E
7.添加或修改 my.cnf

vi  etc/my.cnf

修改为:

[mysqld]
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    socket = /usr/local/mysql/mysql.sock
    character-set-server=utf8
    port = 3306
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
   default_authentication_plugin=mysql_native_password
[client]
   socket = /usr/local/mysql/mysql.sock
   default-character-set=utf8

8.添加msyql服务,并设置开机启动

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld   ##拷贝服务
chmod +x /etc/init.d/mysqld            
chkconfig --add mysqld               ##设置开会启动服务

9.修改环境变量

vi /etc/profile

最下面添加以下:

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

立即生效环境变量

source /etc/profile

10.启动服务,检查服务

 service mysqld start
[root@qfc-ntp support-files]# ps -ef | grep mysql
root        2620       1  0 17:50 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/qfc-ntp.pid
mysql       2808    2620  0 17:50 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=qfc-ntp.err --pid-file=/usr/local/mysql/data/qfc-ntp.pid --socket=/usr/local/mysql/mysql.sock --port=3306
root        3075    2202  0 17:54 pts/0    00:00:00 grep --color=auto mysql

11.登录mysql

[root@qfc-ntp ~]# mysql -uroot -p          
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

查看依赖服务

[root@qfc-ntp ~]# cd /usr/local/mysql/bin/
[root@qfc-ntp bin]# ldd mysql             
        linux-vdso.so.1 (0x00007ffc7b1bf000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f784b25e000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f784b056000)
        libcrypto.so.1.1 => /usr/local/mysql/bin/./../lib/private/libcrypto.so.1.1 (0x00007f784aba4000)
        libssl.so.1.1 => /usr/local/mysql/bin/./../lib/private/libssl.so.1.1 (0x00007f784a914000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f784a710000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f784a4f9000)
        libtinfo.so.5 => not found
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f784a164000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f7849de2000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f7849bca000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f7849805000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f784b47e000)

创建软连接

ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

再次确认
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fa619102000)
使用初始密码登录:

 mysql -uroot -p2BJ6xuglQv,E

修改初始面(要么无法操作):

mysql> alter user root@localhost identified by '123456';

12远程登录

mysql> use mysql;
Database changed
mysql> update user set host='%' where user='root' limit 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

添加防火墙

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

Navicat测试连接:
在这里插入图片描述

配置主从复制

1.主库数据库配置
修改my.cnf
[root@Zabbix ~]# cat /etc/my.cnf

[mysqld]
    basedir = /usr/local/mysql   
    datadir = /usr/local/mysql/data
    socket = /usr/local/mysql/mysql.sock
    character-set-server=utf8
    port = 3306
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
   default_authentication_plugin=mysql_native_password
   server-id = 1
   log-bin = mysql-bin
   binlog_format = mixed 

   max_binlog_size = 100m #binlog每个日志文件大小
   binlog_cache_size = 4m 
   max_binlog_cache_size= 512m 
   binlog-ignore-db=mysql 
   slave-skip-errors = all 
[client]
   socket = /usr/local/mysql/mysql.sock
   default-character-set=utf8

进入master的数据库,为master创建复制用户

create user 'slaveuser'@'172.16.3.%' identified by 'ysp_password';
grant replication slave on *.* to 'slaveuser'@'172.16.3.%';
FLUSH PRIVILEGES;

锁表备份传输到备机

mysql>flush  tables  with  read  lock;
show  variables  like  "%timeout%";   ###查看锁表时间
mkdir  /server/backup/  -p  
mysqldump  -uroot  -p"123456"     -A   > /server/backup/mysql_bak.sql ##全量备份
scp /server/backup/mysql_bak.sql root@172.16.3.90:/usr/local/src

查看master状态记录下mysql-bin和Position

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      156 |              | mysql            |                   |
+------------------+----------+--------------+------------------+----------              
1 row in set (0.00 sec)

mysql>unlock  tables;   ###导出记录后解锁

2.设置从数据库
修改my.cnf

[root@qfc-ntp ~]# cat /etc/my.cnf 
[mysqld]
    basedir = /usr/local/mysql   
    datadir = /usr/local/mysql/data
    socket = /usr/local/mysql/mysql.sock
    character-set-server=utf8
    port = 3306
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
   default_authentication_plugin=mysql_native_password
  server-id =2
  log-bin=mysql-bin
  [client]
   socket = /usr/local/mysql/mysql.sock
   default-character-set=utf8

重启从数据库

server mysqld restart

还原从数据库

 cd /usr/local/src/
 mysql  -uroot  -p"123456"  <  mysql_bak.sql

设置主从

CHANGE  MASTER  TO
MASTER_HOST = '172.16.3.89',
MASTER_USER = 'slaveuser',
MASTER_PASSWORD = '123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=156;

start  slave;

查看状态

mysql> show  slave  status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.16.3.89
                  Master_User: slaveuser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 25984174
               Relay_Log_File: qfc-ntp-relay-bin.000004
                Relay_Log_Pos: 25984389
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

Slave_IO_Running:和 Slave_SQL_Running显示yes,表示主备运行正常
3.测试
主机新建一个数据库备机也同步
主机新建数据库

create  database  diablo4;

测试备机是否正常

show  databases  like  'diablo4';

参考

https://blog.csdn.net/github_39533414/article/details/80144890
https://www.cnblogs.com/jianmingyuan/p/10903682.html
https://blog.51cto.com/wanghaipeng1124/874651

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值