sql >> データベース >  >> RDS >> Mysql

osxのコマンドラインでMysqlを使用しています-コマンドが見つかりませんか?

    したがって、ターミナルがコマンドを探す場所はほとんどありません。この場所は$PATHに保存されます 変数。これは、端末がコマンドを検索するために反復するグローバル変数と考えてください。これは通常、/binフォルダーが通常どのように参照されるかを示すバイナリです。

    /bin フォルダには、実行可能ファイルがたくさんあります。これがコマンドであることがわかります。この異なるフォルダの場所は、1つのグローバル変数($PATH)内に保存されます。 :

    現在、通常、インストール時にプログラムがPATHの更新を処理します &端末に、bin内のすべてのコマンドになることができることを伝えます フォルダ。

    MySqlはインストール時にそれを行わないことが判明したため、手動で行う必要があります。

    次のコマンドで実行します

    export PATH=$PATH:/usr/local/mysql/bin
    

    分解すると、export 自明です。それを課題と考えてください。したがって、export 変数PATH 値が古い$PATH 新しいbinと連結 つまり、/usr/local/mysql/bin

    このように実行した後、/usr/local/mysql/bin内のすべてのコマンド 私たちが利用できます。

    ここに小さな問題があります。 1つのターミナルウィンドウをプログラムの1つのインスタンスと考えてください。おそらく、$PATHのようなものです。 クラス変数です(多分)。これは純粋な仮定であることに注意してください。したがって、閉じると、新しい割り当てが失われます。また、ターミナルを再度開くと、最後にエクスポートしたときにコマンドが揮発性のプライマリメモリに保存されていたため、コマンドに再びアクセスできなくなります。

    ここで、ターミナルを使用するたびにmysqlバイナリをエクスポートする必要があります。ですから、私たちは自分たちの道に連結を持続させなければなりません。

    dotfilesと呼ばれるものを使用している端末をご存知かもしれません。 端末の初期化時に構成をロードします。これは、ターミナルの新しいインスタンスが作成されるたびにコンストラクターに渡されるもののセットであると考えるのが好きです(これも仮定ですが、実行している可能性のあるものに近いです)。そうです、今ではあなたは私たちがやろうとしていることの要点を理解しています。

    .bash_profile 既知の主要なdotfileの1つです 。

    したがって、次のコマンドでは、

    echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
    

    私たちが行っているのは、echoの結果を保存することです つまり、文字列を〜/ .bash_profile

    に出力します

    したがって、上記のように、ターミナルまたはターミナルのインスタンスを開くたびに、dotfiles ロードされます。したがって、.bash_profile それぞれロードされ、export 上で追加したものが実行されるため、グローバルな$PATH が更新され、/usr/local/mysql/bin内のすべてのコマンドを取得します 。

    追伸

    最初のコマンドエクスポートを直接実行していないが、それを永続化するために2番目に実行している場合はどうなりますか?ターミナルの現在実行中のインスタンスよりも、

    source ~/.bash_profile
    

    これにより、端末にその特定のファイルをリロードするように指示されます。



    1. MySQLクエリ監視bashスクリプトを作成する

    2. フィルター処理されたインデックスと強制パラメーター化(redux)

    3. 配列の少なくとも1つの要素を持つ結果を取得するためのLaravelクエリ?

    4. mysql行が存在しない場合は、デフォルト値を取得します