Articles of 数据库连接

如何判断是否有任何MySQL连接已被删除或超时?

客户端使用PHP连接到MySQL。 PHP脚本和MySQL数据库位于2台不同的Linux服务器上。 他抱怨数据库连接正在被丢弃或超时,并要求我去看看。 在MySQL中有什么地方可以告诉我什么和有多less连接被丢弃或超时? 我看着慢查询日志,没有看到任何东西。 有关如何诊断这个丢失/超时的数据库连接问题的任何build议? 谢谢

Codeigniter远程数据库连接问题

一个Codeigniter项目( 在Windows中 )需要连接远程Mysql数据库( 在Linux服务器上 )。 这里是我的database.phpconfiguration。 $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'xxx.xxx.x.xxx'; $db['default']['username'] = 'username'; $db['default']['password'] = 'password'; $db['default']['database'] = 'database'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] […]

mysqli_real_connect()往往需要5秒左右,即使在开发环境

mysqli_real_connect($connection, $url['host'], $url['user'], $url['pass'], substr($url['path'], 1), $url['port'], NULL, MYSQLI_CLIENT_FOUND_ROWS); 有什么理由可以花费很多时间来build立联系? 现在8个连接中约有3个会挂起5秒钟甚至更多。

Postgresql:由于目标机器主动拒绝,所以无法build立连接

在Azure中的Windows Server 2012 R2上运行Postgresql 9.5 在我的应用程序上运行一些loadtests时,出现无法连接到postgres服务器的错误。 在postgres的日志中,我收到以下消息: 无法从客户端接收数据:由于目标机器主动拒绝,无法build立连接。 只有当loadtest进入下一个场景时,才会发生这种情况,它会触发代码的不同部分。 所以需要新的数据库连接。 但是在10-20秒之后,其余的情况完美无缺,没有任何其他的打嗝。 所以这个问题似乎是TCP连接。 (我的代码重试了几次,但让它重试20秒是不可行的) 我在configuration文件中使用以下设置 postgresql.conf中 listen_addresses = '*' max_connections = 500 shared_buffers = 1024MB temp_buffers = 2MB work_mem = 2MB maintenance_work_mem = 128MB 的pg_hba.conf host all all 0.0.0.0/0 trust host all all ::/0 trust 我知道,我知道..接受来自所有人的连接不是保存,但是这只是为了testing的目的,并确保这些设置不会阻止任何连接。 所以这个答案是无效的 我一直在监视服务器上的连接数,在75的负载下稳定。Postgres使用大约350MB的RAM。 所以给定configuration和虚拟机规格(7GB RAM)应该有足够的空间来创build更多的连接。 但是,当下一个场景旋转起来时,连接数量不会增加,它会保持水平,并开始提供有关不能build立连接的日志消息。 这里可能是什么问题?

连接到mysql服务器(localhost)非常慢

其实它的一点复杂: 总结:连接到数据库是非常缓慢的。 页面渲染大约需要10秒,但页面上的最后一个语句是一个回声,我可以看到它的输出,而页面加载在Firefox(IE是相同的)。 在谷歌浏览器中,输出只有在加载完成后才可见。 不同浏览器的加载时间大致相同。 在debugging时,我发现它的数据库连接正在产生问题。 数据库在另一台机器上。 进一步debugging。 我在我的本地机器上部署了数据库..所以现在数据库连接是在127.0.0.1,但连接仍然需要很长时间。 这意味着问题是与APACHE / PHP,而不是与MySQL。 但后来我部署我的代码在另一台机器连接到数据库remote.and一切似乎很好。 基本上应用程序使用mod_rewrite的夫妇..但我删除了所有的.htaccess文件和缓慢的连接问题仍然.. 我在我的机器上安装了另一个APACHE,并使用默认设置。 连接还是很慢的。 我添加了以下语句来衡量执行时间 $stime = microtime(); $stime = explode(" ",$stime); $stime = $stime[1] + $stime[0]; // my code — it involves connection to DB $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $totaltime = ($mtime – $stime); […]

Rails 4数据库连接池错误

