これはMacOSですが、Unixの問題だと99%確信しています。
MySQLが正確にどこにインストールされているかを確認しようとしています。端末に次のように入力します。
which mysql
私は得る:
/usr/local/bin/mysql
だから私はそのディレクトリ()に何があるのかを確認し、ls -al /usr/local/bin/mysql
それは私に次のものを与えます:
lrwxr-xr-x 1 myuser admin 32 Mar 20 2017 /usr/local/bin/mysql -> ../Cellar/mysql/5.7.17/bin/mysql
いいねシンボリックリンク。だから)を介してシンボリックリンクにアクセスしようとすると、次ls -al ../Cellar/mysql/5.7.17/bin/mysql
のような結果が得られます。
ls: ../Cellar/mysql/5.7.17/bin/mysql: No such file or directory
../Cellar/mysql/5.7.17/bin/mysql
それでは、私のコンピュータでこれをどこで見つけることができますか?
答え1
リンクは相対的です私に(プロセスの現在の作業ディレクトリではありません)mysql
残りを削除して追加します。
/usr/local/bin/../Cellar/mysql/5.7.17/bin/mysql
または別の言葉で言えば
/usr/local/Cellar/mysql/5.7.17/bin/mysql
realpath(3)
手動操作なしでこれらの問題を解決するために、関連するシェルまたはプログラミング言語によって公開されることも露出されない可能性があるシステムコールがあります。次のようなさまざまなシェルコマンドの移植性が影響を受けます。
$ cd /var/tmp
$ touch file
$ ln -s ../tmp/file ourlink
$ realpath ourlink # because I'm in mksh, YMMV
/private/var/tmp/file
$ readlink ourlink
../tmp/file
$ readlink -f ourlink
readlink: illegal option -- f
usage: readlink [-n] [file ...]
$
一貫した外部コマンドインターフェイスが必要な場合は、GNU coreutilsをインストールして使用することもできます(realpath(3)
GNUが呼び出され、ベンダーが提供するコマンドインターフェイスの前に表示されるようにするには状況がより複雑です)。readlink
readlink
PATH
$ greadlink ourlink
../tmp/file
$ greadlink -f ourlink
/private/var/tmp/file
$