最近运行 docker mysql 挂载目录是 /usr/local/mysql 第一次目录为空可以正常挂载,删除了容器重新 run 后挂载失效,挂载到默认的路径下,但是我将挂载指定到 /users 路径是可以的,挂载到 /usr 无效,有大佬知道什么情况吗?目录加了 777 权限
1
qq296015668 2020-12-06 14:35:02 +08:00
你的容器里面应该对目录是否存在以及权限是否正确要有所判断
例: ```sh if [ ! -d "/var/lib/mysql/$DB_NAME" ]; then mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql mysqld --daemonize --user=mysql sleep 5s mysql -uroot -e "create database $DB_NAME default charset 'utf8' collate 'utf8_bin';grant all on $DB_NAME.* to '$DB_USER'@'%' identified by '$DB_PASSWORD';flush privileges;"; tail -f /var/log/mysqld.log else mysqld --daemonize --user=mysql tail -f /var/log/mysqld.log fi ``` 你也可以参考 MySQL 官方的启动脚本 [docker-entrypoint.sh]( https://github.com/mysql/mysql-docker/blob/mysql-server/5.7/docker-entrypoint.sh) |