gpt4 book ai didi

mysql - 错误启动mysql docker

转载 作者:行者123 更新时间:2023-11-28 23:57:24 24 4
gpt4 key购买 nike

我正在 docker 中创建镜像到 mysql 安装模式,但是启动 mysql 时出错。

My Dockerfile

处理Dockerfile第25行时出现错误:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

我发现这个错误是因为mysql没有运行。下面的 docker print 旋转第 22 行:

bin boot dev etc home lib lib64 media mnt opt proc root run sbin scripts srv sys tmp usr var MySQL is stopped.

Stack trace complete

有什么建议吗?

最佳答案

docker daemon 会一条一条的执行RUN命令并提交结果,看来你的mysql服务状态没有提交到镜像。解决这个问题,你可以试试这些方法

  • 将所有命令放入一个RUN命令
    RUN echo $(service mysql restart) && echo $(service mysql status) && sudo mysql -uroot -pmysql_pass -e "CREATE DATABASE wordpress;"&& sudo mysql -uroot -pmysql_pass -e "创建用户 'wordpressuser'@'%';"&& sudo mysql -uroot -pmysql_pass -e “为‘wordpressuser’设置密码@‘%’= PASSWORD(‘${mysql_pass}’);” && sudo mysql -uroot -pmysql_pass -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%'; FLUSH PRIVILEGES;"

  • 使用 bash 脚本在 entrypoint 中初始化您的 mysql。

init_mysql.sh

#!/bin/sh
sudo mysql -uroot -pmysql_pass -e "CREATE DATABASE wordpress;"
sudo mysql -uroot -pmysql_pass -e "CREATE USER 'wordpressuser'@'%';"
sudo mysql -uroot -pmysql_pass -e "SET PASSWORD FOR 'wordpressuser'@'%'= PASSWORD('${mysql_pass}');"
sudo mysql -uroot -pmysql_pass -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%'; FLUSH PRIVILEGES;"

并将以下行添加到 dockerfile

ADD init_mysql.sh /
RUN \
cd / \
chmod 777 init_mysql.sh

CMD ./init_mysql.sh

关于mysql - 错误启动mysql docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31256874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com