Mysqlプライマリバックアップミラーからの構築とアップロード

5436 ワード

ミラー化プロセスの構築
1.Masterミラー構築
1.公式サイトのミラーファイルをダウンロードして解凍する
# wget https://codeload.github.com/docker-library/mysql/zip/master
# unzip master
# mkdir /home/lipuan/mysqlDockerFile
# cp -Rf mysql-master/5.7/Dockerfile /home/lipuan/mysqlDockerFile
# cp -Rf mysql-master/5.7/docker-entrypoint.sh /home/lipuan/mysqlDockerFile
# rm -rf mysql-master
# chmod +x docker-entrypoint.sh

2.Dockerfileに次の内容を追加します.
RUN sed -i '/\[mysqld\]/a server-id=1
log-bin=mysql-bin
log-output=TABLE
slow_query_log=1
general_log=1' /etc/mysql/mysql.conf.d/mysqld.cnf

具体的な位置のスクリーンショットは以下の通りです.
![1558603315289](D:05 work12ミドルウェアmysqlMysqlミラーの作成md_image1558603315289.png)
3. docker-entrypoint.shに追加
echo "CREATE USER '$MYSQL_REPLICATION_USER'@'%' IDENTIFIED BY '$MYSQL_REPLICATION_PASSWORD' ;" | "${mysql[@]}"
echo "GRANT REPLICATION SLAVE ON *.* TO '$MYSQL_REPLICATION_USER'@'%' IDENTIFIED BY '$MYSQL_REPLICATION_PASSWORD' ;" | "${mysql[@]}"
echo 'FLUSH PRIVILEGES ;' | "${mysql[@]}"

具体的な位置は図のようです:
![1558603357512](D:05 work12ミドルウェアmysqlMysqlミラーの作成md_image1558603357512.png)
この場所でMysql Masterミラーの構築に成功しました
2.Mysql Slaveミラーの構築
1.ホームページのミラーをダウンロードして解凍する
# wget https://codeload.github.com/docker-library/mysql/zip/master
# unzip master
# mkdir /home/lipuan/mysqlDockerFile
# cd ~
# cp -Rf mysql-master/5.7/Dockerfile /home/lipuan/mysqlDockerFile
# cp -Rf mysql-master/5.7/docker-entrypoint.sh /home/lipuan/mysqlDockerFile
# rm -rf mysql-master
# chmod +x docker-entrypoint.sh

2.Dockerfileに追加
次の内容を追加します.
RUN RAND="$(date +%s | rev | cut -c 1-2)$(echo ${RANDOM})" && sed -i '/\[mysqld\]/a server-id='$RAND'
log-bin=mysql-bin
log-output=TABLE
slow_query_log=1
general_log=1' /etc/mysql/mysql.conf.d/mysqld.cnf

ここでserver-idは乱数を使用します
具体的な位置は以下の通りです.
![1558603484307](D:05 work12ミドルウェアmysqlMysqlミラーの作成md_image1558603484307.png)
3. docker-entrypoint.shに追加
追加内容は次のとおりです.
echo "STOP SLAVE;" | "${mysql[@]}"
echo "CHANGE MASTER TO master_host='$MYSQL_MASTER_SERVICE_HOST', master_user='$MYSQL_REPLICATION_USER', master_password='$MYSQL_REPLICATION_PASSWORD' ;" | "${mysql[@]}"

echo "START SLAVE;" | "${mysql[@]}"

場所:
![1558603615867](D:05 work12ミドルウェアmysqlMysqlミラーの作成md_image1558603615867.png)
3.ミラーの構築とアップロード
3.1 Masterミラーの構築
[root@bogon slave]# cd ..
[root@bogon mysql5.7Dockerfile]# cd master/
[root@bogon master]# pwd
/root/mysql_Dockerfile/mysql5.7Dockerfile/master
[root@bogon master]# docker login https://harbor.ce.net
[root@bogon master]# docker build -t harbor.net/mysqlagenttest/mysqlmaster:5.7 .

3.2 Slaveミラーの構築
[root@bogon slave]# cd ..
[root@bogon mysql5.7Dockerfile]# cd slave/
[root@bogon slave]# pwd
/root/mysql_Dockerfile/mysql5.7Dockerfile/master
[root@bogon slave]# docker login https://harbor.net
[root@bogon slave]# docker build -t harbor.net/mysqlagenttest/mysqlslave:5.7 .

3.3ミラーのアップロード
[root@bogon master]# docker images

[root@bogon master]# docker push harbor.net/mysqlagenttest/mysqlmaster:5.7