OS X のコマンドラインで MySQL を使用する - コマンドが見つかりませんか? 質問する

OS X のコマンドラインで MySQL を使用する - コマンドが見つかりませんか? 質問する

Mac OS X 10.9.5 で MySQL を起動して実行しようとしています。

MySQL Community Server の最新バージョンをインストールしました5.6.21。システム環境設定に移動して MySQL サーバーを起動し、ターミナルを起動して次のように入力しました。

/usr/local/mysql/bin/mysql --version

これはバージョンを返すはずです。しかし、mysql コマンドのいずれかを入力すると、次のようになりますcommand not found

私も試しました:

sudo mysql_secure_installation
mysql -u root --password=password`

MySQL などがインストールされた Web ホスティングはありますが、まずはコマンド ラインで操作方法を理解したいと思っています。

ベストアンサー1

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

/bin$PATHフォルダにはたくさんの実行ファイルがあります。これはコマンドです。これらの異なるフォルダの場所は、1つのグローバル変数に格納されます。つまり、:

現在、通常、インストール時にプログラムが更新されPATH、すべてのコマンドをフォルダー内に保存できることが端末に通知されますbin

結局、MySql はインストール時にこれを実行しないので、手動で実行する必要があります。

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

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

分解すると、export説明は不要です。代入として考えてください。つまり、古い値を持つexport変数を新しい値と連結するということです。PATH$PATHbin/usr/local/mysql/bin

この方法では、実行後に内部のすべてのコマンド/usr/local/mysql/binが利用できるようになります。

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

ターミナルを使用するたびに、mysql バイナリをエクスポートする必要があります。そのため、パスに concat を保持する必要があります。

ご存知かもしれませんが、私たちの端末はdotfilesターミナルの初期化時に構成をロードします。ターミナルの新しいインスタンスが作成されるたびにコンストラクターに渡されるもののセットと考えるのが好きです (これも仮定ですが、実際に行われていることに近いです)。これで、これから何をするかがおわかりいただけたと思います。

.bash_profileは、知られている主要なものの 1 つですdotfile

次のコマンドでは、

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

これにより、ターミナルに特定のファイルを再ロードするように指示します。

おすすめ記事