欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
快捷导航
搜索
查看: 2314|回复: 7

[已回应] wordpress出现Error establishing a database connection

[复制链接]

1

主题

0

好友

60

积分

小白[LV1]

Rank: 1

云币
150
威望
60
发表于 2017-6-5 21:49:17 |显示全部楼层 |未分类
我购买的腾讯云1G内存的上海1区云主机,使用的腾讯云wdcp镜像,搭建了一个wordpress网站,就一个网站www.freechoice.cc,之前一切都正常,但是最近几天网站打开经常出现“Error establishing a database connection”然后会持续几个小时,主机重启后又恢复正常,但是过不了多长时间又会出现这一问题,求解决方法

14

主题

0

好友

542

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
1556
威望
542
发表于 2017-6-6 08:53:45 |显示全部楼层
Error establishing a database connection=无法连接到数据库,请检查用户名、密码
觉得问题可能在数据库的用户权限限制上,因为这问题出的最明显的时候是在试用了主题atahualpa后,这个主题功能强大,但是有个说法说他对数据库的读取量大(几十倍???)于是用默认主题。问题出现的时间段对于在美国的主机在北京时间的晚上刚好是人家大兵早上工作上网的高峰时间(服务器负荷大)。先在自己空间中控制数据库的访问量,可删除文章访问数统计插件WP-PostViews(因为每有一个人去访问WordPress它就需要访问一个数据库去更新数据)。
总结:Error establishing a database connection问题的出现不一定真是数据库有了错误,而可能是同一时间内数据库的访问量大耳出现主机的暂时限制(无法访问),所以要停用一些增加数据库读取的插件或主题。
PS:网上找的,不知有否帮助?
回复

使用道具 举报

14

主题

0

好友

542

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
1556
威望
542
发表于 2017-6-6 08:54:40 |显示全部楼层
查看代码,看几个插件是否有与数据库链接的代码没有修改
回复

使用道具 举报

14

主题

0

好友

542

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
1556
威望
542
发表于 2017-6-6 08:57:22 |显示全部楼层
  1. http://clin003.com/wp-use/error-establishing-a-database-connection-2226/
复制代码
找了一下,这个由介绍好几种错误,可以看下
回复

使用道具 举报

22

主题

10

好友

1万

积分

腾讯云论坛管理组

Rank: 20Rank: 20

