2017-12-17 69 views
-1

MySQL 서버에 연결하려고하지만 오류 메시지에서 알 수 있듯이 프로그램이 SQL 서버. MySQL에 연결하는 것을 어떻게 변경할 수 있습니까? 또한 매핑을 위해 NHibernate를 사용하고 있습니다. 이것이 문제가되어야합니까? MySQL Connector를 설치하고 References MySQL.Data 및 MySql.Web으로 추가했지만 아무 것도 변경하지 않았습니다. MySQL 서버에 연결 시도 중 : SQL Server에 연결하는 동안 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다.

내 클래스 :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

using NHibernate; 
using NHibernate.Cfg; 

namespace ConsoleApp1 
{ 
    class Program 
    { 
     public void testMethod() 
     { 
      Configuration config = new Configuration(); 
      config.Configure(); 

      ISessionFactory factory = config.BuildSessionFactory(); 
      ISession session = factory.OpenSession(); 
      ITransaction tx = session.BeginTransaction(); 

      User u = new User(); 
      u.Name = "AAA"; 
      u.Password = "BBB"; 

      session.Save(u); 
      tx.Commit(); 

      session.Close(); 
     } 

     static void Main(string[] args) 
     { 
      Program p = new Program(); 
      p.testMethod(); 
     } 
    } 
} 

그리고 이것은 전체 스택 추적입니다 : 또한

Unhandled Exception: System.Data.SqlClient.SqlException: 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) ---> System.ComponentModel.Win32Exception: The system cannot find the file specified 
    --- End of inner exception stack trace --- 
    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) 
    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, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) 
    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 
    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 
    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 oldConnection, DbConnectionInternal& connection) 
    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 
    at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 
    at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.Open() 
    at NHibernate.Connection.DriverConnectionProvider.GetConnection() 
    at NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare() 
    at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(Dialect dialect, IConnectionHelper connectionHelper) 
    at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactoryImplementor sessionFactory) 
    at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) 
    at NHibernate.Cfg.Configuration.BuildSessionFactory() 
    at ConsoleApp1.Program.testMethod() in C:\Users\Stark\Documents\Visual Studio Projects\ConsoleApp1\ConsoleApp1\ConsoleApp1\Program.cs:line 19 
    at ConsoleApp1.Program.Main(String[] args) in C:\Users\Stark\Documents\Visual Studio Projects\ConsoleApp1\ConsoleApp1\ConsoleApp1\Program.cs:line 36 

, 최대 절전 모드 설정 파일 :

<session-factory name="Test"> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="connection.connection_string">Server=localhost;DataBase=assignment_4;uid=root;pwd=1234</property> 

    <property name="show_sql">true</property> 

    <mapping assembly="ConsoleApp1" /> 
    </session-factory> 

</hibernate-configuration> 
+1

이 줄을 알 _System.Data.SqlClient.SqlException_ 설정에서 전자 정보 적절한 드라이버를 사용 하는가? 이것은 Sql Server 클래스에서 발생하는 예외이므로 구성의 어느 부분에서 MySql에 사용할 올바른 클래스를 나타내지 못했습니다. – Steve

+1

"NHibernate.Dialect.MsSql2008Dialect"및 "NHibernate.Driver.SqlClientDriver"가 올바르게 보이지 않습니다. 만약 당신이 MySql을 사용하려고한다면 - 확실히 NHibernate.Driver.MySqlDataDriver가되어야합니다. –

+0

모든 자격 증명에 별표 (***)를 사용하는 것이 좋습니다. – Tatranskymedved

답변