我在macOS Mojave 10.14.6上使用MAMP PRO 5.5.1。
我想使用以下命令备份 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 似乎有问题。
知道它是什么吗?
MAMP 的二进制文件不在系统的路径中,因此您需要像这样显式调用 mysqldump:
/Applications/MAMP/Library/bin/mysqldump
你可以为 MAMP 的二进制文件创建别名,并将它们添加到你的.bashrc
(或你正在使用的任何 shell(中,如下所示
alias mysql='/Applications/MAMP/Library/bin/mysql'
alias mysqldump='/Applications/MAMP/Library/bin/mysqldump'
alias mysqladmin='/Applications/MAMP/Library/bin/mysqladmin'
这样,您可以像习惯一样使用mysqldump
速记。您可以对 MAMP 的多个 PHP 版本执行相同的操作:
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'
现在,您在命令行上也有多个带有相应ini文件的php二进制文件。只需确保更新路径以用于您正在使用的正确 php 版本,因为 MAMP Pro 始终会在每次更新时将 php 包更新到最新版本。