個(gè)人主頁(yè):金鱗踏雨
個(gè)人簡(jiǎn)介:大家好,我是金鱗,一個(gè)初出茅廬的Java小白
目前狀況:22屆普通本科畢業(yè)生,幾經(jīng)波折了,現(xiàn)在任職于一家國(guó)內(nèi)大型知名日化公司,從事Java開(kāi)發(fā)工作
我的博客:這里是CSDN,是我學(xué)習(xí)技術(shù),總結(jié)知識(shí)的地方。希望和各位大佬交流,共同進(jìn)步 ~
問(wèn)題描述
這一段時(shí)間,學(xué)習(xí)了黑馬的一個(gè)的SpringCloud項(xiàng)目——學(xué)成在線。我將項(xiàng)目中需要的組件都放在了我的一臺(tái)虛擬機(jī)上,用docker的方式。
但是發(fā)現(xiàn),每次啟動(dòng)的時(shí)候MySQL容器經(jīng)常失敗,報(bào)錯(cuò)如下:
Error response from daemon: driver failed programming external connectivity on endpoint mysql (868f20f1e4165e72ae2275dec7bee377572098cfcff3177b413d9f32a4b4928e): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use
Error: failed to start containers: 0c4e5bdc6f7e
大概是端口占用......
解決辦法
實(shí)際上解決這個(gè)問(wèn)題也很容易
一、暴力
找到占用3306端口的進(jìn)程,然后kill即可
我們先使用命令,找到所有進(jìn)程的端口
netstat -tanlp
然后直接使用 kill 命令
# 1837 -- 進(jìn)程號(hào)
kill 1837
再重新啟動(dòng)mysql即可
# 0c4e5bdc6f7e -- 通過(guò)docker ps -a 查看到的容器的ID
docker start 0c4e5bdc6f7e
但是,這樣子做,對(duì)于我來(lái)說(shuō)還是有點(diǎn)治標(biāo)不治本! 因?yàn)槿绻@樣子處理的話,相當(dāng)于每次啟動(dòng)vm的時(shí)候,都要重復(fù)一遍上述的工作。
因?yàn)?,我的docker沒(méi)有自啟動(dòng),而這個(gè) mariadb(我也不知道是怎么來(lái)的~~~可能是之前的機(jī)子有禪道,禪道用的數(shù)據(jù)庫(kù)就是mariadb)在啟動(dòng)VM的時(shí)候就啟動(dòng)了,3306端口先被占用了。
二、卸載mariadb
由于我的端口占用是禪道引起的,所以我直接卸載禪道即可!
# 停止服務(wù)
/opt/zbox/zbox stop
cd /opt
rm -rf /zbox
停止服務(wù),刪除zbox目錄即可卸載。
三、重新指定這個(gè)MySQL的端口
可以把之前的mysql容器刪除了,再重新創(chuàng)建一個(gè)新的,如下:?
docker run --name mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=888888 \
-v /home/lcxz8686/DockerContainerProperties/mysql/data:/var/lib/mysql \
-v /home/lcxz8686/DockerContainerProperties/mysql/conf:/etc/mysql/conf.d \
-p 3309:3306 \
-d \
mysql:8.0.30
如果不想刪除,可以這樣子做:
先進(jìn)入容器內(nèi)部
docker exec -it mysql /bin/bash
將容器里面的 /etc/mysql/my.cnf? 文件復(fù)制出來(lái)修改(原因是docker容器內(nèi)部大多數(shù)不支持vim命令,下載安裝比較麻煩?。。。┤绻锩鏇](méi)有my.cnf就在 CentOS 上面創(chuàng)建一個(gè),編寫(xiě)好,再懟回去。
# 容器復(fù)制命令 -- 需要退出容器
docker cp mysql:/etc/mysql/my.cnf /etc/mysql
修改完了再cp回去
docker cp my.cnf mysql:/etc/mysql/
再重啟該容器即可!?。?
文章到這里就結(jié)束了,如果有什么疑問(wèn)的地方,可以在評(píng)論區(qū)指出~
希望能和大佬們一起努力,諸君頂峰相見(jiàn)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-659134.html
再次感謝各位小伙伴兒們的支持?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-659134.html
到了這里,關(guān)于【BUG】Docker啟動(dòng)MySQL報(bào)錯(cuò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!