【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了

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

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

mysqld -remove mysql80

mysqld --initialize-insecure

mysqld --install

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

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

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

总之就是很奇怪

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

也行了

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值