MAMP Pro: sh: mysqldump: команда не найдена - PullRequest
1 голос
/ 01 февраля 2020

Я использую MAMP PRO 5.5.1 на MacOS Mojave 10.14.6.

Я хочу сделать резервную копию базы данных MySQL с помощью следующей команды:

$backup = system("mysqldump -hmy_host -umy_user -pmy_password --databases  my_databse > my_file.sql");

Это не не работает, файл не создается. В php_error.log ничего нет, но apache_error.log говорит следующее:

sh: mysqldump: команда не найдена

Поскольку мой скрипт / команда работает над другая система (виртуальный хостинг, а не MAMP), я уверен, сам скрипт работает. Кажется, что-то не так с MAMP.

Есть идеи, что это такое?

1 Ответ

0 голосов
/ 09 апреля 2020

Двоичные файлы MAMP не находятся в пути вашей системы, поэтому вам нужно явно вызвать mysqldump следующим образом:

/Applications/MAMP/Library/bin/mysqldump

Вы можете создавать псевдонимы для двоичных файлов MAMP и добавлять их в .bashrc (или любую оболочку, которую вы используете. используется) вот так

alias mysql='/Applications/MAMP/Library/bin/mysql'
alias mysqldump='/Applications/MAMP/Library/bin/mysqldump'
alias mysqladmin='/Applications/MAMP/Library/bin/mysqladmin'

Таким образом, вы можете использовать сокращение mysqldump, как вы привыкли. Вы можете сделать то же самое для нескольких PHP версий MAMP:

alias php71='/Applications/MAMP/bin/php/php7.1.32/bin/php -q -c /Library/Application\ Support/appsolute/MAMP\ PRO/conf/php7.1.32.ini'
alias php73='/Applications/MAMP/bin/php/php7.3.9/bin/php -q -c /Library/Application\ Support/appsolute/MAMP\ PRO/conf/php7.3.9.ini'

Теперь у вас есть несколько php двоичных файлов с соответствующими ini-файлами под рукой и в командной строке. Просто не забудьте обновить пути для использования с правильными версиями php, которые вы используете, потому что MAMP Pro всегда обновляет пакеты php до их последних версий при каждом обновлении.

...