mac/Linuxシステム下aliasとlnコマンド[-bash:mysql:command not found解決策]


せっかく暇があるのだから、家で休んでいる間にスウォルのことをもう一度検討してみたい.Macで私が以前PHPを開発した時に使っていたのはPHP集積開発環境mamp proです.しかし、仕方なくmacシステムが持っているPHPインストールSwooleの拡張は少し不便で、pecl、phpizeさえないので、自分でPHP、mysql、Nginxをコンパイルして開発するつもりです.最初のステップはmysqlサービスをインストールし、公式のdmgインストールパッケージをダウンロードしてインストールした後、mysqlコマンドはこのコマンドがないことを示します.よく検討したのはmysqlがファイルインストールを実行する場所が違うからです.多くの解決策があり、1つはaliasで、1つはlnで、下にはこの2つの案について一つ一つ説明します.
dmgインストールmysql後続
weiyongqiangdeMacBook-Pro:bin mars$ mysql
-bash: mysql: command not found

実はmysql公式のdmgパッケージを使用してインストールした後にコマンドが見つからなかった問題はmysqlインストール後に実行可能なファイルmysqlが/usr/binまたは/usr/sbinの下にないためです.
インストール後のmysqlの場所を探します
weiyongqiangdeMacBook-Pro:bin mars$ sudo find / -name mysql
/usr/local/mysql
/usr/local/mysql-8.0.2-dmr-macos10.12-x86_64/bin/mysql
/usr/local/mysql-8.0.2-dmr-macos10.12-x86_64/data/mysql
/usr/local/mysql-8.0.2-dmr-macos10.12-x86_64/include/mysql

二つの解決策
alias別名の作成:
weiyongqiangdeMacBook-Pro:bin mars$ alias mysql=/usr/local/mysql/bin/mysql
weiyongqiangdeMacBook-Pro:bin mars$ mysql
ERROR 1045 (28000): Access denied for user 'mars'@'localhost' (using password: NO)

この方法の欠点はaliasが作成した別名が一時的であることであり、すなわちコマンドラインツールを閉じた後にmysqlコマンドを再度開いて-bash:mysql:command not foundを表示することである.もちろんaliasの永続化にも方法がありますが、下記↓
  • ログインごとに別名を自動的に有効にするには、/etc/profileまたは~/.bashrcで.そして#source~/.bashrc
  • 各ユーザに別名を有効にするには、/etc/bashrcの一番後ろに別名を追加し、#source/etc/bashrc
  • シンボルリンクを作成[推奨]:
    この方法もよく使われる方法で、シンボルリンクとハードリンクの関係と違いについては、自分で資料を見ることができます.
    weiyongqiangdeMacBook-Pro:bin mars$ ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

    macがrootlessを起動したので/usr/local/mysql/bin/mysql記号を/usr/local/bin/mysqlの下にリンクしました
    これで問題は解決した.