docker部署MySQL時(shí)無法啟動(dòng)問題的解決方法
一、安裝環(huán)境 ubuntu18 + docker
docker run -itd --name mysql-server -v /home/docker/share/mysql-server/log/:/var/log:rw -v /home/docker/share/mysql-server/data/:/var/lib/mysql:rw -v /home/docker/share/mysql-server/conf:/etc/mysql:rw -v /etc/localtime:/etc/localtime:ro --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql
二、遇到無法啟動(dòng)的問題時(shí),查看日志發(fā)現(xiàn)的錯(cuò)誤
docker logs --tail -n mysql-server
1、You need to specify one of the following as an environment variable:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
2022-10-24 04:21:40+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-10-24 04:21:40+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2022-10-24 04:21:40+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-10-24 04:21:40+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified ? ? You need to specify one of the following as an environment variable: ? ? - MYSQL_ROOT_PASSWORD ? ? - MYSQL_ALLOW_EMPTY_PASSWORD ? ? - MYSQL_RANDOM_ROOT_PASSWORD 2022-10-24 04:21:41+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-10-24 04:21:41+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
解釋: 由于mysql沒有指定root的登錄密碼導(dǎo)致無法啟動(dòng),默認(rèn)mysql配置是不允許空密碼登錄的
原因:上面執(zhí)行命令的時(shí)候?qū)戝e(cuò)了環(huán)境變量, MYSQL_SERVICE_PASSWORD 應(yīng)該修改成 MYSQL_ROOT_PASSWORD
2、mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory)
2022-10-24 04:17:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-10-24 04:17:09+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.4hy30uDmqE mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory) mysqld: [ERROR] Stopped processing the 'includedir' directive in file /etc/my.cnf at line 36. mysqld: [ERROR] Fatal error in defaults handling. Program aborted! 2022-10-24 04:17:13+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-10-24 04:17:13+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
解釋:可能由于不同的mysql版本,/etc/mysql目錄下的結(jié)構(gòu)不一樣
原因: 由于mysql的配置目錄/etc/mysql下有兩個(gè)空目錄, 上面的執(zhí)行命令僅掛載了當(dāng)前目錄,導(dǎo)致里面的兩個(gè)目錄沒有權(quán)限掛載到宿主機(jī)內(nèi), 應(yīng)該將掛載目錄指定到具體的目錄下: -v /home/docker/share/mysql-server/conf:/etc/mysql/conf.d:rw
3、mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (OS errno 13 - Permission denied)
mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (OS errno 13 - Permission denied) 2022-10-24T06:43:20.411035Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. 2022-10-24T06:43:20.411089Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 40 2022-10-24T06:43:20.412290Z 0 [ERROR] [MY-010460] [Server] --initialize specified but the data directory exists and is not writable. Aborting. 2022-10-24T06:43:20.412294Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it. 2022-10-24T06:43:20.412593Z 0 [ERROR] [MY-010119] [Server] Aborting 2022-10-24T06:43:20.412668Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL. 2022-10-24 06:43:23+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-10-24 06:43:24+00:00 [Note] [Entrypoint]: Initializing database files mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (OS errno 13 - Permission denied)
原因: 啟動(dòng)時(shí)沒有足夠的權(quán)限, /var/lib/mysql目錄沒有寫權(quán)限, 可能是部署docker時(shí)指定了--user xxx某個(gè)權(quán)限不足的用戶
總結(jié)
到此這篇關(guān)于docker部署MySQL時(shí)無法啟動(dòng)問題解決的文章就介紹到這了,更多相關(guān)docker部署MySQL無法啟動(dòng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker for windows 容器內(nèi)網(wǎng)通過獨(dú)立IP直接訪問的方法
這篇文章主要介紹了docker for windows 容器內(nèi)網(wǎng)通過獨(dú)立IP直接訪問的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Ubuntu 搭建基于Docker的LNMP+Redis的開發(fā)環(huán)境(圖文)
這篇文章主要介紹了Ubuntu 搭建基于Docker的LNMP+Redis的開發(fā)環(huán)境的相關(guān)資料,這里詳細(xì)介紹如何搭建的步驟,并附圖文,需要的朋友可以參考下2016-12-12
IDEA通過Docker插件部署SpringBoot項(xiàng)目的過程詳解
在idea中如何通過Docker插件部署SpringBoot項(xiàng)目呢?很多朋友在配置過程中走了很多誤區(qū),今天小編給大家分享一篇教程關(guān)于IDEA通過Docker插件部署SpringBoot項(xiàng)目的過程,感興趣的朋友一起看看吧2021-11-11
docker安裝單點(diǎn)elasticsearch過程
這篇文章主要介紹了docker安裝單點(diǎn)elasticsearch過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Docker鏡像與容器的導(dǎo)入導(dǎo)出及常用命令的使用
本文詳細(xì)介紹了如何在Docker中進(jìn)行鏡像和容器的導(dǎo)入導(dǎo)出操作,包括常用的Docker命令及其用法2024-11-11

