我在我的项目中使用代码优先的方法。但是当我试图通过使用“update-database”命令运行数据库迁移时,我得到了空引用异常,并且当我运行应用程序时,我得到了以下配置错误:使用方法“mysql_native_password”对用户“root”的主机“localhost”进行身份验证失败,并显示消息:未知数据库“xxx”。
下面是连接字符串:
<add name="DefaultConnectionString" connectionString="server=localhost;port=3306;Database=cps;uid=root;pwd=root;" providerName="MySql.Data.MySqlClient" />
字符串
P.S:在其他系统上运行正常。
6条答案
按热度按时间f3temu5u1#
我得到了下面的错误的解决方案。
使用方法“mysql_native_password”对用户“root”的主机“localhost”进行身份验证失败,并显示消息:用户“root”@“localhost”访问被拒绝(使用密码:YES)
第一个月
=>删除密码
=>如果您有2个本地服务器,端口号不同,只需添加它,否则默认情况下将需要3306
watbbzwu2#
您的连接字符串需要一个名为
cps
的MySQL数据库。很可能您尚未在本地MySQL服务器上创建该数据库。专业提示:总是仔细阅读错误消息文本,问自己“这是什么意思?”
bmp9r5qi3#
使用方法“mysql_native_password”对用户“root”的主机“localhost”进行身份验证失败,并显示消息:Access denied for user“root”@“localhost”(using password:YES)
从
public string strconn =“SERVER = localhost ;DATABASE=restaurant;UID = root;pwd=12345678;convert zero datetime=True”;
成为
public string strconn =“SERVER = 127.0.0.1;DATABASE=restaurant;UID = root;pwd=12345678;convert zero datetime=True”; fix localhost to 127.0.0.1 in connectionstring
v6ylcynt4#
感谢所有的答案,但在我的情况下,@GirishBabuC说它的端口,并需要在连接字符串中附加端口,以防您使用其他然后默认端口.
字符串
在我的情况下,它是3307。
安装时要求端口。
5ktev3wc5#
这个问题可能会出现,这取决于MySQL的版本。欢迎您尝试此解决方案,看看它是否适合您。而不是使用
Uid=*;Pwd=*;
,使用user=*;password=*;
。原始连接字符串:
字符串
一个有用的
型
第一种方法适用于MySql 8,但不适用于MySql 5。
我还没有深入研究这些连接字符串配置背后的文档,但是,我注意到MySQL 5.7和8.0在某些情况下的差异。尽管承认没有花很多时间来弄清楚为什么有时会发生这种情况。
另外,请记住在进行任何权限更改后,在MySQL示例上执行
FLUSH PRIVILEGES
。这也可能会产生影响。brtdzjyr6#
将
;SslMode=None
添加到ConnString部分。