我有一个与NGINX和彪马托pipe应用程序。 每10个小时左右,应用程序就无法使用。 每当用户尝试连接时,都会显示以下错误消息: Error during failsafe response: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds) 这一直持续到应用程序重新启动。 我读过这是因为数据库连接池已满,所以必须在rails应用程序中创build线程,并在完成时不closures与数据库的连接。 据我所知,在线程被使用的应用程序代码中只有一个地方:一个块使用Ruby超时模块,但是这不会访问数据库。 按照这个指南https://devcenter.heroku.com/articles/concurrency-and-database-connections (我实际上并没有使用Heroku)我已经将数据库连接池的大小设置为5,使用以下configuration文件: #config/initializers/database_connection.rb Rails.application.config.after_initialize do ActiveRecord::Base.connection_pool.disconnect! ActiveSupport.on_load(:active_record) do config = ActiveRecord::Base.configurations[Rails.env] || Rails.application.config.database_configuration[Rails.env] config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 # seconds config['pool'] = ENV['MAX_THREADS'] || 5 ActiveRecord::Base.establish_connection(config) end 结束 该网站使用Rails 4.0.0进行托pipe。 我已经读过这实际上可能是一个Rails 4.0.0的问题,而这是固定在以后的版本,但我不确定这一点。 用Heroku和Postgres连接TimeTimeoutError […]

连接到SQL Server 2008 R2 Express时出错

我已经在Windows 7上安装了SQL Server 2008 R2 Express。 当我在VS2010中运行一个web项目时,我收到以下错误: 与SQL Serverbuild立连接时发生networking相关或特定于实例的错误。 服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。 (提供程序:SQLnetworking接口,错误:26 – 错误定位服务器/实例指定) 奇怪的是,我正在本地机器上(VS2010,IIS,SQL Server等,没有networking需要)。 我search并遵循了许多技巧。 没什么帮助。 我使用正确的实例名称(例如Data Source=PCName\SQLServer;Initial Catalog=SampleDBName;Integrated Security=True ) 给networking服务提供正确的凭证等等 现在我迷路了,现在有这个问题一个星期了。 把我的头发拉出来! 更新: 我有一个提示,用SQL Server Management Studio Expresstesting我的连接string。 在“连接”popup窗口中,通常使用“login”选项卡(第一个和默认选项卡)。 您也可以使用第三个选项卡“其他连接参数”。 我testing了我的连接string,它工作正常! 所以,我觉得这是有权利的。 但我不知道什么或哪些… 哦耶。 一些额外的信息。 我将IIS 7.5的Application Pool默认选项从“ApplicationPoolIdentity”更改为“NetworkService”。 我添加了networking服务作为login到SQL,授予权利等我打开SQL浏览器服务,服务正在运行(但它并不是真的必要,因为我运行本地)。 更新2: 这似乎是我find了什么原因造成的错误,但我不知道为什么。 对于我的网站,我创build了一个虚拟文件夹和应用程序的网站。 我需要一个url在我的逻辑。 因此,我使用主机头(如http://server.name.tld ) 在VS2010中,我configuration了属性页面 – >启动选项 – >使用自定义web服务器的URL(与前面提到的主机头相同)。 […]

为什么一个连接不得不打开,而不是填充数据集?

当我连接到C#应用程序中的SQL数据源时,可以使用以下代码填充数据集。 请注意,我不明确打开到数据源的连接。 SqlConnection cw_con = new SqlConnection("Server=Server;Database=Database;User=User;password=password"); SqlCommand cmd = new SqlCommand("SELECT * FROM Example WHERE value = value"); cmd.Connection = cw_con; //Create DataSet DataSet cw_ds = new DataSet("cw_ds"); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; //Execute Command and Fill DataSet da.Fill(cw_ds); cw_ds.Clear(); 但是,如果我想执行一个非查询如INSERT INTO或UPDATE为什么我必须使用connection.Open();显式打开连接connection.Open(); ? SqlConnection cw_con = new SqlConnection("Server=Server;Database=Database;User=User;password=password"); cw_con.Open(); SqlCommand cmd […]

embedded式数据库使用外部ODBC访问的build议?

有一个数据库可以embedded到Java程序中,但也允许通过ODBC访问; 更具体地说,通过ADOdb的ODBC? 环境是MS Windows(XP上)。 情况是,Java程序(我的)运行一个外部程序(不是我的),它使用ADOdb.Connection对象连接到embedded式数据库并提取数据。 哦,遗留支持。 我一直试图使用Derby(即JavaDB / Cloudscape)和NetworkServerControl对象进行设置,但无法弄清楚如何configuration系统DSN,使ADODB.Connection对象可以连接。 机会是我做错了,但我不知道如何指定到德比文件的path。 有没有可以用这种方式访问​​的embedded式数据库? 最好有一个(与Derby不同)不需要不受支持的第三方驱动程序来访问ODBC? 或者,我是否完全错误? 我不是很熟悉数据库,也不是一般的ADOdb或.NET。