WordPressの’Error establishing a database connection’(データベース接続の確立エラー)通知は、ユーザーからサイトにアクセスできなくなる致命的なエラーです。WordPressがデータベースに接続できない場合に発生します。
この接続には複数の要因が影響する可能性があるため、初心者がこのエラーをトラブルシューティングするのは少し難しいかもしれない。
過去16年間WordPressでブログを運営してきましたが、「Error establishing a database connection」を含む様々なエラーや警告に遭遇してきました。私たちの経験と多くの試行錯誤を通じて、サイトを中断することなくこれらの問題をトラブルシューティングする方法を学びました。
この投稿では、WordPressサイトの「Error establishing a database connection(データベース接続の確立エラー)」を簡単に修正する方法を順を追って説明します。
WordPressのデータベース接続確立エラーの原因は?
データベースとは、データを簡単に保存、整理し、他のソフトウェアから取り出すためのソフトウェアである。
コンテンツ管理システムであるWordPressは、すべてのコンテンツやその他のサイトデータを保存するためにデータベースを使用します。そして、誰かがあなたのサイトにアクセスするたびにデータベースに接続します。
WordPressはデータベースに接続するために以下の情報が必要です:
- データベース名
- データベースのユーザー名とパスワード
- データベースサーバー
この情報は、wp-config.phpと呼ばれるWordPressの設定ファイルに保存されます。
これらの情報に誤りがある場合、WordPressはデータベースサーバーへの接続に失敗し、「Error establishing a database connection(データベース接続の確立エラー)」というエラーが表示されます。
WordPressで最もよく見られるエラーのひとつです。不正なログイン情報以外にも、データベースサーバーがダウンしていたり、データベースファイルが破損している場合にもこのエラーが表示されることがあります。
それでは、WordPressの「Error establishing database connection(データベース接続の確立エラー)」問題を解決する方法を、ステップ・バイ・ステップのトラブルシューティングとともに見ていきましょう。
1.WordPressデータベースのログイン情報を確認する
ログイン情報が正しくない ことが、データベース接続エラーの最も一般的な原因です。WordPressサイトを最近新しいホスティングサービスに移行した場合は、この問題が考えられます。
WordPressデータベースのログイン情報は、wp-config.phpファイルに保存されています。これはWordPressの設定ファイルで、データベース情報を含む重要な設定が含まれています。
wp-config.phpファイルを編集したことがない場合は、初心者向けのwp-config.phpファイルの編集方法をご覧ください。
wp-config.phpファイルで以下の行を探します:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
ここで、データベース名、ユーザー名、パスワード、データベースホストの情報が正しいことを確認しなければなりません。
この情報は、WordPressホスティングアカウントのダッシュボードから確認できます。このチュートリアルでは、Bluehost を使用しますが、他のホスティング パネルでも同様のプロセスになります。
ログイン中、左カラムの「ウェブサイト」タブをクリックし、「詳細設定」タブに切り替えます。次に、「データベース」セクションまでスクロールダウンし、その横にある「管理」ボタンをクリックします。
これにより、cPanelのMySQL Databasesページが新しいウィンドウで開きます。
ここで、’Current Database’ セクションにデータベース名とユーザー名があります。これらの情報をコピー&ペーストして、wp-configファイルに追加してください。
次に、「現在のユーザー」セクションまでスクロールダウンし、データベース名の横にある「パスワードの変更」リンクをクリックします。
新しい画面が表示され、データベースのパスワードを変更することができます。
データベースの詳細をすべて確認したら、必要に応じてwp-config.phpファイルで情報を変更できます。
その後、もう一度サイトにアクセスしてみて、データベース接続エラーがなくなっているかどうかを確認してください。
それでもエラーが表示される場合は、何か他の問題があることを意味します。
2.データベースホスティングサービス情報の確認
データベース名、ユーザー名、パスワードの情報が正確であることを確信している場合は、正しいデータベースホスティング情報を使用していることを確認してください。
ほとんどのWordPressホスティング会社は、データベースのホスティングサービスとしてlocalhostを使用しています。しかし、一部のマネージドWordPressホスティング会社は、データベースのホスティングサービスに区切りのサーバーを使用しています。その場合、データベースのホスティングサービスはlocalhostではありません。
つまり、WordPressホスティングサービス会社に連絡して、これらの詳細を確認する必要があります。
3.WordPressデータベースの修復
現在、wp-adminダッシュボードで「1つまたは複数のデータベーステーブルが使用できません」や「データベースの修復が必要な場合があります」など、別のエラーが表示されている可能性があります。その場合は、データベースを修復する必要があります。
これは、wp-config.phpファイルに以下の行を追加することで可能です。本当に〜してもよいですか?Happy blogging’の行の直前に追加してください:
define('WP_ALLOW_REPAIR', true);
設定が完了したら、このページhttp://www.yoursite.com/wp-admin/maint/repair.php。yoursite.comを自分のドメイン名に置き換えてください。
ここで、「データベースの修復」ボタンをクリックしてプロセスを開始する必要があります。
注:データベース修復ページにアクセスするために、ユーザーはログイン中である必要はありません。データベースの修復と最適化が完了したら、wp-config.phpからこの行を削除してください。
しかし、サイトにコードを追加したくない場合は、ホスティングアカウントのcPanelを使用してデータベースを修復することもできます。
ホスティングサービスアカウントにアクセスし、左の列から「ウェブサイト」ページを開きます。次に、’Advanced’タブに切り替え、データベースセクションの’Manage’ボタンをクリックします。
新しいタブでcPanelが開きます。ここで、「データベースの修正」セクションまでスクロールダウンし、「データベースの修復」ドロップダウンメニューからデータベース名を選択します。
そうしたら、「データベースの修復」ボタンをクリックしてプロセスを開始する。
ホスティングサービスパネルが自動的にデータベースを修復します。
プロセスが完了すると、成功のメッセージも表示されます。
これでWordPressサイトにアクセスして、エラーが解決したかどうかを確認することができます。
4.データベースサーバーがダウンしていないか確認する
すべてが正しいように見えてもWordPressがデータベースに接続できない場合は、データベースサーバー(MySQLサーバー)がダウンしている可能性があります。
これは、サーバーのトラフィックが多いために起こる可能性があります。ホスティングサービスのサーバーが負荷に耐えられないのです(特に共有ホスティングの場合)。
このため、サイトが遅くなり、ユーザーによってはエラーが出力されることもあります。この場合、ホスティングサービスプロバイダーと電話またはライブチャットで、MySQLサーバーがレスポンシブかどうかを確認する必要があります。
さらに、同じサーバーで他のサイトを運営している場合は、それらのサイトをチェックして、SQLサーバーがダウンしていることを確認することができる。
同じホスティングアカウントに他のサイトがない場合は、ダッシュボードに移動し、[詳細設定]タブに切り替えるだけです。
その後、phpMyAdminセクションの横にある「管理」ボタンをクリックします。
新しいウィンドウでphpMyAdminが開きますので、一番上の「データベース」設定をクリックしてください。
その後、データベースの名前をクリックして、その設定にアクセスしてください。それができたら、データベース・ユーザーに十分な権限があるかどうかをチェックしましょう。
そのためには、testconnection.phpというファイルを新規作成し、以下のコードを貼り付ける必要があります:
<?php
$link = mysqli_connect('localhost', 'username', 'password');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>
コードを貼り付けたら、ユーザー名とパスワードを自分のものに置き換えてください。このファイルをサイトにアップロードし、ウェブブラウザーからアクセスすることができます。
スクリプトが正常に接続された場合は、ユーザーに十分な権限があることを意味します。
次に、wp-configファイルに戻り、すべての詳細が正確で、タイプミスがないことを確認するためにスキャンする必要があります。
ユーザーにとって効果的だったその他のソリューション
上記のトラブルシューティングのヒントでサイト上のデータベース接続エラーを修正できない場合は、以下の追加手順をお試しください。
ユーザーからの報告によると、これらの手順でサイト上のデータベース接続エラーを解決したユーザーもいます。
1.WordPressサイトのURL更新
cPanelのphpMyAdminを使ってWordPressサイトのURLを更新してみてください。
ホスティングアカウントのダッシュボードからphpMyAdminにアクセスし、リストからWordPressデータベースを選択するだけです。
その後、上部のSQLメニューに切り替え、次のMySQLクエリーを入力する:
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
このように見えるはずだ:
WordPressのテーブル接頭辞を変更している可能性があるので、自分のサイトURLをプロバイダーで指定し、wp_optionsを
自分のテーブル名に変更することをお忘れなく。
2.Webサーバーの再起動
専用サーバー、ローカルサーバー、仮想専用サーバー(VPS)のユーザーは、サーバーの再起動を試すことができる。
これによりWebサーバーとデータベースサーバーが再起動され、エラーの原因となる一時的な不具合が修正される可能性があります。
3.助けを求める
他のすべてがうまくいかない場合は、ホスティングサービス会社に連絡する必要があるかもしれません。すべての優れたWordPressホスティングサービス会社は、トラブルシューティングを手伝い、正しい方向を示し、あるいは問題を解決してくれます。
WPBeginnerプロサービスのようなプラットフォームを使ってWordPress開発者を雇い、リーズナブルな料金でこの問題を解決することもできます。WPBeginner Pro Services には、WordPress の問題を解決するために信頼できる専門の開発者チームがあります。
サイトのメンテナンス、ハッキングされたサイトの修復、スピードの最適化、サイトの再構築、SEOの最適化などのサービスも利用できる。
この投稿がWordPressの「Error establishing a database connection」問題の解決に役立てば幸いです。WordPressの問題を自分で解決するためのヒントについては、WordPressトラブルシューティングガイド、またはWordPressでカスタムデータベースエラーページを追加する方法についてのチュートリアルもご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Edmundo Rubio
Thanks it work.
viraj
Thank you, it worked for me while connecting database from phpmyadmin.
Tom
I’m trying to install wordpress on my local pc running window 10. I have installed Xampp, made all the changes to use port 8080. No problem starting Xampp. No problem starting Apache or Mysql. I can open phpmyadmin from the admin button without problem and was able to add a database. if I enter http://localhost:8080 it brings up the Xampp page. However when I enter http://localhost:8080/wp to install wordpress the web page times out, but does nothing. I extracted the wordpress files into the htdocs folder and made the changes to the wp-config.php file to use localhost:8080.
At this point I have no other idea what to do to get the install done and could really use some help.
WPBeginner Support
Hi Tom,
You will need to copy paste WordPress files in /htdocs/wp/ folder instead of /htdocs/ folder.
管理者
Sandy
Thank you! worked!
Jude
Unable to install word press on godaddy. Won’t even complete the installation. “Application has Errors”. – Need it urgently!! Please help
Shubham Tiwari
Hello WPBeginner,
I am currently running Viral Website. Many viral websites have some plugins. I am attaching link of the screenshot Here
In viral website niche, we need to see how many real time users are there on a particular story because, to see the viralness of new stories we need to see the real time users for a post. We use Google Analytics but Data Mining is too hard in google analytics to see if our story is going viral or not. By looking at the real time users for a particular story, we make conclusions that which of our story is going viral on social media.
Can you please provide me details? How can i show my Live story readers on the story/article page. I want my users to see how many live users are reading this particular story.
Is there any script code or any plugin for this type of feature?
Richard
Brilliant, this guided towards me getting this fixed!! Also had to change upload a new wp-settings.php file.
Thanks
Destiny
To allow use of this page to automatically repair database problems, please add the following line to your wp-config.php file. Once this line is added to your config, reload this page.
define(‘WP_ALLOW_REPAIR’, true);
Ben Horle
Massive thank you! 1st task fixed my site!
WPBeginner Support
Hi Ben,
Glad you found it helpful You may also want to subscribe to our YouTube Channel for WordPress video tutorials.
管理者
Denis
Thanks!!! Thanks to you my site work again!
Happy
Mike
Had this error trying to install WP at home for testing on Windows laptop. Tried everything and then noticed that my character set in the wp-config.php file where i defined the parameters for accessing the database contained characters that were not standard. The apostrophe character was not the standard windows font character. Once i replaced and made them all the same character WP installed without issue.
Nirav Jagad
please someone connect my computer with teamwork and resolve my problem
Error establishing a database connection
Bas Dost
I have the same problem.
Let me know if you have any suggestions.
Thanks.
ivano
Worked for me by replacing “localhost” withe the IP you provided. Thank you!
miranda
i dont get it
Michael
[SOLVED] My databases were all working fine – turns out the problem was the password itself. The password contained three symbols &(= which I guess was messing with PHP. I’m not the best in PHP but I suspect the problem was with the symbol “=”. So once I changed the password, it worked just fine. Good luck, hope this helps.
Wills Perkins
Thanks guys, you’ve saved me from having a melt down
Editorial Staff
You’re welcome
管理者
murad
Thanks. Solved my problem.
irnem
What exactly helped? I checked everything – still doesn’t work. In the section “Check your Web Host (MySQL Server)” they are talking about testconnection.php file, what should I do after I created it and put on WP dir? how can i run this code? (sorry, i’m a beginner in this area)
Ash
What also can be really handy! Especially if you use Wordpress on IIS6/7/8 on Windows Server.. Check if the MySQL service is running.. And also if it is running on the correct user account! Normally this should be just the Local System!
Gwyneth Llewelyn
Even those who are not exactly absolute beginners to WordPress get often stumped by this error! Thanks to your systematic approach, I managed to track down the ‘error’ in my installation — a corrupt MySQL database, which was anything but apparent, since all tables seem to be in the right place, and checking/optimizing them would give no errors… but clearly there was something very, very wrong.
Dumping the database and re-importing it from a backup did the trick!
Thank you so much
Jeff
Thank you so much for writing this and all of the comments. My site was fixed by replacing the line
/** MySQL database password */
define(‘DB_PASSWORD’, ‘[some random numbers and letters]’);
with
/** MySQL database password */
define(‘DB_PASSWORD’, [my usual wp-admin login password]’);
Not sure if this is correct way to fix it but it did work.
Brett
I went back into my cpanel and re-inputted the same passwords for my 2 of 4 sites that weren’t working and that got them back up and running.
STANISLAUS
I am glad I was able to fix this issue on my site after 4 days. In my own case it said the wp-option table crashed. And I ran the repair, the result showed it was not successful but in actual sense, it was repaired.
After I got that unsuccessful repair message, I initiated a like chat with my service provider but they checked the site and informed me that that my site was alive and I was happy.
Thanks
Jigar Shah
I did tried all the above solution . But nothing worked out for me .
Then I tried looking @apache logs . It was brute force attacks against xmlrpc.php from crashing my WordPress server.
The simple solution that worked for me was to block the IP’s
I found out here
rahul
My wordpress website is running but after some time it shows an error “Establishing database error” then i have to start “service mysqld start” please help me so that this type of error not come again. thanks
Kristaps
Thanks, i tried some things, but in the end, i found out, that my config file, generated random password, when i actually changed it to specific password.
Jill
This was so helpful. This along with people’s comments/experiences would be quite a handy resource or guide. I’ve noticed a few job posts for WordPress error testers and started researching and found this page.
Lothre1
Hello guys. Just because this is the first page of google on this subject I’m complementing the information. In my case i downloaded my wp-config from my prod website. At the end of the file right after “define(‘WP_DEBUG’, false);” i had the following configuration.
define( ‘WP_ALLOW_MULTISITE’, true );
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘MYDOMAIN.com’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
I tried to keep everything as it was but I replaced the mydomain.com with my ip + port.
An hour later I realize that commenting the lines below fixed the problem:
//define(‘MULTISITE’, true);
//define(‘SUBDOMAIN_INSTALL’, false);
//define(‘DOMAIN_CURRENT_SITE’, ‘MYDOMAIN.com’);
Karina Jaramillo
I tried logging in to maintain site but I get this error “Error establishing a database connection”. I also get that error when trying to access wp-admin. Nothing has been changed on our end. Help!
Shirley
Help!
We get an error message on our wordpress for “Error establishing a database connection:
This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at localhost. This could mean your host’s database server is down.
Are you sure you have the correct username and password?
Are you sure that you have typed the correct hostname?
Are you sure that the database server is running?
We’re puzzled how this happened. If you can help, that would be great. Thank you.
jabr
Thanks a lot. you really helped me get my website back to work
SAMUEL
Please, am having problems operating my wordpress dashboard. I have been updating my website through my dashboard for some days now. But just yesterday i began to receive this message…… Fatal error: Cannot call overloaded function for non-object in /home/content/n3pnexwpnas01_data02/34/3566434/html/wp-includes/capabilities.php on line 448……..can anyone tell me what to do or what was the cause of this plssssss.
Sam.
WPBeginner Support
Most likely this issue is caused by a WordPress plugin. Try these WordPress troubleshooting tips to find out the culprit.
It is also possible that the error is caused due to incompatibility with the PHP version. Ask your WordPress hosting provider about the PHP version they are using and see if they can upgrade it. The minimum requirement is PHP version is 5.6 or greater for WordPress.
管理者
SAMUEL
thanks a lot, i only change the theme and that fix it, i so much appreciate.
WPBeginner Support
Hey Samuel, we are glad you found it helpful Don’t forget to join us on Twitter for more WordPress tips and tutorials.
Elijah
I’m also having the same problem but mine is so terrible because I can’t access my cpanel. Please what should I do?
James R
After looking at this page and thinking “I have no idea what I’m doing”, I just rebooted the server and now everything’s hunky-dory again. Any idea why that was the case?
The only thing I can think of that may have caused it is that I lost my internet connection whilst logging in, but why should it?
Davo C
THANK YOU VERY VERY MUCH. Had a corrupt db user, would have had no clue without this article.
Life saver.
Davo
Sat
When I cloned my MySQL database for setting up a staging site I received the same error. I found out that the MySQL user setup for the WP to access the database needs to be given permission to access the database through the CPanel -> Mysql databases -> add a user to the database option. Otherwise, you will get “Error Establishing a Database Connection” issue when trying to access the admin page through the URL.
Anoop Arya
Error establishing database connection .
I did not work after trying few steps. I thought let’s wipe out all the information. S o reset MySQL deta base . Uploaded new WordPress. Now still it days error establishing database connection .any help and suggestions
Ademide
The second fix worked.
Thank you so much.
Karen
This worked for me, thanks. I moved a five domain multisite with very little trouble. The only tweak was to the table_prefix of the database tables. For some reason mine weren’t prefixed with wpcc- . This was easily edited in wp-config.php. After that I had to do some wrangling with tech support to point the subdomains at the directory where wp was installed. They couldn’t understand why I’d want all of them pointing at the same place. Once they had given in and done as I asked it all worked fine.
Manohar
Thank you for providing this useful informatrion
Emmanuel
Thanks a whole bunch, You really saved my day
WPBeginner Support
You are welcome, don’t forget to follow us on Twitter to get more WordPress tips and tricks.
管理者
Jeroen Thans
I had the same problem,
i also got after a restore from backup an error: Error establishing a database connection
i checked the database with phpmyadmin under the database for wordpress and then wp_options. And there was no sign of something called siteurl
So i pressed insert -> option_id = 1
Option_name = siteurl
Option_value = http://www.example.com
and added it. Then went back to the website http://www.example.com/wp-admin and i could restore it
hopefully it helps.
Greetz J
JCMill
*Update to my earlier comment*
I tried generating & applying new passwords via cPanel. On 3rd pw change I still got the can’t load the DB error but it allowed me to run the WP Repair.php !
Everything showed as OK.
Now the site is back.
Highly irritating & weird.
WPBeginner Support
Glad you found a solution on your own.
管理者
JCMill
I just started seeing this error. None of the above works
Also tried renaming the DB, & running the ‘check’ & ‘repair’ options in cPanel = ‘OK’ on all elements.
I can access & edit the DB via phpmyadmin.
wpconfig is byte for byte identical to my original (then working) backup.
The testconnection.php has revealed this –
‘Could not connect: Connection using old (pre-4.1.1) authentication protocol refused (client option ‘secure_auth’ enabled)’
Any ideas appreciated.
Bim
I seem to encounter the error on all other the pages except the main page. The main page loads fine but when i click a link to open another page that’s when I get the database connection error.
Has anyone encountered this? Aren’t all the pages including the main page use the same database connection?
WPBeginner Support
May be you are seeing a cached version of your main page? If not, then contact your web hosting service provider.
管理者
sohanpurohit
Error 404 error403 same prob,how do repairinp this prob?
djack
it works inmediately after put the ip i’m receiving from the router 192.168.5.8 in my particular case.
localhost, 127.0.0.1 weren’t working.
David Draper
I copied a PHP script I found online called testconnection.php. The script captures and echos the connection error. I ran the script from the command line using ‘php -f testconnection.php’. The error told me that there was a problem reading the mysql.sock file. When I checked the indicated location, there was no mysql.sock file. I created an empty file called mysql.sock in the indicated location using touch and ‘Voila!’ everything has worked fine since.
SriMarv
I had the same problem on my site too, i only changed the line for DN Host to
define(‘DB_HOST’, ‘localhost’);
in the config file, it was pointing to an IP address which happened to be the one for the cpanel.
sudheer
Please fix my issue. I am trying to restore a database backup from mysql server, But restore fails the following error32 will persists.
TITLE: Microsoft SQL Server Management Studio
——————————
Restore of database ‘PROD_SALES_DATABASE’ failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)
——————————
ADDITIONAL INFORMATION:
System.Data.SqlClient.SqlError: The operating system returned the error ’32(The process cannot access the file because it is being used by another process.)’ while attempting ‘RestoreContainer::ValidateTargetForCreation’ on ‘C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\PROD_SALES_DATABASE.mdf’. (Microsoft.SqlServer.SmoExtended)
For help, click:
——————————
BUTTONS:
Barbara
Thank you so much : it worked instantly !!!
Cheers
Barbara