OSX Sierra / usr / bin / env:'mysqldump':没有这样的文件或目录

时间:2018-01-31 08:48:57

标签: mysql wordpress macos unix wp-cli

运行shell script时遇到问题,调用mysqdump来导入数据库。这是为了将WordPress数据库从生产导入到本地开发机器。它过去有效。但是在运行OSX Sierra的本地MacO Mac Mini上必须有所改变。 这是脚本:

# sync-prod.sh
read -r -p "Do you solemnly swear that you have had fewer than 2 alcoholic beverages in the last hour and that you would really like to reset your development database and pull the latest from production? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]
then
    wp @development db reset --yes
    wp @production db export - > sql-dump-production.sql
    wp @development db import sql-dump-production.sql
    wp @development search-replace https://example.com http://example.test
else
    exit 0
fi

当我运行它时,我得到:

./sync-production.sh
Do you solemnly swear that you have had fewer than 2 alcoholic beverages in the last hour and that you would really like to reset your development database and pull the latest from production? [y/N] y
Success: Database reset.
/usr/bin/env: ‘mysqldump’: No such file or directory
Success: Imported from 'sql-dump-production.sql'.
Error: The site you have requested is not installed.

当我运行mysqldump

jasper@~/webdesign/example.com/site $ which mysqldump
/usr/local/bin/mysqldump

从终端开始正常:

$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

阅读env: mysql: No such file or directory after `wp import`并尝试调整$ PATH,现在有

echo $PATH
/usr/local/sbin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/sbin:/usr/local/sbin:/usr/local/sbin:/Users/jasper/.rvm/gems/ruby-2.3.3/bin:/Users/jasper/.rvm/gems/ruby-2.3.3@global/bin:/Users/jasper/.rvm/rubies/ruby-2.3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jasper/.composer/vendor/bin:/usr/local/bin:/Users/jasper/.rvm/bin:/Users/jasper/.composer/vendor/bin:/usr/local/bin:/usr/local/mysql/bin:/Users/jasper/.composer/vendor/bin:/usr/local/bin:/usr/local/bin/mysql:/Users/jasper/.composer/vendor/bin:/usr/local/bin:/usr/local/bin/mysql:/Users/jasper/.composer/vendor/bin:/usr/local/bin:/usr/local/bin/mysql:/Users/jasper/.composer/vendor/bin:/usr/local/bin:/usr/local/bin/mysql

在.bash_profile我有

alias ll='ls -lGaf'
export PATH="/usr/local/sbin:$PATH"
export PATH="$PATH:$HOME/.composer/vendor/bin"
export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/mysql
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

###-tns-completion-start-###
if [ -f /Users/jasper/.tnsrc ]; then
    source /Users/jasper/.tnsrc
fi
###-tns-completion-end-###
export PS1="\u@\w $ "

当我运行wp @production db check时,事情会连接并且没问题。我也可以使用SequelPro使用相同的用户名和密码通过ssh连接到数据库。 有什么想法为什么我仍然没有得到这样的文件或目录来运行mysql作为这个脚本的一部分?

2 个答案:

答案 0 :(得分:1)

在shell中运行env mysqldump命令会发生什么?例如,您可以安装和使用strace并运行脚本或仅运行strace -F <command>之类的失败命令。也许您会透露有关此错误的更多详细信息。

答案 1 :(得分:0)

远程服务器(不再)安装了mysql-client。一旦我做了apt install mariadb-client-10事情再次开始工作:

wp @production db export sql-dump-production.sql
Success: Exported to 'sql-dump-production.sql'.

我也可以跑:

./sync-production.sh
Do you solemnly swear that you have had fewer than 2 alcoholic beverages in the last hour and that you would really like to reset your development database and pull the latest from production? [y/N] y
Success: Database reset.
Success: Imported from 'sql-dump-production.sql'.
.........