Remember, the user does not need to be logged in to access this functionality when this define is set. This is because its main intent is to repair a corrupted database, Users can often not login when the database is corrupt. So once you are done repairing and optimizing your database, make sure to remove this from your wp-config.php.
If this repair did not fix the problem, or you are having trouble running the repair then continue reading this article as you might find another solution to work.
Checking the WP-Config file
WP-Config.php is probably the single most important file in your entire WordPress installation. This is where you specify the details for WordPress to connect your database. If you changed your root password, or the database user password, then you will need to change this file as well. First thing you should always check is if everything in your wp-config.php file is the same.
1
define('DB_NAME', 'database-name');
2
define('DB_USER', 'database-username');
3
define('DB_PASSWORD', 'database-password');
4
define('DB_HOST', 'localhost');
Remember your DB_Host value might not always be localhost. Depending on the host, it will be different. For popular hosts like HostGator, BlueHost, Site5, it is localhost. You can find other host values here.
Some folks suggested that they fixed their problem by replacing localhost with the IP. It is common to see this sort of issue when running WordPress on a local server environment. For example on MAMP, the DB_Host value when changed to the IP may seem to work.
1
define('DB_HOST', '127.0.0.1:8889');
IP’s will vary for online web hosting services.
If everything in this file is correct (make sure you check for typos), then it is fair to say that there is something wrong on the server end.
Check your Web Host (MySQL Server)
Often you will notice this Error establishing database connection when your site gets swarmed with a lot of traffic. Basically, your host server just cannot handle the load (specially when you are on shared hosting). Your site will get really slow and for some users even output the error. So the best thing you should do is get on the phone or livechat with your hosting provider and ask them if your MySQL server is responsive.
For those users who want to test if MySQL server is running yourself, you can do a few things. Test other sites on the same server to see if they are having the issue. If they are also getting the same error, then most definitely there is something wrong with your MySQL server. If you do not have any other site on this same hosting account simply go to your cPanel and try to access phpMyAdmin and connect the database. If you can connect, then we need to verify if your database user has sufficient permission. Create a new file called testconnection.php and paste the following code in it:
1
Make sure to replace the username and password. If the connected successfully, then it means that your user has sufficient permission, and there is something else that is wrong. Go back to your wp-config file to make sure that everything there is correct (re-scan for typos).
If you cannot connect to the database by going to phpMyAdmin, then you know it is something with your server. It does not necessarily means that your MySQL server is down. It could mean that your user does not have sufficient permission.
In our case, our MySQL server was running. All other sites on the servers were working fine except for WPBeginner. When we tried going to our phpMyAdmin, we ended up getting the error:
#1045 – Access denied for user ‘foo’@’%’ (using password: YES)
We got on the phone with HostGator and their support quickly found the problem. Somehow our user’s permissions were reset. Not sure how that happened, but apparently that was the reason. They went back in and restore the permissions and we were able to get the site back live.
So if you get the access denied error in either connecting to your phpMyAdmin or through testconnection.php results, then you should contact your host right away to get them to fix it.
Solutions that Worked for Others
It is important to note, that these may not work for you. Use at your own risk and make sure that you have sufficient backups if anything goes wrong.
Deepak Mittal said that his client was getting the error that database needs to be repaired. Even after repairing the database, the error did not go away. He tried various things and at the end, the issue was the site url. Apparently that was changed which caused the error to persist. He ran the SQL query by going to phpMyAdmin:
1
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
Make sure to replace YOUR_SITE_URL with the actual url example: http://www.wpbeginner.com. The wp_options will be different if you have changed the default WordPress database prefix.
This seemed to fix the issue for him and few others that commented on his post as well.
จำไว้ว่าผู้ใช้ไม่จำเป็นต้องเข้าสู่ระบบเพื่อใช้งานฟังก์ชันนี้เมื่อกำหนดนี้มีการตั้งค่า เพราะนี่คือความตั้งใจหลักคือการซ่อมแซมฐานข้อมูลเสียหายผู้ใช้สามารถมักจะไม่เข้าสู่ระบบเมื่อฐานข้อมูลเสียหาย ดังนั้นเมื่อคุณจะทำการซ่อมแซมและการเพิ่มประสิทธิภาพฐานข้อมูลของคุณให้แน่ใจว่าจะลบจาก WP-config.php ของคุณ.
ถ้าการซ่อมแซมนี้ไม่ได้แก้ไขปัญหาได้หรือคุณมีปัญหาในการทำงานซ่อมแซมแล้วดำเนินการต่อการอ่านบทความนี้ที่คุณอาจพบว่า วิธีอื่นในการทำงาน.
ตรวจสอบ WP-Config ไฟล์WP-config.php น่าจะเป็นไฟล์เดียวที่สำคัญที่สุดในการติดตั้ง WordPress ทั้งหมดของคุณ ซึ่งเป็นที่ที่คุณระบุรายละเอียดสำหรับ WordPress ในการเชื่อมต่อฐานข้อมูลของคุณ ถ้าคุณเปลี่ยนรหัสผ่านรากของคุณหรือรหัสผ่านผู้ใช้ฐานข้อมูลแล้วคุณจะต้องเปลี่ยนไฟล์นี้เช่นกัน สิ่งแรกที่คุณควรตรวจสอบคือถ้าทุกอย่างในไฟล์ WP-config.php ของคุณจะเหมือนกัน. 1 define ('DB_NAME', 'ฐานข้อมูลชื่อ'); 2 define ('DB_USER', 'ฐานข้อมูลชื่อผู้ใช้'); 3 define ('DB_PASSWORD', 'ฐานข้อมูลรหัสผ่าน'); 4 define ('DB_HOST', 'localhost'); จำค่า DB_HOST ของคุณอาจจะไม่เคยได้รับการ localhost ทั้งนี้ขึ้นอยู่กับเจ้าภาพก็จะแตกต่างกัน สำหรับโฮสต์ที่นิยมเช่น HostGator, BlueHost, Site5 มันเป็น localhost คุณสามารถหาค่าโฮสต์อื่น ๆ ที่นี่. บางคนบอกว่าพวกเขาได้รับการแก้ไขปัญหาของพวกเขาโดยการเปลี่ยน localhost กับไอพี มันเป็นเรื่องธรรมดาที่จะเห็นการจัดเรียงของปัญหานี้เมื่อใช้ WordPress ในสภาพแวดล้อมเซิร์ฟเวอร์ท้องถิ่น ยกตัวอย่างเช่นใน MAMP มูลค่า DB_HOST เมื่อเปลี่ยนไปเป็นไอพีอาจดูเหมือนจะทำงาน. 1 define ('DB_HOST', '127.0.0.1:8889'); . ไอพีจะแตกต่างกันไปสำหรับเว็บออนไลน์บริการโฮสติ้งหากทุกอย่างในไฟล์นี้ถูกต้อง (ให้แน่ใจว่าคุณตรวจสอบความผิดพลาด) แล้วมันไม่ยุติธรรมที่จะบอกว่ามีสิ่งผิดปกติบนปลายเซิร์ฟเวอร์. ตรวจสอบพื้นที่เว็บของคุณ (MySQL server) บ่อยครั้งที่คุณจะสังเกตเห็นข้อผิดพลาดนี้สร้างการเชื่อมต่อฐานข้อมูลเมื่อเว็บไซต์ของคุณได้รับการรุมที่มีจำนวนมาก ของการจราจร โดยทั่วไปเซิร์ฟเวอร์โฮสต์ของคุณก็ไม่สามารถจัดการกับภาระ (เฉพาะเมื่อคุณอยู่บนโฮสติ้งที่ใช้ร่วมกัน) เว็บไซต์ของคุณจะได้รับช้าจริงๆและสำหรับผู้ใช้บางเอาท์พุทแม้ข้อผิดพลาด ดังนั้นสิ่งที่ดีที่สุดที่คุณควรทำคือการได้รับโทรศัพท์หรือ Livechat กับผู้ให้บริการโฮสติ้งของคุณและถามพวกเขาหาก MySQL เซิร์ฟเวอร์ของคุณมีการตอบสนอง. สำหรับผู้ใช้ที่ต้องการที่จะทดสอบว่า MySQL เซิร์ฟเวอร์ที่กำลังเรียกใช้ตัวคุณเองคุณสามารถทำบางสิ่ง ทดสอบเว็บไซต์อื่น ๆ บนเซิร์ฟเวอร์เดียวกันเพื่อดูว่าพวกเขาจะมีปัญหา ถ้าพวกเขายังได้รับข้อผิดพลาดเดียวกันแล้วแน่นอนที่สุดมีสิ่งผิดปกติกับเซิร์ฟเวอร์ของ MySQL หากคุณไม่ได้มีเว็บไซต์อื่น ๆ ในบัญชีโฮสติ้งเดียวกันนี้เพียงแค่ไปที่ cPanel ของคุณและพยายามที่จะเข้าถึง phpMyAdmin และเชื่อมต่อฐานข้อมูล หากคุณสามารถเชื่อมต่อจากนั้นเราจำเป็นต้องตรวจสอบว่าผู้ใช้ฐานข้อมูลของคุณมีสิทธิ์เพียงพอ สร้างไฟล์ใหม่ที่เรียกว่า testconnection.php และวางรหัสต่อไปในมัน1 2 ลิงค์ $ = mysql_connect ('localhost', 'ราก', 'รหัสผ่าน'); 3 ถ้า (! ลิงค์ $) { 4 ตาย ('ไม่สามารถ เชื่อมต่อ: '. mysql_error ()); 5 } 6 echo 'เชื่อมต่อเรียบร้อยแล้ว'; 7 mysql_close (ลิงค์ $); 8 ?> ตรวจสอบให้แน่ใจที่จะเปลี่ยนชื่อผู้ใช้และรหัสผ่าน หากการเชื่อมต่อสำเร็จแล้วมันหมายความว่าผู้ใช้ของคุณมีสิทธิ์เพียงพอและมีสิ่งอื่นที่ไม่ถูกต้อง กลับไปที่ไฟล์ WP-ปรับแต่งของคุณเพื่อให้แน่ใจว่าทุกอย่างมีความถูกต้อง (ใหม่สแกนสำหรับความผิดพลาด). ถ้าคุณไม่สามารถเชื่อมต่อกับฐานข้อมูลโดยไปที่ phpMyAdmin แล้วคุณรู้ว่ามันเป็นสิ่งที่มีเซิร์ฟเวอร์ของคุณ มันไม่จำเป็นต้องหมายความว่า MySQL เซิร์ฟเวอร์ของคุณลง มันอาจหมายถึงการที่ผู้ใช้ของคุณไม่มีสิทธิ์เพียงพอ. ในกรณีของเรา MySQL เซิร์ฟเวอร์ของเรากำลังวิ่ง ทั้งหมดเว็บไซต์อื่น ๆ บนเซิร์ฟเวอร์ที่ได้รับการปรับการทำงานยกเว้น WPBeginner เมื่อเราพยายามที่จะ phpMyAdmin ของเราเราจบลงด้วยการได้รับข้อผิดพลาด: # 1045 - การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'foo' @ '%' (โดยใช้รหัสผ่าน: YES) เราได้ทางโทรศัพท์กับ HostGator และการสนับสนุนของพวกเขาได้อย่างรวดเร็วพบปัญหา ยังไงก็เถอะสิทธิ์ของผู้ใช้ของเราได้รับการตั้งค่า ไม่แน่ใจว่าที่เกิดขึ้น แต่เห็นได้ชัดว่าเป็นเหตุผล พวกเขาเดินกลับเข้ามาในและเรียกคืนสิทธิ์และเราก็สามารถที่จะได้รับเว็บไซต์กลับสด. ดังนั้นถ้าคุณได้รับข้อผิดพลาดการเข้าถึงถูกปฏิเสธทั้งในการเชื่อมต่อกับ phpMyAdmin หรือผ่านผล testconnection.php แล้วคุณควรจะติดต่อกับโฮสต์ของคุณได้ทันทีที่จะได้รับ พวกเขาจะแก้ไขได้. โซลูชั่นที่ทำงานสำหรับคนอื่น ๆมันเป็นสิ่งสำคัญที่จะต้องทราบว่าสิ่งเหล่านี้อาจจะไม่ทำงานสำหรับคุณ ใช้ที่มีความเสี่ยงของคุณเองและให้แน่ใจว่าคุณมีการสำรองข้อมูลที่เพียงพอถ้ามีอะไรผิดพลาด. Deepak Mittal กล่าวว่าลูกความของเขาได้รับข้อผิดพลาดที่ฐานข้อมูลความต้องการที่จะได้รับการซ่อมแซม แม้หลังจากซ่อมแซมฐานข้อมูลความผิดพลาดไม่ได้หายไป เขาพยายามที่สิ่งต่างๆและในตอนท้ายปัญหาเป็น url เว็บไซต์ เห็นได้ชัดว่ามีการเปลี่ยนแปลงที่เกิดข้อผิดพลาดที่จะยังคงมีอยู่ เขาวิ่งแบบสอบถาม SQL โดยไปที่ phpMyAdmin: 1 wp_options UPDATE SET option_value = 'YOUR_SITE_URL' WHERE option_name = 'siteurl' ตรวจสอบให้แน่ใจที่จะมาแทนที่ YOUR_SITE_URL กับตัวอย่างที่เกิดขึ้นจริง url: http://www.wpbeginner.com wp_options จะแตกต่างกันถ้าคุณมีการเปลี่ยนแปลงฐานข้อมูลเริ่มต้นคำนำหน้า WordPress. นี้ดูเหมือนจะแก้ไขปัญหาสำหรับเขาและคนอื่น ๆ ไม่กี่คนที่แสดงความคิดเห็นในโพสต์ของเขาเช่นกัน
การแปล กรุณารอสักครู่..
จำได้ว่า ผู้ใช้ไม่ต้องเข้าสู่ระบบเพื่อเข้าถึงฟังก์ชันนี้เมื่อกำหนดตั้ง นี้เป็นเพราะจุดประสงค์หลักของมันคือเพื่อซ่อมแซมความเสียหายของฐานข้อมูล ผู้ใช้สามารถเข้าสู่ระบบเมื่อฐานข้อมูลเสียหาย ดังนั้นเมื่อคุณทำการซ่อม และการเพิ่มประสิทธิภาพของฐานข้อมูลของคุณ ให้แน่ใจว่า จะเอาจาก config WP ของคุณ PHP .
ถ้าซ่อมไม่ได้แก้ไขปัญหาหรือคุณมีปัญหาในการวิ่งซ่อมแล้วอ่านบทความนี้คุณอาจจะพบคำตอบหนึ่งที่จะทำงาน
ตรวจสอบ WP config ไฟล์
wp-config.php อาจเป็นที่เดียวที่สำคัญที่สุดในไฟล์ทั้งหมดของคุณ WordPress ที่ติดตั้ง นี่คือที่คุณระบุรายละเอียดสำหรับ WordPress เพื่อเชื่อมต่อกับฐานข้อมูลของคุณ ถ้าคุณเปลี่ยนรหัสผ่านรากของคุณหรือฐานข้อมูลผู้ใช้รหัสผ่านแล้วคุณจะต้องเปลี่ยนไฟล์นี้ได้เป็นอย่างดี สิ่งแรกที่คุณควรตรวจสอบคือ ถ้าทุกอย่างในไฟล์ wp-config.php ของคุณเหมือนกัน .
1
นิยาม ( 'db_name ' , ' ' ชื่อฐานข้อมูล ) ;
2
นิยาม ( 'db_user ' , ' username ' ฐานข้อมูล ) ;
3
นิยาม ( 'db_password ' , ' รหัสผ่าน ' ฐานข้อมูล ) ;
4
( กำหนด 'db_host ' , ' localhost ' ) ;
จำค่า db_host ของคุณอาจจะไม่เสมอเป็น localhost . ขึ้นอยู่กับโฮสต์มันต่างกัน สำหรับที่นิยมเช่น Hostgator โฮสต์ , site5 Bluehost เป็น localhost . คุณสามารถหาโฮสต์ ค่าอื่น ๆที่นี่
บางคนชี้ให้เห็นว่าพวกเขาปัญหาหนี้ของพวกเขาโดยการเปลี่ยน localhost กับ IP มันเป็นธรรมดาที่จะเห็นการจัดเรียงของปัญหาเมื่อใช้ WordPress ในสภาพแวดล้อมเซิร์ฟเวอร์ท้องถิ่น ตัวอย่างเช่นใน mamp , db_host ค่าเมื่อเปลี่ยน IP อาจดูเหมือนงาน
1
.กำหนด ( 'db_host 127.0.0.1:8889 ' , ' ' ) ;
IP จะแตกต่างกันสำหรับออนไลน์บริการเว็บโฮสติ้ง .
ถ้าทุกอย่างในไฟล์นี้จะถูกต้อง ( ให้แน่ใจว่าคุณตรวจสอบพิมพ์ผิด ) แล้วมันยุติธรรมที่จะกล่าวว่ามีอะไรผิดปกติบนปลายเซิร์ฟเวอร์ ตรวจสอบเว็บโฮสต์ของคุณ
( เซิร์ฟเวอร์ MySQL )
คุณมักจะสังเกตเห็นข้อผิดพลาดสร้างการเชื่อมต่อฐานข้อมูล เมื่อเว็บไซต์ของคุณได้รับ swarmed กับรถติด โดยทั่วไปเซิร์ฟเวอร์โฮสต์ของคุณจะไม่สามารถจัดการกับโหลด ( โดยเฉพาะเมื่อคุณกำลังใช้ร่วมกันโฮสติ้ง ) เว็บไซต์ของคุณจะได้รับจริงๆช้าและผู้ใช้บางคนออกข้อผิดพลาด ดังนั้นสิ่งที่ดีที่สุดที่คุณควรทำคือการได้รับในโทรศัพท์หรือ livechat กับผู้ให้บริการโฮสต์ของคุณและถามพวกเขาหากเซิร์ฟเวอร์ MySQL ของคุณตอบสนอง .
สำหรับผู้ใช้ที่ต้องการทดสอบ ถ้าเซิร์ฟเวอร์ MySQL ทำงานด้วยตัวคุณเอง คุณสามารถทำสิ่งบางอย่างทดสอบเว็บไซต์อื่น ๆบนเซิร์ฟเวอร์เดียวกันเพื่อดูว่าพวกเขามีปัญหา ถ้าพวกเขายังได้รับข้อความแสดงข้อผิดพลาดเดียวกัน แล้วแน่นอนมีบางอย่างผิดปกติกับเซิร์ฟเวอร์ MySQL ของคุณ หากคุณไม่ได้มีเว็บไซต์อื่น ๆในนี้เหมือนกันไป cPanel hosting บัญชีเพียงของคุณและพยายามที่จะเข้าถึง phpMyAdmin และเชื่อมต่อฐานข้อมูล ถ้าคุณสามารถเชื่อมต่อแล้วเราต้องตรวจสอบว่าผู้ใช้ฐานข้อมูลของคุณได้รับอนุญาตเพียงพอ สร้างไฟล์ใหม่ที่ชื่อว่า testconnection.php และวางรหัสต่อไปนี้ใน :
1
< ? PHP
2
$ ลิงค์ = mysql_connect ( 'localhost ' , ' ราก ' , ' รหัสผ่าน ' ) ;
3
( ถ้า ! $ { 4
ลิงค์ ) ตาย ( 'could เชื่อมไม่ได้ : ' . mysql_error() ) ;
5
}
6
echo ' เชื่อมต่อเรียบร้อยแล้ว ' ;
7
mysql_close ( $ ลิงค์ ) ;
8
? >
ให้แน่ใจว่าแทนที่ชื่อผู้ใช้และรหัสผ่านถ้าเชื่อมต่อเรียบร้อยแล้ว นั่นหมายความว่า ผู้ใช้ที่ได้รับอนุญาตที่เพียงพอ และมีบางอย่างที่ไม่ถูกต้อง กลับไปที่ไฟล์ wp config.php ของคุณเพื่อให้แน่ใจว่าทุกอย่างถูกต้อง ( Re สแกนพิมพ์ผิด ) .
ถ้าคุณไม่สามารถเชื่อมต่อกับฐานข้อมูลโดยเข้าไปที่ phpmyadmin แล้วคุณจะรู้ว่ามันมีอะไรกับเซิร์ฟเวอร์ของคุณมันไม่ได้หมายความว่าเซิร์ฟเวอร์ MySQL ของคุณลง มันอาจจะหมายความว่า ผู้ใช้ไม่ได้รับอนุญาตเพียงพอ .
ในกรณีของเรา , เซิร์ฟเวอร์ MySQL ของเราก็วิ่ง เว็บไซต์อื่น ๆบนเซิร์ฟเวอร์ทำงานได้ยกเว้น wpbeginner . เมื่อเราพยายามจะ phpMyAdmin ของเรา เราสิ้นสุดขึ้นรับข้อผิดพลาด :
# 1045 - การเข้าถึงถูกปฏิเสธสำหรับฟู ' ผู้ใช้ ' @ ' % ' ( ใช้รหัสผ่าน : ครับ )
เราได้คุยโทรศัพท์กับ Hostgator และการสนับสนุนของพวกเขาได้อย่างรวดเร็วพบปัญหา อย่างไรก็ตามผู้ใช้ของเราที่ถูกรีเซ็ต ไม่แน่ใจว่ามันเกิดขึ้น แต่นั่นคือเหตุผล พวกเขากลับไปและเรียกคืนสิทธิ์และเราสามารถที่จะได้รับเว็บไซต์ที่กลับมามีชีวิต
ดังนั้นถ้าคุณได้รับการเข้าถึงถูกปฏิเสธข้อผิดพลาดในการเชื่อมต่อกับ phpMyAdmin ของคุณหรือผ่าน testconnection.php ผล ,แล้วคุณควรติดต่อโฮสต์ของคุณได้ทันทีเพื่อให้พวกเขาแก้ไข .
โซลูชั่นที่ทำงานเพื่อคนอื่น
มันเป็นสิ่งสำคัญที่จะทราบว่าเหล่านี้อาจไม่ทำงานสำหรับคุณ ใช้ที่มีความเสี่ยงของคุณเอง และให้แน่ใจว่าคุณมีการสำรองข้อมูลที่เพียงพอ หากมีอะไรผิดพลาด
Deepak Mittal กล่าวว่าลูกค้าของเขาได้รับข้อผิดพลาดที่ฐานข้อมูลจะต้องมีการซ่อมแซม แม้หลังจากการซ่อมแซมฐานข้อมูลข้อผิดพลาดที่ไม่ได้ไป เขาพยายามสิ่งต่าง ๆ และสุดท้าย ปัญหาคือเว็บไซต์ URL เห็นได้ชัดว่ามีการเปลี่ยนแปลงซึ่งเป็นสาเหตุของความผิดพลาดที่จะคงอยู่ เขาวิ่งแบบสอบถาม SQL โดยเข้าไปที่ phpMyAdmin :
1
ปรับปรุง wp_options ชุด option_value = 'your_site_url ' ที่ option_name = 'siteurl '
ให้แน่ใจว่าแทนที่ your_site_url กับตัวอย่าง URL ที่แท้จริง : http://www.wpbeginner.com .การ wp_options จะแตกต่างกันถ้าคุณมีการเปลี่ยนแปลงค่าเริ่มต้นฐานข้อมูล WordPress คำนำหน้า .
ดูเหมือนจะแก้ไขปัญหาให้เขา และหลายๆอย่างที่เห็นในการโพสต์ของเขาเป็นอย่างดี
การแปล กรุณารอสักครู่..