连接到 MS SQL 服务器时出错

Posted

技术标签:

【中文标题】连接到 MS SQL 服务器时出错【英文标题】:Error connecting to MS SQL server 【发布时间】:2016-01-01 19:56:15 【问题描述】:

我在 web.config 文件中有以下连接字符串以连接到 MS Sql 数据库。

<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Server=developer\SqlExpress;Integrated Security=True;Database=mydb" providerName="System.Data.SqlClient"/>

我在同一台机器上有 MS SQL 服务器和 mysql 服务器。当我尝试运行应用程序时,在 machine.config 文件的第 285 行中出现以下错误。

错误:

解析器错误消息:对用户 '' 使用的主机 '' 进行身份验证 方法“mysql_native_password”失败并显示消息:拒绝访问 用户''@'localhost'(使用密码:NO)

<add name="MySqlSiteMapProvider"  type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

该错误与 mySQL 有关,但我正在尝试连接 MS SQL。

我该如何解决这个问题?

【问题讨论】:

你是使用SQL Server认证方式还是windows认证方式? 请查看更新后的错误信息。 把用户名和密码放在连接字符串里试试.. 将 C# 代码粘贴到您连接到 SQL 的位置。我怀疑你使用了错误的 connectionName 【参考方案1】:

我认为你应该尝试在 web.config 中删除它

<remove name="MySqlSiteMapProvider" />

【讨论】:

谢谢,我在安装后尝试运行 sharepoint server 2019 管理页面,但出现此错误,我有多个站点托管在同一台服务器上,有些是基于 php 的,需要 mysql 等在同一台服务器上我有 Microsoft SQL Server 2019 和 Mysql,看起来来自 MS 的基于 ASP.NET 的网站不喜欢 mysql ;)我仍在学习 IIS,这个答案对我帮助很大!注意: 标记已添加到配置中,但并没有解决问题,只有那个答案对我有用。【参考方案2】:

问题不在于连接到 SQL Server。问题是您的配置文件找到了一个名称为MySqlSiteMapProvider 的条目,该条目尝试连接到我的SQL Server,但它失败了。我不知道这个提供程序的用途,但你必须从你的应用程序代码中删除它,以及它的用法,或者更新它,以便它使用 SQL Server 而不是丢失或配置错误的 mySql。

【讨论】:

刚刚遇到同样的问题,不知道可以从哪里解决 :-(,我在 web.config 中删除了它【参考方案3】:

我遇到了这个问题

如果您使用网站面板,请转到面板>“网站”>选择网站并检查主页“文件夹选项卡”中的“启用写入权限”

【讨论】:

更改任何文件夹的权限如何影响数据库连接?【参考方案4】:

MySql 连接器正在创建问题。您可以通过转到控制面板->程序->程序和功能并右键单击 MySql Connector Net [version] 来更改它,其中 [version] 是已安装的 MySql Connector for .Net 的版本号,然后单击更改。然后单击 Next->Change ,然后单击 web providers 前面的下拉菜单并选择“整个功能将不可用”。然后单击并完成。你完成了。

【讨论】:

欢迎来到 Stack Overflow!请注意,您正在回答一个非常古老且已经回答的问题。这是How to Answer 的指南。【参考方案5】:

当您使用 MySql Connector Net 安装 Mysql 时会出现此问题。当 Mysql Connector Net 安装您的计算机时,它会根据您的 .net 版本配置您的“machine.config”。

有几种方法可以解决它。

1) 您可以在您的提供程序中添加&lt;clear /&gt; 标签。 “Machine.config”会覆盖您的自定义提供程序,因此我们在您的项目 web.config 中添加 &lt;clear /&gt; 标签来禁用它。

 <siteMap defaultProvider="SitefinitySiteMap">
  <providers>
    <!-- This line added. -->
    <clear />
    <add name="SitefinitySiteMap" type="Telerik.Sitefinity.Web.SitefinitySiteMap, Telerik.Sitefinity" />
  </providers>
</siteMap>

2) 第二种方法有点棘手,如果您将 Mysql 与 .net 一起使用,这可能会导致您的项目出错。

首先,您需要找到“machine.config”的位置。您可以在这里获取更多信息:https://***.com/a/2325492/3801977

就我而言,位置是:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

打开你的“machine.config”,找到以下行并将其删除:

<siteMap>
  <providers>
    <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
  </providers>
</siteMap>

【讨论】:

【参考方案6】:

您可以只注释掉提供程序,如下所示,而不是删除该行。它也会起作用。

<!-- <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/"/> -->

【讨论】:

【参考方案7】:

在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 路径下找到 machine.config 配置文件,并注释下面的标签。

<add name="MySqlSiteMapProvider"  type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

【讨论】:

以上是关于连接到 MS SQL 服务器时出错的主要内容,如果未能解决你的问题,请参考以下文章

远程连接到 MS SQL - 使用 pyodbc 时出错 vs 使用 SQL Server Management Studio 成功

连接到远程 SQL 服务器数据库 Visual Studio 2017 时出错

从 SQL Server Management Studio 连接到数据库服务器时出错

将 pyspark 连接到 SQL Server 时出错

无法使用 pymssql 烧瓶连接到 ms sql 服务器

使用 php 7.1.7 连接到 SQL Anywhere 16 时出错(找不到 dbcapi.dll)