我查了这个页面: http://dev.mysql.com/doc/refman/5.7/en/mysql-install-db.html
但是,当我使用mysql_install_db
时, mysqld --initialize
已被删除。它会促进这些错误和警告。
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
[ERROR] --initialize specified but the data directory has files in it. Aborting.
[ERROR] Aborting
根据这个可以忽略第一个:How to enable explicit_defaults_for_timestamp?
我不知道如何解决第二个问题。
答案 0 :(得分:7)
请仔细阅读错误:
[错误] - 指定了初始化但数据目录中包含文件。中止。
您的目录不为空。您必须删除它的所有内容或选择另一个。
答案 1 :(得分:4)
通常意味着您的数据目录不为空。如果删除或重命名数据目录并且问题仍然存在,请检查配置文件/etc/my.cnf
并在初始化步骤中删除validate_password_policy
变量。启动服务器后,您可以将此变量设置为您想要的任何内容。
答案 2 :(得分:3)
我在使用 Kubernetes 和 MySQL 5.7 时也遇到了这个问题。
将来自 yosifki 的建议添加到我的容器定义中,一切正常。
<块引用>一个新的 ext4 磁盘分区通常不是空的; 有一个 lost+found 目录,已知 mysql 会阻塞它。你 可以尝试将 --ignore-db-dir=lost+found 添加到 CMD 以了解 确定(来自mysql docs)
这是我的工作 YAML 定义的摘录:
name: mysql-master
image: mysql:5.7
args:
- "--ignore-db-dir=lost+found"
这里有一个 docker-compose 片段,以便更好地阐明:
version: '3'
services:
mysql-master:
image: mysql:5.7
command: [--ignore-db-dir=lost+found]
environment:
- MYSQL_ROOT_PASSWORD=root
答案 3 :(得分:2)
只需删除/ data目录。这对我有用:
像这样简单:
image: mysql:5.7
volumes:
- ./db:/var/lib/mysql
并确保您的“ ./db”目录为空。
答案 4 :(得分:0)
我遇到了样本问题。我从
重命名了容器目录/ var / lib / mysql
到
/ var / lib / minesql或其他名称
。现在容器已启动。
上一个命令:
docker container run --name=mysql -d -e MYSQL_ROOT_PASSWORD=abc1234 -e MYSQL_DATABASE=sample -e MYSQL_USER=ashik -e MYSQL_PASSWORD=abc123 -v mysql_volume:/var/lib/mysql mysql
工作命令:
docker container run --name=mysql -d -e MYSQL_ROOT_PASSWORD=abc1234 -e MYSQL_DATABASE=sample -e MYSQL_USER=ashik -e MYSQL_PASSWORD=abc123 -v mysql_volume:/var/lib/minesql mysql
答案 5 :(得分:0)
在我的情况下,解决方案是在docker-compose.yml
中编辑卷目录
来自:
image: mysql:5.6
volumes:
- ./db:/var/lib/mysql/data
收件人
image: mysql:5.6
volumes:
- ./db_data:/var/lib/mysql/data
然后再次运行
sudo docker-compose build
sudo docker-compose up
然后您可能需要为我的Rails app运行迁移sudo docker-compose run web rake db:create
。
答案 6 :(得分:0)
如果您正在运行Mac的Docker桌面,则可能是因为Docker.qcow2
已超过其最大大小。该文件的默认大小为64GB。您可以调整它的大小,或者使用更激烈的解决方案,将其删除:
rm ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
参考文献:
答案 7 :(得分:0)
通过以下方式修复它:
rm -rf /usr/local/Cellar/mysql
和 rm -rf /usr/local/var/mysql
并重新安装 mysql。
遇到另一个错误,已通过以下方式修复: Warning: The post-install step did not complete successfully, When trying to install mysql using brew in Mac OS High Sierra
答案 8 :(得分:0)
我遇到了类似的问题,但 mysql
中没有 /usr/local
文件夹。
就我而言,mysql
位于 /usr/local/var
内
所以rm -rf /usr/local/var/mysql
解决了问题
答案 9 :(得分:-1)
禁用SElinux。
Setenforce 0
还在/ var / logs / mysql文件夹中创建日志目录 它必须是mysql用户所有者
cd /var/log/
mkdir mysql
chown -R mysql:mysql mysql/
然后在/etc/my.cnf中更改日志目录