#程序员##IT教育##IT#MySQL8性能提升,可靠稳定,正在代替mysql5.6版本,近期开发项目,设计方案指定使用MySQL8,但是在开发过程中遇到MySQL8C#连接失败问题,先说机器开发环境,有MySQL Workbench、动软代码生成器、phpstudy的MySQL5.6和两个MySQL服务,一个服务用3306端口,一个服务用3307端口,MySQL8用3307端口,我来为大家科普一下关于mysql新建连接失败?以下内容希望对你有帮助!

mysql新建连接失败(MySQL8C连接失败)

mysql新建连接失败

#程序员##IT教育##IT#

MySQL8性能提升,可靠稳定,正在代替mysql5.6版本,近期开发项目,设计方案指定使用MySQL8,但是在开发过程中遇到MySQL8C#连接失败问题,先说机器开发环境,有MySQL Workbench、动软代码生成器、phpstudy的MySQL5.6和两个MySQL服务,一个服务用3306端口,一个服务用3307端口,MySQL8用3307端口。

首先是用压缩包命令行--console方式进行了服务安装,修改了native_password模式,Workbench可以连接,动软不能连接,C#代码也不能连接。native_password模式在my.ini里加了

default_authentication_plugin=mysql_native_password

用mysql打开命令行,输入了:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

FLUSH PRIVILEGES;

动软还是不行,C#也不行。并且localhost命令行还报错,错误如下:

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'。

ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

上面的命令可以,但是C#还是连接不上。

后来查网络说是再建个普通用户,用localhost,可以,试了不用,C#改成普通用户也连接不上。

实在没办法,用MySQL8的非压缩包方式进行了安装,这种向导模式可以在窗口里进行配置,配置了端口3307还有native_password模式,这时候突然发现:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

能够正常执行了,这是和压缩模式安装最大的区别,这个可以了,信心倍增,虽然动软还是连接不上,检查了C#的连接字符串,C#也能够连接上了。连接字符串如下:

public static string ConnectionString = "Data Source=localhost;Database=energysafe;port=3307;user id=root;password=root";

动软连接不上,是因为动软太旧了,里面的Connecter版本也太旧了,连接不了MySQL8,连接MySQL5.6没问题。

总之,这问题主要卡在了ALTER USER处理上,有些用命令不能解决的问题,就要换环境了,比如这里的换安装模式,用向导窗口msi方式安装MySQL8。

,