【问题标题】:Error start mysql docker错误启动 mysql docker
【发布时间】:2015-07-06 22:38:39
【问题描述】:

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

My Dockerfile

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

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

我发现这个错误是因为mysql没有运行。下面的 docker 打印旋转第 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

有什么建议吗?

【问题讨论】:

    标签: mysql docker containers dockerhub


    【解决方案1】:

    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 "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;"

    • 使用 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
    

    【讨论】:

    • @Tiago 你应该尝试使用CMD /opt/init_mysql.sh 或CMD ["/bin/bash", "-c", "/opt/init_mysql.sh"]
    • 我将 Dockerfile 更改为“CMD /opt/init_mysql.sh”,但他没有运行我的脚本“init_mysql.sh”。登录 vm 并运行,“-lha ls/opt/”显示:-rwxr-xr-x 1 root root 39 Jul 9 22:20 init_mysql.sh。即,正在创建脚本文件,但没有运行,因为没有创建目录“/opt/teste001”。
    【解决方案2】:

    您需要弄清楚 MySQL 没有启动的原因。登录环境,手动尝试启动MySQL,看看是什么错误。

    您是否考虑过将您的镜像基于官方 MySQL Docker 镜像之一? https://registry.hub.docker.com/_/mysql/

    【讨论】:

      猜你喜欢
      • 2016-04-07
      • 1970-01-01
      • 2017-01-07
      • 2018-03-09
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多