web-dev-qa-db-ja.com

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

Mac osx 10.9.5でmysqlを起動して実行しようとしています。最新バージョン14.145.6.21コミュニティサーバーをインストールしました。私はシステム設定に行ってmysqlサーバーを起動し、ターミナルを起動してこれを入力しました

/usr/local/mysql/bin/mysql --versionはバージョンを返しますが、mysqlコマンドを入力するとcommand not foundが返されます。 Sudo mysql_secure_installationmysql -u root --password=passwordも試しました。

MysqlなどをインストールしたWebホスティングはありますが、最初にコマンドラインで把握できるようにしたいと思います。

45
user1574598

そのため、ターミナルがコマンドを探す場所はほとんどありません。この場所は$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

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

131
kishanio

これは、/ usr/local/mysql/bin/mysqlがPATH変数にないことを意味します。

/ usr/local/mysql/bin/mysqlを実行してmysqlシェルを取得するか、

または、ターミナルでこれを入力します:

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

それをPATH変数に追加して、パスを指定せずにmysqlを実行するだけです

21
Justin Kiang

私にとっては、次のコマンドが機能しました:

$ brew install mysql

$ brew services start mysql

次のようにMySQL .bash_profileを追加することにより、$PATHを変更できます。
export PATH=$PATH:/usr/local/mysql/bin

私は次のことをしました:

1-ターミナルを開き、$ nano .bash_profileまたは$ vim .bash_profile

2-次のPATHコードを.bash_profileに追加します

# Set architecture flags
export ARCHFLAGS="-Arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/mysql/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc 

3-ファイルを保存します。

4- $ source ~/.bash_profileを使用してターミナルを更新

5-確認するには、ターミナル$ mysql --versionと入力します

6-次のような出力を印刷する必要があります。

$ mysql Ver 14.14 Distrib 5.7.17, for macos10.12 (x86_64)

ターミナルは$PATHに配置されている.bash_profileからMySQLコマンドを読み取るように構成されました。

1
Mora

Mysqlの最新バージョンでない場合、mysqlインストールへのシンボリックリンクを作成する必要があります。

$ brew link --force [email protected]

Alex Toddによるこの投稿を参照

0
bisi

次のようにbashプロファイルを変更します。<> $ vim〜/ .bash_profile export PATH =/usr/local/mysql/bin:$ PATH保存したら、mysqlと入力してmysqlプロンプトを端末に表示できます。

0
Pravin