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