问题的起因是这样的
我的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还是连接不上,可能是因为其他的原因。