【MySQL】initialize specified but the data directory has files in it. Aborting

我们在安装mysql的时候可能会遇到这个问题:

是不是执行了这个命令呢?

mysqld --initialize --user=mysql


        报这个错误的原因是因为你的mysql数据库已经进行初始化了,所以不能用这种方式再进行初始化用户了,因为mysql在初始化的时候会自动创建一个root用户的。

这个时候我们应该怎么办呢?

1、找到数据库目录

我们可以在mysql的配置文件中找到数据库的目录:

vi /etc/my.cnf


在其中我们可以找到datadir这个配置:

这里配置的就是我们的mysql数据库的目录

2、移动(备份)数据库文件

首先要保证mysql处于停止状态,然后

cd /var/lib
mv mysql mysql_bak


我们这里是把mysql文件夹重命名成了mysql_bak,然后我们就可以执行初始化用户的语句了:

mysqld --initialize --user=mysql


然后我们可以启动数据库看看能不能用这个账户登陆了。

 

其他方法 

移动了数据库文件之后,我们可以清理一下日志文件:

echo ''->/var/log/mysqld.log


然后重新启动mysql的服务:

service mysqld start


这个时候会在日志中看到数据库初始化时候创建的root用户和密码:

【MySQL】initialize specified but the data directory has files in it. Aborting_第1张图片

之后,我们可以用这个密码登陆数据库进行修改密码的操作了。
 

你可能感兴趣的:(mysql,Mysql应用)