我在项目中使用代码优先方法。但是,当我尝试使用'update-database'命令运行db-migrations时,我得到空引用异常,当我运行应用程序时,我收到以下配置错误: 使用方法'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:在其他系统上正常运行。
答案 0 :(得分:1)
您的连接字符串要求名为cps
的MySQL数据库。您可能还没有在本地MySQL服务器上创建该数据库。
专业提示:请务必仔细阅读错误消息文字,问自己“这意味着什么?”
答案 1 :(得分:0)
我针对以下错误的解决方案。
使用方法'mysql_native_password'对用户'root'的主机'localhost'进行身份验证失败,并显示以下消息:用户'root'@'localhost'的访问被拒绝(使用密码:是)
<add name="constring" connectionString="Server=localhost;Uid=root;Database=databasename;Port=3306;" providerName="MySql.Data.MySqlClient"/>
=>只需删除密码
=>如果您有2个具有不同端口号的本地服务器,只需添加它,否则默认情况下它将花费 3306
答案 2 :(得分:0)
使用方法'mysql_native_password'对用户'root'的主机'localhost'进行身份验证失败,并显示以下消息:用户'root'@'localhost'的访问被拒绝(使用密码:是)
来自
公共字符串strconn =“ SERVER =本地主机; DATABASE =餐厅; UID =根; pwd = 12345678;转换为零datetime = True”;
成为
公共字符串strconn =“ SERVER = 127.0.0.1; DATABASE = restaurant; UID = root; pwd = 12345678; convert 0 datetime = True”; 在连接字符串中将localhost修复为127.0.0.1
答案 3 :(得分:0)
感谢所有答案,但是就我而言,@ GirishBabuC表示其端口,并且需要在连接字符串中附加该端口,以防您使用其他而非默认端口。
<add name="constring" connectionString="Server=localhost;Uid=root;Database=databasename;Port=3307;" providerName="MySql.Data.MySqlClient"/>
我的情况是3307。
在安装时要求端口。