docker-laravel-mysql 主從服務部署

參考網站:http://www.liyblog.top/p/11.html

1.mysql部署

mysql鏡像拉取

docker pull mysql:5.7.13

部署主從mysql配置

參考網址:https://my.oschina.net/u/3773384/blog/1810111

【運行主容器】

docker run --name ipbank_master -p 8016:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13

2.使用Navicat或者workbanch友好的圖像化界面執行SQL,執行完畢,結果如圖所示為正常

GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'backup';

show grants for 'backup'@'%';

3.拷貝一份MySQL配置文件

docker cp ipbank_master:/etc/mysql/my.cnf /opt/server/ipbank/master/my.cnf

4.修改my.cnf,在 [mysqld] 節點最后加上后保存

log-bin=mysql-bin?

server-id=1

5.將修改后的文件覆蓋Docker中MySQL中的配置文件

docker cp /opt/server/ipbank/master/my.cnf ipbank_master:/etc/mysql/my.cnf

6.重啟 mysql 的docker , 讓配置生效

docker restart ipbank_master

【運行從容器】

1.運行從mysql服務

docker run --name ipbank_slave1 -p 8017:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13

2.拷貝一份MySQL配置文件

docker cp ipbank_slave1:/etc/mysql/my.cnf /opt/server/ipbank/slave1/my.cnf

4.修改my.cnf,在 [mysqld] 節點最后加上后保存

log-bin=mysql-bin?

server-id=2

5.將修改后的文件覆蓋Docker中MySQL中的配置文件

docker cp /opt/server/ipbank/slave1/my.cnf ipbank_slave1:/etc/mysql/my.cnf

6.重啟slave1容器,使配置生效

docker restart ipbank_slave1

7.使用Navicat或者workbanch友好的圖像化界面執行SQL(host處如果部署的為本地服務應該填寫本地服務固定IP地址,不能直接填寫127.0.0.1或者localhost)

CHANGE MASTER TO

MASTER_HOST='192.168.1.106'?

MASTER_PORT=3306,

MASTER_USER='root',

MASTER_PASSWORD='123456';

START SLAVE;

參數解釋

MASTER_HOST 填Navicat連接配置中的ip應該就可以

MASTER_PORT 主容器的端口

MASTER_USER 同步賬號的用戶名

MASTER_PASSWORD 同步賬號的密碼

8.檢查是否配置成功

showslavestatus;

當狀態顯示為上方的一致時表明應該主從配置成功

9.如果失敗,可以查看日志追蹤,查看具體的報錯日志

docker logs slave -f

10.如果?Slave_IO_Running與Slave_SQL_Running 兩個參數不是yes可以使用下面的方案解決

此方法適用首先要保證庫的數據是一致的,否則這種方法無效

stopslave;?

setGLOBALSQL_SLAVE_SKIP_COUNTER=1;?

startslave;

11.出現slave容器配置主從出現(Slave is not configured or failed to initialize properly)報錯

此錯誤有兩種可能

一。是因為mysql中配置文件權限問題 ,配置文件權限分配過大,mysql會自動忽略配置文件的讀取

解決方案:

參考網站:https://www.jb51.net/article/99027.htm

找到my.conf文件,設置權限為644?

命令:chmod 644?/etc/mysql/my.cnf

二。從 5.6.25 版本使用?innobackupex 備份,在 5.7.15 版本中應用恢復,在 5.6.25 版本中,主從信息記錄到了文件中,5.7.15 版本中的主從信息記錄的是在表中,所以數據備份后需要對下面幾張表進行重建

進入mysql后使用如下命令

use mysql;

drop table slave_master_info;

drop table slave_relay_log_info;

drop table slave_worker_info;

drop table innodb_index_stats;

drop table innodb_table_stats;

source /usr/share/mysql/mysql_system_tables.sql(需要查找sql文件位置 可以使用命令:find / -name mysql_system_tables.sql)

外網使用記錄(master,slave1)

mysql掛載到data下

(master)?

