Unable to connect to mysql docker container

I have a Dockerfile that I am working on that pulls Mysql 5.6 and configures it (mostly with a bash and sql script). I am able to build and run it but when I try to connect to the database in the container I always get:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

I have tried accessing the mysql database by using:

  • Cannot read data from a bound partition
  • deepstream.io docker run error on OSX
  • Unable to find ssh key using phusion/base-image
  • Docker and uPnP
  • Docker/Dockerfile: Using ENTRYPOINT for git clone
  • Docker-Sync issue : Can't have simultaneous environments anymore since 0.4.2
  • mysql -u root -p

    mysql -u root -h 127.0.0.1 -p

    I have tried everything I could think of and looked up articles on the internet but nothing works. Can someone tell me why? Here is my Dockerfile and bash script respectively:

    FROM mysql:5.6
    
    MAINTAINER Ryan K.
    USER root
    
    ADD mysqlAddUser.sh /tmp/
    CMD ["/tmp/mysqlAddUser.sh"]
    ADD foo.sql /docker-entrypoint-initdb.d/foo.sql
    
    EXPOSE 3306
    
    ## Starting mysqld and running Database Scripts
    CMD ["/usr/bin/mysqld_safe"]
    

    Bash script:

    #!/bin/bash
    DATABASE_PASSWORD=test
    
    /usr/bin/mysqld_safe &
    mysqladmin --login-path=local -uroot -p"$DATABASE_PASSWORD"
    mysqladmin password "$DATABASE_PASSWORD"
    
    mysql -uroot -p"$DATABASE_PASSWORD" -e "UPDATE mysql.user SET Password=PASSWORD('$DATABASE_PASSWORD') WHERE User='root'"
    mysql -uroot -p"$DATABASE_PASSWORD" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"
    mysql -uroot -p"$DATABASE_PASSWORD" -e "DELETE FROM mysql.user WHERE User=''"
    mysql -uroot -p"$DATABASE_PASSWORD" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'"
    mysql -uroot -p"$DATABASE_PASSWORD" -e "FLUSH PRIVILEGES"
    
    DB_ROOT_PASS=TEST
    DB=portal
    
    mysql --login-path=local -uroot -p"$DB_ROOT_PASS"
    mysql -uroot -p"$DATABASE_PASWORD" -e "CREATE DATABASE portal";
    mysql -uroot -p"$DATABASE_PASSWORD" -e "CREATE USER portaluser@'localhost' IDENTIFIED BY 'testing'";
    mysql -uroot -p"$DATABASE_PASSWORD" -e "GRANT ALL PRIVILEGES ON portal.* TO portaluser@'localhost'";
    mysql -uroot -p"$DATABASE_PASSWORD" -e "FLUSH PRIVILEGES";
    
    mysql -uroot -p"$DATABASE_PASSWORD" $DB < /tmp/foo.sql
    

  • What is the '.save_docker/' folder? Can I delete it?
  • Docker: can't run hello-world. Windows 10
  • Docker network - Why docker container responds on 127.0.0.1?
  • systemd, docker, or systemd-journal (on stable CoreOS) using high CPU
  • Difference between Docker ENTRYPOINT and Kubernetes container spec COMMAND?
  • How to re-add a container in Bluemix
  • One Solution collect form web for “Unable to connect to mysql docker container”

    Was struggling with the same issue with mysql in a docker container. Sometimes I could connect with the mysql client, but more often not. Switched to mariadb and had the same problem.

    What seems to have fixed it for me is to add some sleep commands in my scripts that create, start and destroy the docker containers. After commands like ‘docker run’ and ‘docker stop’ I added ‘sleep 10’ and that seems to help.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.