Ich verfolge die Plugin-Test-Setup/Installationsanweisungen. ich habe wp scaffold plugin-tests my-plugin
laufen. Aber dann beim nächsten Schritt, wenn ich versuche zu laufen bash bin/install-wp-tests.sh wordpress_test root '' localhost latest
Ich bekomme folgenden Fehler:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (61)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
Meine lokale WordPress-Site läuft mit MAMP (was funktioniert). Ich bin mir nicht sicher, ob das für das Installationsskript relevant ist, da ich denke, dass es eine temporäre DB zum Ausführen der Tests erstellt … Spielt es eine Rolle, ob es das integrierte OSX-Mysql oder MAMPs MySQL verwendet?
Hier ist die Ausgabe von wp --info
$ ./vendor/wp-cli/wp-cli/bin/wp --info
PHP binary: /Applications/MAMP/bin/php/php5.6.10/bin/php
PHP version: 5.6.10
php.ini used: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini
WP-CLI root dir: /Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/wp-cli/wp-cli
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.19.2
Aktualisierung 2
Ich habe herausgefunden, dass MySQL ursprünglich nicht installiert war … deshalb konnte ich keine Verbindung herstellen! Aber jetzt ist es so. Ich habe das Installationsskript ausgeführt, und das funktioniert …
$ ./vendor/wp-cli/wp-cli/bin/wp db tables
wp_users
wp_usermeta
wp_posts
wp_comments
wp_links
wp_options
wp_postmeta
wp_terms
wp_term_taxonomy
wp_term_relationships
wp_commentmeta
Aber wenn ich laufe phpunit
Ich bekomme das:
$ phpunit
PHP Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
PHP Stack trace:
PHP 1. {main}() /private/tmp/wordpress-tests-lib/includes/install.php:0
PHP 2. require_once() /private/tmp/wordpress-tests-lib/includes/install.php:21
PHP 3. require_wp_db() /private/tmp/wordpress/wp-settings.php:79
PHP 4. wpdb->__construct() /private/tmp/wordpress/wp-includes/load.php:350
PHP 5. wpdb->db_connect() /private/tmp/wordpress/wp-includes/wp-db.php:649
PHP 6. mysqli_real_connect() /private/tmp/wordpress/wp-includes/wp-db.php:1452
Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
Ein Teil meines Problems besteht darin, dass mir nicht klar ist, ob wp-cli vollständig auf nativem (cli) PHP/Mysql oder MAMPs PHP/Mysql oder einer Kombination aus beiden ausgeführt werden soll.
Aktualisierung 4
Ich bin mir ziemlich sicher, dass das letzte Problem darin besteht, dass phpunit in MAMP installiert werden muss, aber ich führe es von OSX aus …
$which phpunit
/usr/bin/phpunit
Erwähnt in dieses Wesentliche.
Aktualisierung 6
Es stellt sich heraus, dass Sie phpunit nicht mehr mit pear installieren können. Also habe ich es als Composer-Abhängigkeit unter require-dev hinzugefügt, aber wenn ich diese Version ausführe, erhalte ich den gleichen Fehler!
$ ./vendor/phpunit/phpunit/phpunit
PHP Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
PHP Stack trace:
PHP 1. {main}() /private/tmp/wordpress-tests-lib/includes/install.php:0
PHP 2. require_once() /private/tmp/wordpress-tests-lib/includes/install.php:21
PHP 3. require_wp_db() /private/tmp/wordpress/wp-settings.php:79
PHP 4. wpdb->__construct() /private/tmp/wordpress/wp-includes/load.php:350
PHP 5. wpdb->db_connect() /private/tmp/wordpress/wp-includes/wp-db.php:649
PHP 6. mysqli_real_connect() /private/tmp/wordpress/wp-includes/wp-db.php:1452
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
Ich habe es sogar zu meinem Pfad hinzugefügt, um sicherzugehen …
$ which phpunit
/Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/phpunit/phpunit/phpunit
Aktualisierung 7
Nach dem Lesen der Kommentare am Ende von Dies Blog-Beitrag sehe ich, dass das Installationsskript auf die OSX-Version von verweist mysqladmin
. Ich bin mir nicht sicher, ob das wichtig ist, aber ich habe die MAMPs-Version im Pfad vorangestellt und das Installationsskript erneut ausgeführt. Es scheint die WordPress-Dateien zu installieren /tmp/
ohnehin. Gleicher Fehler beim Ausführen phpunit
Standardmäßig, mamp führt mysql auf Port 8889 aus. Hast du es geändert? Was ist die Ausgabe von
telnet localhost 3306
?– Aserre
11. August 2015 um 13:34 Uhr
@Ploutox Ich habe es geändert, sodass MAMP mysql auf dem Standardport ausführt. Ich habe die Ausgabe von hinzugefügt
telnet
zur obigen frage.– emersonthis
11. August 2015 um 14:25 Uhr
Ja, es ist wichtig, welche
mysql
wird benutzt. Haben Sie versucht, MAMPs zu exportierenmysql
undmysqladmin
wie hier beschrieben? stackoverflow.com/a/29990624/2646526– heenenee
16. August 2015 um 15:29 Uhr
Bitte überprüfen Sie, ob mysql über das Terminal läuft:
ps aux | grep sql
. Außerdem können Sie mit diesem Befehl prüfen, was auf welchem Port läuft:lsof -i -P | grep -i "listen"
. Wenn mysql auf dem richtigen Port läuft, kommt Ihnen vielleicht eine Firewall in die Quere? Andere Option, können Sie eine Verbindung zu mysql herstellen, wenn Sie den Befehl ausführenmysql -uroot -p
im Endgerät?– Jerik
16. August 2015 um 20:03 Uhr
Könntest du gehen lokaler Host: 3306 und sehen, ob eine Datei mit dem Namen “download” heruntergeladen wird? Andernfalls läuft Ihr MySQL nicht auf diesem Port (oder läuft überhaupt nicht).
– GuyT
18. August 2015 um 11:15 Uhr