无法删除mysql数据库,表甚至是docker里面的alter table

时间:2014-01-09 17:12:06

标签: mysql docker

我想拥有一个带有一些基本数据集的mysql数据库。 我使用这个https://index.docker.io/u/brice/mysql/ Dockerfile创建了mysql docker镜像,但删除了VOLUME ["/var/lib/mysql", "/var/log/mysql"]行,所以Dockerfile看起来像:

FROM ubuntu:12.10
MAINTAINER Brandon Rice <brice84@gmail.com>
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -s /bin/true /sbin/initctl
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get -y install mysql-server
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
RUN /usr/bin/mysqld_safe & \
    sleep 10s && \
    mysql < create_my_db.sql && \
    mysql -e "GRANT ALL ON *.* to 'root'@'%'; FLUSH PRIVILEGES" 

EXPOSE 3306
CMD ["mysqld_safe"]

之后我构建了如下图像:

docker build -t my_db_mysql .

我附加数据时一切正常,但是当我想删除数据库时,例如:

FROM my_db_mysql
RUN /usr/bin/mysqld_safe & \
    sleep 10s && \
    mysql -e "DROP DATABASE my_db;" 
EXPOSE 3306
CMD ["mysqld_safe"]

我获得了下一个错误:

ERROR 6 (HY000) at line 1: Error on delete of './my_db//db.opt' (Errcode: 1)

不仅在我想要构建图像时出现,而且即使我执行了mysql -u user -p -e "DROP DATABASE my_db;" 怎么解决这个? 感谢

更新:我还尝试使用不同的文件系统运行docker,例如-s vfs或-s devicemapper,但没有任何改变。 当我使用VOLUME ["/var/lib/mysql", "/var/log/mysql"]构建图像时 - 一切正常,但我无法进行此更改 更新:似乎我解决了这个问题。问题出现在使用ubuntu 12.04的主机上。当我将ubuntu更新为13.10时,问题消失了。非常感谢!

0 个答案:

没有答案