首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate MySqlException

NHibernate MySqlException
EN

Stack Overflow用户
提问于 2018-06-11 09:54:32
回答 1查看 192关注 0票数 0

我正在尝试使用NHibernate到我的MySQL,但是我仍然对本地主机数据库的连接有问题。

展览:

代码语言:javascript
复制
MySql.Data.MySqlClient.MySqlException
  HResult=0x80004005
  Message=Unable to connect to any of the specified MySQL hosts.
  Source=MySql.Data
  StackTrace:
   at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.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 TestE.Model.NHibernateHelper.get_Session() in C:\Users\hajek\source\repos\TestE\TestE\NHibernateHelper.cs:line 24
   at TestE.Dao.DaoBase1..ctor() in C:\Users\hajek\source\repos\TestE\TestE\Dao\DaoBase.cs:line 20
   at TestE.Dao.ItemDao..ctor() in C:\Users\hajek\source\repos\TestE\TestE\Dao\ItemDao.cs:line 13
   at TestE.Program.Main(String[] args) in C:\Users\hajek\source\repos\TestE\TestE\Program.cs:line 16
Inner Exception 1:
WaitHandleCannotBeOpenedException: No handle of the given name exists.

代码:

代码语言:javascript
复制
namespace TestE.Model
{
    public class NHibernateHelper
    {
        private static ISessionFactory factory;
        private static MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder();
        public static ISession Session
        {
            get
            {
                if (factory == null)
                {
                    Configuration cfg = new Configuration();
                    factory = cfg.Configure("hibernate.cfg.xml").BuildSessionFactory();

                }

                return factory.OpenSession();
            }
        }



    }
}

hibernate.cfg.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- 
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it 
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  <session-factory name="TestE">
    <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
    <property name="connection.connection_string">
      Database=todo_list;Data Source=localhost;User Id=root;Password=root;
      Protocol=memory;Old Guids=True;
    </property>
    <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
  </session-factory>
</hibernate-configuration>

配置位于~/bin/debug中,Nhibernate可以看到它,但仍然不能连接到数据库。

--对不起,我的英语。

EN

回答 1

Stack Overflow用户

发布于 2018-06-11 16:28:19

默认情况下,在Windows上共享内存未启用。这可能是您的连接失败的原因。

从连接字符串中删除Protocol=memory;以使用常规的TCP/IP连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50794961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档