代码之家  ›  专栏  ›  技术社区  ›  JoeSlav

Docker mysql装载卷时无法运行

  •  0
  • JoeSlav  · 技术社区  · 6 年前

    尝试运行mysql docker image,其中my db的数据存储在文件夹中:

    mkdir myfolder
    sudo docker run --privileged --name my_mysql -e MYSQL_ROOT_PASSWORD=123 -v "$PWD/myfolder":/var/lib/mysql -d mysql
    

    sudo docker logs --tail=50 abcdef
    Initializing database
    mysqld: Can't create directory '/var/lib/mysql/' (OS errno 17 - File exists)
    2019-03-10T10:03:42.872059Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
    2019-03-10T10:03:42.872191Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.15) initializing of server in progress as process 30
    2019-03-10T10:03:42.875755Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/lib/mysql/ is unusable. You can safely remove it.
    2019-03-10T10:03:42.875824Z 0 [ERROR] [MY-010119] [Server] Aborting
    2019-03-10T10:03:42.876931Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
    

    谢谢!

    0 回复  |  直到 6 年前
        1
  •  0
  •   JoeSlav    6 年前

    根据这个 https://github.com/docker-library/mysql/issues/69 繁琐的解决方案是:

    1. sudo docker run --privileged --name my_mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql
    2. 移动 _data 文件夹 volumes/volumeid/ 文件夹创建到您的本地目录(在我的情况下重命名它 myfolder
    3. sudo docker run --privileged --name my_mysql -e MYSQL_ROOT_PASSWORD=123 -v "$PWD/myfolder":/var/lib/mysql -d mysql

    :-/