MySQL“在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误". [英] MySQL "network-related or instance-specific error occurred while establishing a connection to SQL Server"

查看:79
本文介绍了MySQL“在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在寻找解决此问题的方法,唯一可能提供解决方案的方法是我没有尝试过的唯一方法,因为它涉及更改系统属性.我想避免这种情况.

I've been looking around for a solution to this issue and the only one that might provide a solution is the only one I haven't tried, because it involves changing system properties. I want to avoid that if I can.

连接字符串正确,但是仍然无法连接.

The Connection string is correct, but it still won't connect.

该异常发生在第30行,这是打开连接字符串的位置. conn.Open()

The exception occurs on line 30, which is where the connection string is opened. conn.Open()

这是代码:

using System.Text;
using System.Data.SqlClient;

namespace My_Sql_Program
{
    class Program
    {
        static void Main()
        {
            try
            {
                // Step 1: Create a SqlConnection Object to connect to the 
                // SQL Northwind database.
                SqlConnection conn = new SqlConnection("server=localhost;database=dcim;uid=root;pwd=LlmD62jL");

                // Step 2: Create a SqlCommand object.
                SqlCommand cmd = conn.CreateCommand();

                // Step 3: Set the CommandText property of the SqlCommand object to a 
                // SQL SELECT statment that retrieves a row from the Customers table.
                cmd.CommandText = "SELECT UserName, UserPassword, AuthorityLevel, " +
                    "FROM Users " +
                    "WHERE UserName = 'ben'";

                // Step 4: Open the database connection using the 
                // Open() method of the SqlConnection object.
                conn.Open();

                //Step 5: Create a SqlDataReader object and call the ExecuteReader()
                //Method of the SqlCommand object to run the SELECT statement.
                SqlDataReader rdr = cmd.ExecuteReader();

                // Step 6: Read the row from the SqlDataReader object using the Read() method.
                rdr.Read();

                // Step 7: Display the column values.
                Console.WriteLine("rdr[\"UserName\"] = " + rdr["UserName"]);
                Console.WriteLine("rdr[\"UserPassword\"] = " + rdr["UserPassword"]);
                Console.WriteLine("rdr[\"AuthorityLevel\"] = " + rdr["AuthorityLevel"]);

                // Step 8: Close the SqlReader object using the Close() method.
                rdr.Close();

                // Step9: Close the SqlConnection object using the Close() method.
                conn.Close();
            }
            catch (SqlException e) 
            {
                Console.WriteLine("An SqlException was thrown.");
                Console.WriteLine("Number = " + e.Number);
                Console.WriteLine("Message = " + e.Message);
                Console.WriteLine("StackTrace:\n" + e.StackTrace);
            }
            Console.ReadLine();
        }
    }
}

当我运行它时,大约30秒钟没有任何反应,然后打印出SqlException:

And when I run it, nothing happens for about 30 seconds, then the SqlException is printed:

An SqlException was thrown.
Number = 2
Message = A network-related or instance-specific error occurred while establishing a connection
to SQL Server. The server was not found or was not accessible. Verify that the instance name is
correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes
Provider, error: 40 - Could not open a connection to SQL Server)

StackTrace:
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean
breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean
breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,
Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds
connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean
trustServerCert, Boolean integratedSecurity, Boolean withFailover)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String
newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout,
Boolean withFailover)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String
newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString
connectionOptions, SqlCredential credential, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout,
SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString
newSecurePassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,
SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String
newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString
userConnectionOptions)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options,
DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection
owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool,
DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32
waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection,
DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,
TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,
TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,
DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions
userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at My_Sql_Program.Program.Main() in c:\users\paul\documents\visual studio 2010\Projects\My Sql
Program\My Sql Program\Program.cs:line 30

推荐答案

SqlConnection适用于SqlServer.要连接到MySql,您需要下载一些驱动程序并在您的项目中引用它,并改用MySqlConnection.

SqlConnection is for SqlServer. To connect to MySql you need to download some drivers and reference it in your project, and use MySqlConnection instead.

看看这个问题和这个 查看全文

相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