在容器環境搭建mysql備庫
使用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部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2854213/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Mac下怎麼搭建MySQL環境?MacMySql
- Mysql5.7在CentOs環境下定時備份資料庫MySqlCentOS資料庫
- MySQL環境搭建利器---SandboxMySql
- 新環境搭建Mysql主從MySql
- LAMP環境搭建-MySQL5.6LAMPMySql
- 【Ansible】ansible容器學習環境搭建
- 【MySQL資料庫】認識資料庫+環境搭建--------Windows系統MySql資料庫Windows
- Oracle10g RAC環境下DataGuard備庫搭建例項Oracle
- DM8 MPP主備環境搭建
- 在CentOS 7上搭建Docker環境CentOSDocker
- Haskell 在 macOS 下的環境搭建HaskellMac
- Oracle10g RAC環境下DataGuard備庫搭建例項-eygleOracle
- 在非容器環境中實現DevOpsdev
- Docker環境Oracle資料庫搭建DockerOracle資料庫
- DM8 實時主備環境搭建
- PHP基礎教程-02 搭建環境準備PHP
- Linux搭建PHP+MySQL+Apache環境LinuxPHPMySqlApache
- MAC使用brew搭建nginx、php、mysql環境MacNginxPHPMySql
- MySQL NDB Cluster簡介及環境搭建MySql
- 環境搭建
- 在linux下搭建wiki環境【轉】Linux
- 【Mysql】利用xtraceback備份搭建從庫MySql
- Android Studio開發環境搭建準備Android開發環境
- windows環境下Django環境搭建WindowsDjango
- [未完待續] 在 Mac OS X 中搭建 Apache + PHP + MySQL 開發環境MacApachePHPMySql開發環境
- linux下nginx+php+mysql環境搭建LinuxNginxPHPMySql
- MNMP (Mac + Nginx + MySQL + PHP) 開發環境搭建MacNginxMySqlPHP開發環境
- MySQL 5.5使用Xtrabackup線上搭建複製環境MySql
- Struts+spring+Hibernate+Mysql--環境搭建SpringMySql
- MySQL搭建帶過濾的複製環境MySql
- Lamp(linux+apache+mysql+php)環境搭建LAMPLinuxApacheMySqlPHP
- 生產環境搭建MySQL複製的教程MySql
- 主備庫記憶體不一致的Data Guard環境搭建記憶體
- Oracle10g RAC環境下 DataGuard備庫搭建例項-3-eygleOracle
- Oracle10g RAC環境下 DataGuard備庫搭建例項-2-eygleOracle
- Oracle10g RAC環境下 DataGuard備庫搭建例項-1-eygleOracle
- 從零搭建LNMP環境(三) - 安裝MySQL資料庫伺服器LNMPMySql資料庫伺服器
- 在 Ubuntu 上搭建 nginx+PHP+Laravel 環境UbuntuNginxPHPLaravel