docker-laravel-mysql 主從服務(wù)部署

參考網(wǎng)站:http://www.liyblog.top/p/11.html

1.mysql部署

mysql鏡像拉取

docker pull mysql:5.7.13

部署主從mysql配置

參考網(wǎng)址:https://my.oschina.net/u/3773384/blog/1810111

【運(yùn)行主容器】

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

2.使用Navicat或者workbanch友好的圖像化界面執(zhí)行SQL穿铆,執(zhí)行完畢驰坊,結(jié)果如圖所示為正常

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] 節(jié)點(diǎn)最后加上后保存

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

【運(yùn)行從容器】

1.運(yùn)行從mysql服務(wù)

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] 節(jié)點(diǎn)最后加上后保存

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友好的圖像化界面執(zhí)行SQL(host處如果部署的為本地服務(wù)應(yīng)該填寫本地服務(wù)固定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;

參數(shù)解釋

MASTER_HOST 填Navicat連接配置中的ip應(yīng)該就可以

MASTER_PORT 主容器的端口

MASTER_USER 同步賬號(hào)的用戶名

MASTER_PASSWORD 同步賬號(hào)的密碼

8.檢查是否配置成功

showslavestatus;

當(dāng)狀態(tài)顯示為上方的一致時(shí)表明應(yīng)該主從配置成功

9.如果失敗却嗡,可以查看日志追蹤闰渔,查看具體的報(bào)錯(cuò)日志

docker logs slave -f

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

此方法適用首先要保證庫(kù)的數(shù)據(jù)是一致的暮现,否則這種方法無效

stopslave;?

setGLOBALSQL_SLAVE_SKIP_COUNTER=1;?

startslave;

11.出現(xiàn)slave容器配置主從出現(xiàn)(Slave is not configured or failed to initialize properly)報(bào)錯(cuò)

此錯(cuò)誤有兩種可能

一还绘。是因?yàn)閙ysql中配置文件權(quán)限問題 ,配置文件權(quán)限分配過大栖袋,mysql會(huì)自動(dòng)忽略配置文件的讀取

解決方案:

參考網(wǎng)站:https://www.jb51.net/article/99027.htm

找到my.conf文件拍顷,設(shè)置權(quán)限為644?

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

二。從 5.6.25 版本使用?innobackupex 備份塘幅,在 5.7.15 版本中應(yīng)用恢復(fù)昔案,在 5.6.25 版本中,主從信息記錄到了文件中电媳,5.7.15 版本中的主從信息記錄的是在表中踏揣,所以數(shù)據(jù)備份后需要對(duì)下面幾張表進(jìn)行重建

進(jìn)入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)

外網(wǎng)使用記錄(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.運(yùn)行redis鏡像

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

4.拉取php鏡像

docker pull php:7.1-fpm

5.運(yùn)行php鏡像

運(yùn)行php鏡像時(shí):

? ? 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.運(yùn)行nginx鏡像

運(yùn)行php鏡像時(shí):

? ? 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容器環(huán)境擴(kuò)展和服務(wù)安裝

擴(kuò)展安裝參考網(wǎng)站:https://blog.csdn.net/lggirls/article/details/89395827

擴(kuò)展安裝路徑

/usr/local/bin

Gd擴(kuò)展安裝

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擴(kuò)展安裝

apt-get install libcurl4-openssl-dev

docker-php-ext-install curl

常見問題參考網(wǎng)站

https://phperzh.com/articles/1789

configure: error: jpeglib.h not found.

解決辦法:

apt-get install libjpeg-dev

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

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

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擴(kuò)展

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

如果無法創(chuàng)建ini文件需要?jiǎng)?chuàng)建下列文件夾

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

Nginx 配置文件缺失問題

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

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

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

安裝crontab 定時(shí)任務(wù)

apt-get install cron

service cron start

安裝mysqli擴(kuò)展

docker-php-ext-install mysqli

安裝pdo_mysql擴(kuò)展

docker-php-ext-install pdo_mysql

安裝bcmath擴(kuò)展

docker-php-ext-install bcmath

安裝zip, unzip

apt-get install --yes zip unzip

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拼缝,一起剝皮案震驚了整個(gè)濱河市娱局,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咧七,老刑警劉巖衰齐,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異继阻,居然都是意外死亡耻涛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門瘟檩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犬第,“玉大人,你說我怎么就攤上這事芒帕∏干ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵背蟆,是天一觀的道長(zhǎng)鉴分。 經(jīng)常有香客問我哮幢,道長(zhǎng),這世上最難降的妖魔是什么志珍? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任橙垢,我火速辦了婚禮,結(jié)果婚禮上伦糯,老公的妹妹穿的比我還像新娘柜某。我一直安慰自己,他們只是感情好敛纲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布喂击。 她就那樣靜靜地躺著,像睡著了一般淤翔。 火紅的嫁衣襯著肌膚如雪翰绊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天旁壮,我揣著相機(jī)與錄音监嗜,去河邊找鬼。 笑死抡谐,一個(gè)胖子當(dāng)著我的面吹牛裁奇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播麦撵,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刽肠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了厦坛?” 一聲冷哼從身側(cè)響起五垮,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤乍惊,失蹤者是張志新(化名)和其女友劉穎杜秸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體润绎,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撬碟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莉撇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呢蛤。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棍郎,靈堂內(nèi)的尸體忽然破棺而出其障,到底是詐尸還是另有隱情,我是刑警寧澤涂佃,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布励翼,位于F島的核電站蜈敢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏汽抚。R本人自食惡果不足惜抓狭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望造烁。 院中可真熱鬧否过,春花似錦、人聲如沸惭蟋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敞葛。三九已至誉察,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惹谐,已是汗流浹背持偏。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氨肌,地道東北人鸿秆。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像怎囚,于是被迫代替她去往敵國(guó)和親卿叽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容