ITPub博客

首页 > 数据库 > MySQL > 在容器环境搭建mysql备库

在容器环境搭建mysql备库

原创 MySQL 作者:kakaxi9521 时间:2022-01-27 10:54:47 0 删除 编辑

使用podman部署Mysql从库。 Centos linux 8.5 中自带Podman 安装包,可直接进行使用。

1. 增加mysql 用户。

useradd mysql


2.root用户/u01 目录下创建 backup、images、 iso、 mysql 目录。


mkdir -p /u01/{backup,images,iso,mysql}


更改目录用户宿主

chown mysql:mysql *


3.创建xxdevslave 的data、 conf 目录。


mkdir -p /u01/mysql/xxdevslave/{data,conf}


4. 通过podman 导入image


podman load -i mysql-57-centos7.tar


[mysql@DCF5B1RK images]$ podman images

REPOSITORY                         TAG         IMAGE ID      CREATED      SIZE

docker.io/centos/mysql-57-centos7  latest      f83a2938370c  2 years ago  464 MB


测试是否能创建mysql contrainer

podman run  --name mysql57 -e MYSQL_ROOT_PASSWORD='xxxx_xxxx' -d mysql-57-centos7


[mysql@DCF5B1RK images]$ podman ps 

CONTAINER ID  IMAGE                                     COMMAND     CREATED         STATUS             PORTS       NAMES

34b21dcdb4ef  docker.io/centos/mysql-57-centos7:latest  run-mysqld  22 seconds ago  Up 22 seconds ago              mysql57



5. 为备库准备my.cnf 文件。


6. 为xxdevslave 启动一个容器

podman run --name xxdevslave -p 33061:3306 -v /u01/mysql/xxdevslave/data:/var/lib/mysql/data  -v /u01/mysql/xxdevslave/conf/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD=xxxx_xxxx -d mysql-57-centos7


容器正常启动

[mysql@DCF5B1RK conf]$ podman ps 

CONTAINER ID  IMAGE                                     COMMAND     CREATED         STATUS             PORTS                    NAMES

84e3b86fad85  docker.io/centos/mysql-57-centos7:latest  run-mysqld  12 seconds ago  Up 13 seconds ago  0.0.0.0:33061->3306/tcp  xxdevslave


7. 进入容器并修改root用户密码。

[mysql@DCF5B1RK xxdevslave]$ podman exec -it xxdevslave bash

bash-4.2$ 

bash-4.2$ ps -ef | grep mysql 

mysql          1       0  0 02:34 ?        00:00:00 /opt/rh/rh-mysql57/root/usr/libexec/mysqld --defaults-file=/etc/my.cnf

mysql        381       0  0 02:35 pts/0    00:00:00 bash

mysql        392     381  0 02:35 pts/0    00:00:00 ps -ef

mysql        393     381  0 02:35 pts/0    00:00:00 grep mysql

bash-4.2$ 

bash-4.2$ mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.24-log MySQL Community Server (GPL)


Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.


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> alter user root@localhost identified by 'xxxx_xxxx';

Query OK, 0 rows affected (0.00 sec)


mysql> 


8. 使用mysqldump 工具将主库xxdev的数据导出并同步到xxdevslave。


time mysqldump -uroot -p --master-data=2 --single-transaction --databases agent  > /var/lib/mysql/mysqldump_database_`date +%Y%m%d`.sql


使用podman cp 命令将xxdev容器中的mysqldump_database_20220121.sql 备份文件复制到本地文件系统。


[mysql@DCG5B1R ~]$ podman cp xxdev:/var/lib/mysql/mysqldump_database_20220121.sql /u01/backup/

[mysql@DCG5B1R ~]$ ls 

[mysql@DCG5B1R ~]$ cd /u01

[mysql@DCG5B1R u01]$ cd backup

[mysql@DCG5B1R backup]$ ls -l 

total 62073116

-rw-rw-r-- 1 mysql mysql         842 Jan 20 15:19 my.cnf

-rw-r--r-- 1 mysql mysql 63562865572 Jan 21 11:09 mysqldump_database_20220121.sql

[mysql@DCG5B1R backup]$ 

[mysql@DCG5B1R backup]$ 

[mysql@DCG5B1R backup]$ pwd

/u01/backup

[mysql@DCG5B1R backup]$ 


9. 使用mysqldump 工具将备份文件导入到xxdevslave容器的mysql 数据库中。

[mysql@DCF5B1RK backup]$ podman cp mysqldump_database_20220121.sql xxdevslave:/


mysql -uroot -p < mysqldump_database_20220121.sql


10. 配置主从


create user rep;

GRANT REPLICATION SLAVE ON *.* TO 'rep'@'%' IDENTIFIED BY 'xxxx_xxxx';

grant replication slave on *.* to rep;


change master to master_host='10.18.1.xx',

master_port=33061,

master_user='rep',

master_password='xxxx_xxxx', 

master_log_file='mysql-bin.000047',

master_log_pos=154;



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21374452/viewspace-2854213/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-13

  • 博文量
    136
  • 访问量
    178918