初始化mysql目录错误

时间:2016-06-05 16:21:03

标签: php mysql

我查了这个页面: 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?

我不知道如何解决第二个问题。

10 个答案:

答案 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

enter image description here

答案 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/mysqlrm -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中更改日志目录