MySQL container crash after /etc/mysql/my.cnf change, how to edit back?

后端 未结 1 1722
無奈伤痛
無奈伤痛 2021-01-28 16:40

I changed some mysql config settings and set something wrong, now Docker container keeps restarting and I cannot find the my.cnf file to edit in host filesystem. I

相关标签:
1条回答
  • 2021-01-28 16:40

    I am seeing two possible solutions for your problem:

    Bypass the ENTRYPOINT for the MySQL image

    Find your image name by running docker images then run:

    docker run -it --entrypoint="/bin/sh" OPTIONS image
    

    That should take you to the bash inside the container and from there you can execute all the commands you want to find your my.cnf file. Although I don't know if editing the file from there, save it and try to run it again will works. I didn't tried.

    Delete the old image and use the proper way to edit the my.cnf file

    Find your image name by running: docker images and then delete it by running docker rmi <image_name>

    Check the docs for the default MySQL images at MySQL Dockerhub is pretty straight on this and I quote:

    Using a custom MySQL configuration file The MySQL startup

    configuration is specified in the file /etc/mysql/my.cnf, and that file in turn includes any files found in the /etc/mysql/conf.d directory that end with .cnf. Settings in files in this directory will augment and/or override settings in /etc/mysql/my.cnf. If you want to use a customized MySQL configuration, you can create your alternative configuration file in a directory on the host machine and then mount that directory location as /etc/mysql/conf.d inside the mysql container.

    If /my/custom/config-file.cnf is the path and name of your custom configuration file, you can start your mysql container like this (note that only the directory path of the custom config file is used in this command):

    $ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

    This will start a new container some-mysql where the MySQL instance uses the combined startup settings from /etc/mysql/my.cnf and /etc/mysql/conf.d/config-file.cnf, with settings from the latter taking precedence.

    From that point and if you create the my.cnf file on your host then you'll never run into this problem again since you can edit the file as many times as you want.

    0 讨论(0)
提交回复
热议问题