在容器環境搭建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
- 【Ansible】ansible容器學習環境搭建
- MySQL環境搭建利器---SandboxMySql
- 【MySQL資料庫】認識資料庫+環境搭建--------Windows系統MySql資料庫Windows
- DM8 MPP主備環境搭建
- Linux搭建PHP+MySQL+Apache環境LinuxPHPMySqlApache
- Haskell 在 macOS 下的環境搭建HaskellMac
- 在CentOS 7上搭建Docker環境CentOSDocker
- DM8 實時主備環境搭建
- 主備庫記憶體不一致的Data Guard環境搭建記憶體
- 環境搭建
- 教小白搭建sybase資料庫環境資料庫
- RabbitMQ系列(一)在Ubuntu上的環境搭建MQUbuntu
- 使用multipass在mac搭建linux開發環境MacLinux開發環境
- 在 macOS Catalina 10.15 搭建 PHP 開發環境MacPHP開發環境
- 在 Ubuntu 上搭建 nginx+PHP+Laravel 環境UbuntuNginxPHPLaravel
- 在Mac OS中搭建superset開發環境Mac開發環境
- 在Windows10搭建WebAssembly開發環境WindowsWeb開發環境
- Mac搭建PHP開發環境(PHP+Nginx+MySQL)MacPHP開發環境NginxMySql
- CentOS7搭建Java環境(JDK、MySQL和Tomcat)CentOSJavaJDKMySqlTomcat
- 生產環境中MySQL複製的搭建KPMySql
- 如何在 Kubernetes 環境中搭建 MySQL(四):使用 StMySql
- 探秘Kubernetes:在本地環境中玩轉容器技術
- 搭建lnmp環境LNMP
- 搭建gym環境
- Linuxg環境搭建Linux
- JDK環境搭建JDK
- Angular環境搭建Angular
- anaconda 環境搭建
- ReactNative環境搭建React
- swoft 環境搭建
- Flutter環境搭建Flutter
- 搭建Java環境Java
- Supervisor 環境搭建
- react環境搭建React
- FNA環境搭建
- FNA 環境搭建
- Maven 環境搭建Maven