php频繁刷新网页运行一段时间后出现数据库连接错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php频繁刷新网页运行一段时间后出现数据库连接错误?相关的知识,希望对你有一定的参考价值。

因为我需要实时获取数据库里的内容 用php查询数据库并输出内容 因为每秒要刷新一次 运行一段时间就会出现数据库连接错误 求大神指点指点我是初学者 有代码示例最好 谢谢

这是由于数据库连接数过多导致的,说明之前建立的连接你没有释放。

看到你的需求是实时获取数据库里面的内容,可以考虑使用内存数据库,这样返回的效率高,也会避免过多连接的错误。

可以使用redis和memcache来解决这个问题。代码如下,记得首先要安装redis,并且要安装php-redis扩展。

<?php

$redis = new Redis();  

$redis->connect('127.0.0.1', 6379);//serverip port

$redis->auth('mypassword');//my redis password 

$redis ->set( "test" , "Hello World");  

echo $redis ->get( "test");

参考技术A php每次新来页面都会跟mysql建立新的连接,但是mysql有一个设置的最大连接数据,
show variables like '%max_connections%';
这个可以看下你的mysql最大连接数据,如果设置小了可以调整大点!
另外就是在程序里面一定要在程序结束的地方调用关闭连接mysql的方法,断开连接释放mysql的连接数

ORA-28000: 帐户被锁定错误频繁出现

【中文标题】ORA-28000: 帐户被锁定错误频繁出现【英文标题】:ORA-28000: the account is locked error getting frequently 【发布时间】:2015-01-07 15:29:13 【问题描述】:

我收到错误:

 ORA-28000: the account is locked 

这是数据库问题吗?当我暂时使用命令ALTER USER username ACCOUNT UNLOCK 解锁用户帐户时,它会正常。然后在一段时间后再次发生相同的帐户锁定。

使用的数据库是oracleXE

其他人有同样的问题吗?

【问题讨论】:

最有可能的是,某些进程正在尝试使用不正确的密码登录该帐户。我猜该帐户已被锁定,因为它超过了允许的错误登录次数。 【参考方案1】:

问题的原因之一可能是您使用的密码策略。

如果您没有此类政策,请使用以下查询检查DEFAULT 配置文件中密码属性的设置:

SELECT resource_name, limit
FROM dba_profiles 
WHERE profile = 'DEFAULT'
AND resource_type = 'PASSWORD';

如果需要,您只需使用以下查询将PASSWORD_LIFE_TIME 更改为unlimited

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

这个Link 可能对您的问题有所帮助。

【讨论】:

【参考方案2】:

这里仅解锁被阻止的用户的其他解决方案。从您的命令提示符日志中作为 SYSDBA:

sqlplus "/ as sysdba"

然后输入以下命令:

alter user <your_username> account unlock;

【讨论】:

【参考方案3】:

解锁用户的方式:

$ sqlplus  /nolog
SQL > conn sys as sysdba
SQL > ALTER USER USER_NAME ACCOUNT UNLOCK;

并打开新终端

SQL > sqlplus / as sysdba
connected
SQL > conn username/password  //which username u gave before unlock
它会询问新的password:password 它会要求重新输入password:password 按回车键即可登录

【讨论】:

如果账户因密码过期而被锁定,可能需要重置密码才能再次登录:***.com/questions/3086332/…【参考方案4】:

在 oracle 数据库服务器机器上登录 SQL Plus 客户端。

输入用户名:系统

输入密码:密码 [仅当您在安装数据库时没有更改默认密码时]

按回车键。之后,您将看到连接状态。

现在,

SQL> ALTER USER [USER_NAME] ACCOUNT UNLOCK;

按回车键。

您将看到消息:user altered.

现在尝试使用 db client[sqldeveloper] 上的用户名登录。

【讨论】:

【参考方案5】:

检查PASSWORD_LOCK_TIME 参数。如果设置为 1,那么即使发出 alter user unlock 命令,您也将无法在 1 天内解锁密码。

【讨论】:

【参考方案6】:

我也遇到过类似的问题,通过以下步骤解决了:

    打开 Windows 命令提示符。 使用命令sqlplus "/ as sysdba"登录 然后执行命令alter user HR identified by password account unlock 请注意,password 是我使用的密码。 通过上述步骤,您可以使用密码密码以 HR 用户身份连接到 Oracle 数据库。

【讨论】:

【参考方案7】:

解决方案01

使用以下查询解锁帐户:

SQL> select USERNAME,ACCOUNT_STATUS from dba_users where username='ABCD_DEV';    
USERNAME             ACCOUNT_STATUS
-------------------- --------------------------------
ABCD_DEV       LOCKED

SQL> alter user ABCD_DEV account unlock;    
User altered.

SQL> select USERNAME,ACCOUNT_STATUS from dba_users where username='ABCD_DEV';    
USERNAME             ACCOUNT_STATUS
-------------------- --------------------------------
ABCD_DEV       OPEN

解决方案02

使用以下查询检查PASSWORD_LIFE_TIME 参数:

SELECT resource_name, limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_type = 'PASSWORD';

RESOURCE_NAME                    LIMIT
-------------------------------- ------------------------------
FAILED_LOGIN_ATTEMPTS            10
PASSWORD_LIFE_TIME               10
PASSWORD_REUSE_TIME              10
PASSWORD_REUSE_MAX               UNLIMITED
PASSWORD_VERIFY_FUNCTION         NULL
PASSWORD_LOCK_TIME               1
PASSWORD_GRACE_TIME              7
INACTIVE_ACCOUNT_TIME            UNLIMITED

使用以下查询更改参数

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

【讨论】:

以上是关于php频繁刷新网页运行一段时间后出现数据库连接错误?的主要内容,如果未能解决你的问题,请参考以下文章

Windows 2008 下 PHP 开启 opcache 后频繁 500 错误解决方式

superset连接sqlite频繁断开

IIS 6.0上的网站在运行一段时间之后无法访问,之前已经连接的页面可以用,关掉之后就再无法连接

网页缓存数据馈送

nginx+php运行几天后偶尔会出现404错误

错误信息:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败,怎么解决啊!