WP CLI“ ข้อผิดพลาดในการสร้างการเชื่อมต่อฐานข้อมูล” ใน localhost (MAMP)


13

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามสร้างบางสิ่งด้วย WP CLI:

Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we cant contact the database server at `localhost`. This could mean your hosts database server is down.

แต่ฉันสามารถเปิดไซต์ด้วยลิงค์: http: // localhost: 8888 / projectname

ความคิดใด ๆ

คำตอบ:


27

ไปที่ของคุณwp-config.phpและเปลี่ยนDB_HOSTเป็น127.0.0.1แทน localhost

เครดิตไปที่ Craig Wayne ข้างต้นในความคิดเห็น


2
ใน MAMP Pro ฉันต้องตรวจสอบ "อนุญาตการเข้าถึงเครือข่าย MySQL" เพื่อให้ทำงานได้
นิค M

ฉันลองสิ่งนี้ แต่ไม่มีความช่วยเหลือ ฉันใช้หม้อไอน้ำ Bedrock ฉันไปถึง wp-config และ. env ไฟล์ซ้ำแล้วซ้ำอีกไปผ่าน MAMPs กำหนดค่าซ้ำแล้วซ้ำอีก แก้ไขไฟล์ wb-db.php จากนั้นฉันลบ # ออกจากแถว DB_HOST ใน. env และทั้งหมดนั้นดี
Tom

@ Tom ลองนี้tommcfarlin.com/installing-wp-cli-with-mampwp-config.phpก่อนที่คุณจะเปลี่ยนเป็นเจ้าภาพใน มันควรจะทำงาน
Maria Daniel Deepak

5

สำหรับผมคำตอบก็เปลี่ยนการตั้งค่าสำหรับDB_HOSTการ127.0.0.1:8889แทนlocalhostในwp-config.phpและยังตรวจสอบกล่อง "อนุญาตให้เข้าถึงเครือข่ายไปยัง MySQL" ในการตั้งค่า MySQL การตั้งค่าพอร์ตเป็นพอร์ตที่ MAMP Pro ใช้สำหรับฐานข้อมูลเป็นส่วนที่ขาดหายไปอย่างยิ่งยวดซึ่งฉันไม่ได้เห็นในคำตอบอื่น ๆ ที่นี่ YMMV


4

ตรวจสอบให้แน่ใจว่าใช้ไบนารี MAMP PHP คุณสามารถตรวจสอบว่า PHP Version WP CLI กำลังทำงานอยู่ที่ใด

php wp-cli.phar --info

ในการใช้ MAMP PHP ล่าสุดคุณต้องแก้ไขโปรไฟล์ bash หรือ zsh ของคุณ:

PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

ตรวจสอบให้แน่ใจว่าได้โหลดโปรไฟล์ซ้ำ:

source ~/.bash_profile

ตรวจสอบให้แน่ใจว่ามีการใช้การเปลี่ยนแปลงอย่างถูกต้อง:

  php wp-cli.phar --info

1
คำสั่งแรกนั้นแค่ทำให้เกิดข้อผิดพลาดCould not open input file: wp-cli.phar
เฟลิกซ์อีฟ

คุณรันคำสั่งในโฟลเดอร์รูทของ wordpress หรือไม่?
eknows

ใช่ แต่ไม่มีwp-cli.pharแฟ้มในรากของไดเรกทอรี WP
เฟลิกซ์อีฟ

ที่นี่คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับวิธีการติดตั้ง WP-cli.phar: ( wp-cli.org )
eknows

2
@FelixEve หากในระหว่างการติดตั้งที่คุณได้ย้ายไปwp-cli.pharอยู่ภายใต้/usr/local/bin/wpคุณสามารถออกwp --infoแทน: ที่แสดงPHP binaryควรจะเป็นหนึ่งภายใต้การติดตั้ง WP ของคุณ
PJ_Finnegan

0

ขั้นที่ 1: ตรวจสอบว่าเซิร์ฟเวอร์ mysql ของคุณกำลังทำงานอยู่ขั้นที่ 2: ถ้าใช่คุณสามารถเข้าสู่ mysql ได้โดยใช้

mysql -u root -p

จากนั้นป้อนรหัสผ่านของคุณ: (คุณต้องใช้คำสั่งนี้จากเทอร์มินัล) จากนั้นใช้คำสั่งต่อไปนี้เพื่อให้แน่ใจว่ามีฐานข้อมูลอยู่:

show databases;
grant all privileges on database_name.* to 'root'@'localhost' identified by 'password';
flush privileges;
exit;

ตอนนี้แก้ไขไฟล์ wp-config.php และค้นหา

define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

ตอนนี้รีสตาร์ทเซิร์ฟเวอร์และลองเข้าสู่แผงควบคุม wordpress ของคุณ ฉันหวังว่ามันจะช่วย


"mysql -u root -p" ให้ฉัน "การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (ใช้รหัสผ่าน: ใช่)"
Klevis Miho

เมื่อคุณตั้งค่าฐานข้อมูล mysql ของคุณคุณต้องป้อนรหัสผ่าน ใช้รหัสผ่านนั้น หากคุณไม่ได้กำหนดค่ารหัสผ่านในเวลาที่ติดตั้งฐานข้อมูล mysql ให้กด Enter แทนรหัสผ่านใด ๆ
ไม่ฝักใฝ่ฝ่ายใด

ฉันทำสิ่งที่คุณเขียน สามารถเชื่อมต่อกับฐานข้อมูลด้วย "mysql -u root -p" นอกจากนี้ยังได้รับสิทธิ์ แต่ข้อผิดพลาดยังคงมี
Klevis Miho

1
ฉันพบว่าถ้าฉันเปลี่ยน localhost เป็น 127.0.0.1 ใน wp-config.php ของฉันทุกอย่างใช้งานได้ดี ... ฉันรู้สึกว่ามีปัญหาที่ใหญ่กว่าที่นี่
Craig Wayne

1
ด้วยการติดตั้ง WordPress v3.6.9 และ WP-CLI v1.5.1 ที่โซลูชันของ @CraigWayne ได้อย่างสมบูรณ์แบบ
ระหว่าง

0

ในกรณีของฉันนอกเหนือจากข้อความแสดงข้อผิดพลาดข้างต้นฉันยังได้รับคำเตือนด้านล่าง

PHP Warning:  mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Warning:  mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562

ตามคำถามนี้ปัญหานี้เกิดขึ้นเนื่องจาก charset เริ่มต้นสำหรับ MySQL utfmb48.0

ที่จริงแล้วฉันสามารถทำซ้ำข้อผิดพลาดได้โดยการอัพเกรดจาก MySQL 5.7 เป็น MySQL 8.0

ฉันแก้ไขปัญหาด้วยการส่งออกฐานข้อมูลลดระดับเป็น MySQL 5.7 และนำเข้าข้อมูลอีกครั้ง ฉันวิ่งทดสอบบน MariaDB 10.3 และใช้งานได้



0

มีสองส่วนที่ต้องทำงานร่วมกัน:

- คุณต้องเปลี่ยนจากlocalhostเป็น127.0.0.1และเพิ่มหมายเลขพอร์ตในตอนท้าย 127.0.0.1:3306สำหรับผมก็คือ

หมายเลขพอร์ตอยู่ในแผง MySQL ใน Mamp

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.