我想弄清楚我是否做错了什么。我有一个MVC5 EF6项目。我已将其放在共享主机服务器上的public_html文件夹中。我创建了一个MySQL数据库并为其添加了一个用户。我确保在项目中包含和引用了MySql.Data.Entity.EF6.dll和MySql.Data.dll。
我的web.config中有以下连接字符串:
<connectionStrings>
<add name="DefaultConnection" providerName="MySql.Data.MySqlClient" connectionString="server=s023.someserver.com;UserId=shost_admin;Password=1Ycdcamj71Zh;database=shost_MySite;CharSet=utf8;Persist Security Info=True"/>
</connectionStrings>
我尝试了很少的东西,我删除了charset和Persist Security Info行,但它仍然无法正常工作。服务器部分我不是100%确定从哪里获得,所以我通过运行以下查询从PHP我的管理员那里得到它:
SHOW VARIABLES WHERE Variable_name = 'hostname'
在本地,我使用SQL Server数据库进行测试,并且工作正常,没有任何障碍。连接字符串名称是相同的,所以我知道它试图找到正确的连接字符串,但我觉得我错过了配置。
我每次收到的错误消息是:
访问数据库时出错。这通常意味着与数据库的连接失败。检查连接字符串是否正确,以及是否使用了相应的DbContext构造函数来指定它或在应用程序的配置文件中找到它。有关DbContext和连接的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=386386。有关失败的详细信息,请参阅内部异常。
编辑:
发现问题,我还必须在web.config中指定端口和entitiy框架部分。
在此完整答案:http://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html
答案 0 :(得分:0)
问题是连接字符串没有指定端口。