【MySQL】使用mysqld时,报错 [ERROR] [MY-013276] [Server] Failed to set datadir to ‘xxxxx‘ 解决办法

问题的起因是这样的

我的MySQL启动可以直接连接,但是就是无法使用密码验证,后来出现pymysql和MySQL连接的时候出现了无法鉴权的问题:pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

然后尝试了mysql -u root -p登录(其实也不记得自己当时到底有没有设置密码了),无论怎么输入密码都无法通过,但线下使用MySQL WorkBench却又可以连接到数据库

以为自己是忘记了密码,然后去找修改密码的教程

大部分SQL修改密码教程都是先关闭服务

net stop 服务名

然后用mysqld --console --skip-grant-tables --shared-memory跳过鉴权

然后使用mysql -u root -p直接登录,运行修改密码的语句

但是我在第二步就error了

【MySQL】使用mysqld时,报错 [ERROR] [MY-013276] [Server] Failed to set datadir to ‘xxxxx‘ 解决办法_第1张图片

后来发现是mysqld无法直接运行,原因应该是安装的时候发生了一些问题,导致MySQL Server没有安装完整,可能是用的服务名为mysql80导致的(比较奇怪)

最后删了mysql80这个服务重新启动就好了

mysqld -remove mysql80

mysqld --initialize-insecure

mysqld --install【MySQL】使用mysqld时,报错 [ERROR] [MY-013276] [Server] Failed to set datadir to ‘xxxxx‘ 解决办法_第2张图片

之后默认密码为空,就可以直接用mysql -u root -p登录了

【MySQL】使用mysqld时,报错 [ERROR] [MY-013276] [Server] Failed to set datadir to ‘xxxxx‘ 解决办法_第3张图片

之前MySQL Workbench 8.0文件夹下有data文件夹,就可以直接连接

之前MySQL Server 8.0文件夹下面没有data文件夹,执行上面语句之后就有了。

总之就是很奇怪

然后试了试mysqld,执行绕过鉴权语句

【MySQL】使用mysqld时,报错 [ERROR] [MY-013276] [Server] Failed to set datadir to ‘xxxxx‘ 解决办法_第4张图片

也行了

但是最终的问题还是没有解决,pymysql和MySQL还是连接不上,可能是因为其他的原因。

你可能感兴趣的:(数据库,报错,mysql,数据库)