云币
20769
威望
15212
发表于 2017-6-6 10:30:51 |显示全部楼层
打开 wordpress提示
“Error establishing a database connection ”,这段话意思是连接数据时出现错误。
找到下面这些:
代码如下        
/** WordPress数据库的名称,替换掉 “putyourdbnamehere” */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名,替换掉 “usernamehere” */
define('DB_USER', 'root');
/** MySQL数据库密码,替换掉 “yourpasswordhere” */
define('DB_PASSWORD', 'root');
/** MySQL主机名 */
define('DB_HOST', 'localhost');
DB_NAME为WordPress数据库的名称
DB_USER为MySQL数据库用户名
DB_PASSWORD为MySQL数据库密码
DB_HOST为MySQL主机名,一般默认localhost不用修改,特殊的可以修改成 localhost:3306/wordpress 这种形式
但还是解决不了于是就有了下面的解决过程,WORDPRESS出现这种情况的原因可能是:
1、无法连接到Wordpress使用的数据库。
你的wp-config.PHP中的数据库用户名和密码错误,或者你的数据库所在服务器挂掉了!也有可能是服务商短时间内限制(访问量突然暴涨的博客或使用一些消耗数据库连接的WP插件)。
解决办法是,确认wp-config.php中的用户名和密码信息正确。确认WP使用的数据库服务器没有挂掉(可以ping或直接重启?!)。确认数据库连接方式,是远程连接还是本地连接,有些配置的远程连接的可能出现连不上数据库的情况,也就会出现这个“Error establishing a database connection”提示,一般虚拟空间(GD的空间使用的远程数据库连接)或合租空间都是使用的本地连接(localhost)。
2、若服务器数据库是刚刚升级到 MySQL 5.0 以上,之前WP博客正常可访问。
这可能是由于mysql 5.0采用了一种新的密码验证机制,这需要客户端的版本要在4.0以上(PHP中的MYSQL客户端可以查看phpinfo得到),连接数据库时是用旧的密码机制,这会出现“Client does not support authentication protocol requested by server” 这样的错误提示,wordpress中就提示“Error establishing a database connection (可能密码错误)”。
解决办法:
方法1、在mysql中为wordpress数据库新建一个控制账户,然后修改wp-config.php中的数据库用户名和密码配置信息即可。方便简单!!
方法2、在mysql下:
代码如下        
mysql> SET PASSWORD FOR
-> ‘clin003′@’clin003.com’ = OLD_PASSWORD(‘newpwd’);
mysql> FLUSH PRIVILEGES;
这里的clin003替换成使用wordpress数据库的用户名,clin003.com替换成localhost或者某个域名,newpwd是该用户对应的密码。
还有一点是,查看phpinfo(),找MYSQL_SOCKET显示的mysql.sock的路径,确认mysql.sock的确在此路径下,否则需要做一个符号链接。比如phpinfo里显示MYSQL_SOCKET路径为/var/lib/mysql/mysql.sock,但实际上位于 /tmp/mysql.sock,可在命令行输入:
代码如下        
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
3、mysql服务设置不当,导致mysql连接数量超过限定值,或者应用程序设计有问题,导致大量休眠连接不能及时释放。
解决办法:
登陆mysql服务器
代码如下        
mysql -u root -p
使用命令
show processlist;
查看当前连接数量,如果进程过多,或存在大量超时的休眠sleep连接,编辑
代码如下        
/etc/mysql/my.cnf
vim /etc/mysql/my.cnf
在[mysqld]字段处,添加,或去掉注释
max_connections = 500 #增加mysql连接数
wait_timeout = 10 #断开超过10秒的连接
4、是wp_options数据库表错误,我把整个数据库表修复和优化了一次
wp_options中的表前缀wp根据自己实际情况查看!
WORDPRESS出现错误时,可以通过 DEBUG 参数调试:
根据Wp-config.php的调试功能排错
1、在 wp-config.php 有个 debug 的参数,打开这个参数,修改为:
define(‘WP_DEBUG’, ‘true’);
2、根据报错提示解决问题,比如以下错误:
WordPress database error: [Table './clin003_com/wp_options' is marked as crashed and should be repaired]
SELECT autoload FROM wp_options WHERE option_name = ‘_transient_doing_cron’
WordPress database error: [Table './clin003_com/wp_options' is marked as crashed and should be repaired]
SELECT autoload FROM wp_options WHERE option_name = ‘_transient_timeout_doing_cron’
WordPress database error: [Table './clin003_com/wp_options' is marked as crashed and should be repaired]
SELECT option_value FROM wp_options WHERE option_name = ‘_transient_doing_cron’ LIMIT 1
wp_options 表坏了,需要被修复,使用 mysql 客户端。
进 mysql 使用修复的命令修复:
代码如下        
mysql>repair table wp_options;
也可以通过phpMyAdmin来进行修复。
3、问题解决,关掉 DEBUG。
根据mysql的日志记录排错
在mysql的log日志文件
代码如下        
mysql/data/
里面找到一个.err结尾的文件,打开。看见了一排
‘.\clin003_com\wp_options’ is marked as crashed and should be repaired
‘.\clin003_com\wp_options’ is marked as crashed and should be repaired
‘.\clin003_com\wp_options’ is marked as crashed and should be repaired


转载自网络  应该和服务器没啥关系
回复

使用道具 举报

2

主题

0

好友

4610

积分

版主

Rank: 7Rank: 7Rank: 7Rank: 7

云币
12180
威望
4610
发表于 2017-6-7 11:53:01 |显示全部楼层
应该是资源占用过高,数据库宕掉了吧!
建议优化下相关资源。

还有最好不要使用wdcp,这种东西很占资源的,最开始的时候,我自己也用,网站也挂了几次,就不用了。建议楼主按照LNMP或者LNMP安装包。

我目前也是上海取得服务器,1G/1M的,一台下挂了几个网站没问题!
回复

使用道具 举报

1

主题

0

好友

120

积分

小白[LV1]

Rank: 1

云币
420
威望
120
发表于 2017-11-7 16:57:15 |显示全部楼层
阿洛克 发表于 2017-6-7 11:53
应该是资源占用过高,数据库宕掉了吧!
建议优化下相关资源。

大哥我用的是wdcp的面板,web引擎是apache 。最近经常出现Error establishing a database connection。
虽然重启服务器就好了,但是经常出现这个问题,怎么处理呢?我是1g内存

点评

阿洛克  你重启服务器就好了,100%是服务器资源占用过高,你看看内容,还有cpu使用率 我不建议你使用wdcp这个产品本身就占内存。 还有查看你的wordpress都使用了哪些资源。  详情 回复 发表于 2017-11-10 09:10
回复

使用道具 举报

2

主题

0

好友

4610

积分

版主

Rank: 7Rank: 7Rank: 7Rank: 7

云币
12180
威望
4610
发表于 2017-11-10 09:10:04 |显示全部楼层
ā⊙ǔ 发表于 2017-11-7 16:57
大哥我用的是wdcp的面板,web引擎是apache 。最近经常出现Error establishing a database connection。
...

你重启服务器就好了,100%是服务器资源占用过高,你看看内容,还有cpu使用率
我不建议你使用wdcp这个产品本身就占内存。
还有查看你的wordpress都使用了哪些资源。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2019-8-18 05:54 , Processed in 1.173791 second(s), 30 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部