WP CLI “Kesalahan dalam membuat koneksi basis data” di localhost (MAMP)

13

Saya mendapatkan kesalahan ini ketika mencoba membuat sesuatu dengan 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.

Tapi saya bisa membuka situs dengan tautan: http: // localhost: 8888 / projectname

Ada ide?

Klevis Miho
sumber

Jawaban:

27

Pergilah ke wp-config.phpdan ubah DB_HOSTke 127.0.0.1bukan dari host lokal.

Penghargaan diberikan kepada Craig Wayne di atas dalam komentar.

Florin
sumber
2
Di MAMP Pro saya juga harus memeriksa "Izinkan akses jaringan ke MySQL" agar ini berfungsi.
Nick M
Saya mencoba ini tetapi tidak membantu. Saya menggunakan bedrock boilerplate. Aku pergi melalui wp-config dan file .env berulang-ulang, pergi melalui konfigurasi MAMP berulang-ulang. Men-debug file wb-db.php. Lalu saya menghapus # dari baris DB_HOST di .env, dan semuanya baik-baik saja.
Tom
@ Tom Cobalah tommcfarlin.com/installing-wp-cli-with-mamp ini sebelum Anda mengubah host wp-config.php. Itu harus bekerja.
Maria Daniel Deepak
5

Bagi saya, jawabannya berubah pengaturan untuk DB_HOSTuntuk 127.0.0.1:8889bukannya localhostdi wp-config.php, dan juga memeriksa kotak "Izinkan akses jaringan ke MySQL" dalam pengaturan MySQL. Mendapatkan port yang diatur ke port yang digunakan MAMP Pro untuk database adalah bagian penting yang hilang yang tidak saya lihat di jawaban lain di sini. YMMV.

Evan
sumber
4

Pastikan untuk menggunakan biner PHP MAMP. Anda dapat memeriksa versi PHP mana yang dijalankan WP CLI

php wp-cli.phar --info

Untuk menggunakan MAMP PHP terbaru, Anda perlu memodifikasi profil bash atau zsh Anda:

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

Pastikan untuk memuat ulang profil:

source ~/.bash_profile

Pastikan bahwa perubahan diterapkan dengan benar:

  php wp-cli.phar --info
eknows
sumber
1
Perintah pertama itu hanya memberikan kesalahanCould not open input file: wp-cli.phar
Felix Eve
Apakah Anda menjalankan perintah di folder root wordpress?
eknows
ya, tetapi tidak ada wp-cli.pharfile di root direktori WP .
Felix Eve
Di sini Anda dapat menemukan informasi lebih lanjut cara menginstal wp-cli.phar: ( wp-cli.org )
eknows
2
@FelixEve jika selama instalasi Anda telah pindah wp-cli.phardi bawah /usr/local/bin/wp, Anda dapat mengeluarkan wp --infogantinya: yang ditampilkan PHP binaryharus menjadi satu di bawah instalasi WP Anda.
PJ_Finnegan mulai
0

Langkah1: periksa apakah server mysql Anda menjalankan Step2: jika ya maka Anda dapat masuk ke mysql menggunakan

mysql -u root -p

kemudian masukkan kata sandi Anda: (Anda harus menggunakan perintah ini dari terminal) kemudian gunakan perintah berikut untuk memastikan bahwa basis data ada:

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

sekarang edit file wp-config.php dan cari

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

Sekarang restart server dan coba masuk ke dashboard wordpress Anda. Saya harap ini membantu.

Maverick
sumber
"mysql -u root -p" memberi saya "Akses ditolak untuk pengguna 'root' @ 'localhost' (menggunakan kata sandi: YA)"
Klevis Miho
ketika Anda mengatur database mysql Anda, Anda harus memasukkan kata sandi. Gunakan kata sandi itu. Jika Anda tidak mengonfigurasi kata sandi pada saat pengaturan database mysql, tekan saja enter daripada kata sandi apa pun.
maverick
Saya melakukan apa yang Anda tulis. Dapat terhubung ke database dengan "mysql -u root -p". Juga hak istimewa diberikan. Tapi kesalahannya masih ada.
Klevis Miho
1
Saya telah menemukan bahwa jika saya mengubah localhost ke 127.0.0.1 di wp-config.php saya, semuanya berfungsi dengan baik ... saya merasa seperti ada masalah yang lebih besar di sini
Craig Wayne
1
Dengan instalasi WordPress v3.6.9 dan WP-CLI v1.5.1 @CraigWayne yang bersih, solusi ini bekerja dengan sempurna.
otak
0

Dalam kasus saya, selain pesan kesalahan yang disebutkan di atas, saya juga mendapat peringatan di bawah ini:

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

Menurut pertanyaan ini , masalah ini terjadi karena charset default untuk MySQL 8.0 adalah utfmb4.

Bahkan, saya bisa meniru kesalahan dengan meningkatkan dari MySQL 5.7 ke MySQL 8.0

Saya memecahkan masalah dengan mengekspor database, menurunkan ke MySQL 5.7 dan mengimpor kembali data. Saya juga menjalankan tes pada MariaDB 10.3 dan berfungsi dengan baik.

Orang Brasil itu
sumber
0

Dalam kasus saya, saya harus melakukan apa yang diusulkan eknows dalam solusinya ( https://wordpress.stackexchange.com/a/313862/172520 ) DAN tentu saja memungkinkan akses jaringan ke MySQL untuk Mac saya (menggunakan MAMP Pro).

Cato
sumber
0

Ada dua bagian dari ini yang perlu bekerja sama:

- Anda harus beralih dari localhostke 127.0.0.1dan menambahkan nomor port di akhir. Bagi saya, itu 127.0.0.1:3306.

Nomor port ada di panel MySQL di Mamp.

masukkan deskripsi gambar di sini

saltcod
sumber