docker run -it --name zxb_mysql_master -p 8016:3306 -e MYSQL_ROOT_PASSWORD=e5244a754923b46c --privileged=true -v /data/ZhengXin/mysql/conf/master.cnf:/etc/mysql/my.cnf -v /data/ZhengXin/mysql/data:/var/lib/mysql -v /data/ZhengXin/mysql/logs:/var/log/mysql -d mysql:5.7.13

(slave1)?

docker run -it --name zxb_mysql_slave1 -p 8017:3306 -e MYSQL_ROOT_PASSWORD=e5244a754923b46c --privileged=true -v /data/ZhengXin/mysql/conf/slave1.cnf:/etc/mysql/my.cnf -v /data/ZhengXin/mysql/slave1_data:/var/lib/mysql -v /data/ZhengXin/mysql/logs:/var/log/mysql -d mysql:5.7.13

2.拉取redis鏡像

docker pull redis:3.2

3.運行redis鏡像

docker run --name ipbank_redis -p 8015:6379 -d redis:3.2

4.拉取php鏡像

docker pull php:7.1-fpm

5.運行php鏡像

運行php鏡像時:

? ? 1.指定映射端口

? ? 2.掛載本地目錄

? ? 3.link需要的mysql,redis

docker run -d -p 8029:9000 --name zxb_phpserve -v /opt/server/ipbank/www:/var/www/html-v /opt/server/ipbank/php:/usr/local/etc/php --link ipbank_redis:ipbank_redis --privileged=true php:7.2-fpm

6.運行nginx鏡像

運行php鏡像時:

? ? 1.指定映射端口

? ? 2.掛載本地目錄

? ? 3.link需要的php_serve

docker run --name zxb_nginxserve -d -p 8028:80 -v/opt/server/ipbank/www:/usr/share/nginx/html-v/opt/server/ipbank/nginx:/etc/nginx-v/opt/server/ipbank/logs/nginx.logs:/var/log/nginx--linkzxb_phpserve:zxb_phpserve?--privileged=true nginx

docker run --name zxb_nginxserve -d -p 8068:80 -v/Users/liyi/school_server/scratch-php/www:/usr/share/nginx/html-v/Users/liyi/school_server/scratch-php/nginx:/etc/nginx-v/Users/liyi/school_server/scratch-php/logs/nginx.logs:/var/log/nginx--linkscratch_phpserve:scratch_phpserve?--privileged=true nginx

7.php容器環境擴展和服務安裝

擴展安裝參考網站:https://blog.csdn.net/lggirls/article/details/89395827

擴展安裝路徑

/usr/local/bin

Gd擴展安裝

apt-get install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev

docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2

docker-php-ext-install gd

Curl擴展安裝

apt-get install libcurl4-openssl-dev

docker-php-ext-install curl

常見問題參考網站

https://phperzh.com/articles/1789

configure: error: jpeglib.h not found.

解決辦法:

apt-get install libjpeg-dev

Redis 安裝參考http://www.iamlintao.com/6695.html

(如果 無法解壓 直接復制redis地址下載到本機)

curl -L -o /tmp/redis.tar.gzhttps://github.com/phpredis/phpredis/archive/3.1.3.tar.gz

tar xfz /tmp/redis.tar.gz

rm -r /tmp/redis.tar.gz

mkdir -p /usr/src/php/ext

mv phpredis-3.1.3 /usr/src/php/ext/redis

docker-php-ext-install redis

安裝gmp擴展

apt-get install -y libgmp-dev

ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \

docker-php-ext-install gmp

如果無法創建ini文件需要創建下列文件夾

mkdir /usr/local/etc/php/conf.d/

Nginx 配置文件缺失問題

需要在映射文件拉去nginx的配置文件,地址在碼云上有

Mysql無法連接的問題(Access?denied?for?user?'root'@'172.17.0.1')

需要在映射文件拉取nginx的配置文件,地址在碼云上有

安裝crontab 定時任務

apt-get install cron

service cron start

安裝mysqli擴展

docker-php-ext-install mysqli

安裝pdo_mysql擴展

docker-php-ext-install pdo_mysql

安裝bcmath擴展

docker-php-ext-install bcmath

安裝zip, unzip

apt-get install --yes zip unzip

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容