はぴすぷ

XAMPPのMySQLをコマンドプロンプトから使用する。Windows環境変数Pathの設定

      2015/11/28

XAMPP入れてMySQL使えるようになったのはいいけど、phpMyAdminからじゃなくコマンドプロンプトから触ってみようと思いました。

早速コマンドプロンプトを起動して「mysql」っと。

SS_1058

‘mysql’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

(´・ω・`)

・・・。

(´;ω;`)ブワッ

スポンサーリンク

MySQLを環境変数のPathに追加する

MySQLに限った話ではないんですが、コマンドプロンプトみたいな俗にいう黒い画面で新しいプログラムを使う場合は、環境変数の「Path」に追加しないといけません。

追加しないと使えないのかというと、そうではないんですが、使いづらいので追加しましょう。

環境変数とは

Windows等のOSが用意するデータ共有する為の仕組み。

SS_1059

この環境変数に値を記録しておくと、OS上で動く全てのプログラムがその値を確認したり出来ます。

あのソフトでも使うし、このソフトでも使うみたいなデータは、一箇所にまとめて管理されていた方がみんな幸せになれるよね。ということです。

システム環境変数とユーザー環境変数

環境変数には、全てのユーザーに適用されるシステム環境変数と、ログイン中のユーザーによみ適用されるユーザー環境変数の2種類があります。

通常はシステム環境変数と、ユーザー環境変数で同じ変数名のものを用意した場合、ユーザー環境変数のもので上書きされて、ユーザー環境変数の値が使用されます。

次に説明するPathだけは、システム環境変数にユーザー環境変数で設定したものが追加される形になります。

Pathとは

最初から用意されている環境変数の内の一つで、プログラムの実行ファイル(.exe等)が置かれているディレクトリを記録しておくものです。

Path」に「新しいプログラムの実行ファイルが置かれている場所」を追加しておくことで、コマンドプロンプトなどのソフトウェアで、実行ファイルの名前を入力するだけで、実行出来るようになります。

なので、今回の場合は「mysql.exe」の置いている場所を追加することになります。

追加しておかないと、毎回「mysql」ではなく、「C:\xampp\mysql\bin\mysql」のように入力しないと場所が分からないので、実行することが出来ないことになります。

環境変数を設定する場所

まずはエクスプローラーを開きます。

そして「PC」を右クリックして出てきたメニューから「プロパティ」を選択します。

SS_1001_1

システム画面が表示されるので「システムの詳細設定」をクリックします。

SS_1002_1

システムのプロパティが表示されます。ここに「環境変数」があります。

SS_1003

環境変数」をクリックすると「環境変数」を設定する画面が表示されます。

ユーザー環境変数のPathに追記する

※もし「Path」が存在しない場合は後述の「ユーザー環境変数にPathを追加する」も確認して下さい。

環境変数の設定画面で、上側の「ユーザ環境変数」から「Path」を選択して「編集」をクリックします。

SS_1005

既存の「Path」は消さずに、末尾にMySQLの実行ファイルの置かれたディレクトリのパスを追記します。

SS_1057

この「Path」に記載されている変数値は、「;(コロン)」が区切り文字になっているので、既にある変数値が「;」で終わっていなければ、追加した上で、MySQLのパスも追加します。

最後についていても問題ないので、私は次回に付け忘れないように付けるようにしています。

恐らく、大体の人は「C:\xampp\mysql\bin」だと思いますが、XAMPPをインストールした場所に合わせて変更して下さい。

SS_1008_1

後は、「ユーザ変数の編集」ダイアログの「OK」、続いて「環境変数」の「OK」とすべて肯定ボタンを選択していけば、設定は完了です。

ユーザー環境変数にPathを追加する

※ユーザー環境変数に「Path」が存在しない人向けです。

ユーザー環境変数に「Path」を新規で追加するので「新規」をクリックします。

SS_5372

「新しいユーザー変数」という画面が表示されるので、「変数名」に「Path」、「変数値」に「C:\xampp\mysql\bin;(例)」と入力して「OK」をクリックします。

SS_5373

あとは追記の場合と同じです。

コマンドプロンプトの再起動

環境変数の値は、プログラムの起動時に一度だけ読み込まれることがほとんどなので、既にコマンドプロンプトを起動していた場合は一度終了します。

その後、新しく立ち上げたコマンドプロンプトでは、先ほど設定したPathの値が適用されているはずです。

path」と打って「Enterキー」を押すと、「Path」の値が表示されます。

SS_1060

MySQLのディレクトリが最後に追加されていれば、「mysql」コマンドが使えるようになっています。

変数に大文字小文字の区別はなく、実際は「PATH」として保持されています。

コマンドプロンプトからMySQLを実行

Pathに追加出来たので「mysql」だけで実行します!後ろのはユーザーの指定とパスワード入れる為のものです。

C:\Users\niku>mysql -u root -p
Enter password: ***********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 481
Server version: 5.6.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

パスワードが合っていればMySQLに接続されます。

これで簡単にコマンドプロンプトからMySQLを使えるようになりました!

おまけ

実はコマンドプロンプトから環境変数をセットする方法があります。

ただ、落とし穴があるので、特にPathの設定には「使わない」ことをおすすめします。

環境変数をセットするコマンドは「setx」です。「setx /?」で使い方見れます。

setx /?

SetX の使用法は 3 とおりあります:

構文 1:
    SETX [/S システム [/U [ドメイン\]ユーザー [/P [パスワード]]]] 変数 値 [/M]

構文 2:
    SETX [/S システム [/U [ドメイン\]ユーザー [/P [パスワード]]]]
    変数 /K レジストリパス [/M]

構文 3:
    SETX [/S システム [/U [ドメイン\]ユーザー [/P [パスワード]]]]
         /F ファイル {変数 {/A x,y | /R x,y 文字列}[/M] | /X} [/D 区切り文字]

説明:
    ユーザーまたはシステムの環境の中で環境変数を作成または
    変更します。引数、レジストリ キー、またはファイル入力を
    もとに変数を設定することができます。

パラメーター一覧:
    /M                 変数をシステム全体 (HKEY_LOCAL_MACHINE)
                       の環境で設定することを指定します。
                       既定では、HKEY_CURRENT_USER 環境で変数
                       を設定するように設定されています。

かなり長いので一部だけ抜粋してます。

/M」を付けるとシステム環境変数に設定、付けないとユーザー環境変数に設定することになります。

システム環境変数を設定する場合は、管理者権限必要です。

右クリックから「管理者として実行」します。

SS_1067

「ユーザーアカウント制御」が出てくるので「はい」を選択します。

SS_1063

管理者モードで立ち上がります。

SS_1068

というわけでやってみる。

setx path "%path%;C:\xampp\mysql\bin"

警告: 保存されたデータは 1024 文字に切り捨てられました。
成功: 指定した値は保存されました。
setx /M path "%path%;C:\xampp\mysql\bin"

警告: 保存されたデータは 1024 文字に切り捨てられました。
成功: 指定した値は保存されました。

えーっと、環境変数の文字数制限で中途半端に保存されてしまいました∑(゚Д゚)ガーン

「Pathとは」で述べた通り、コマンドプロンプトが持っているPathは、「システム環境変数のPath」+「ユーザー環境変数のPath」なんです。

今までは分かれて保存されていたから何とかなっていたけど、今回上書きしようとしている内容は「システムPath+ユーザーPath」なので文字数がオーバーしてしまったと。

もし1024文字以内で収まったとしても、システム環境変数の設定を繰り返すと「システム+ユーザー×n」となるし、ユーザー環境変数の設定を繰り返すと「システム×n+ユーザー」と膨れ上がる。

そもそもユーザー環境変数をシステム側に埋め込まれると迷惑になる可能性があるので、ユーザー環境変数のPathを設定しているユーザーはこの操作は行ってはいけない。

システム環境変数かユーザー環境変数を指定してPathを取得できれば、この問題を解決出来ると思って、そういう方法を探しまわったんですが、見つけることが出来ませんでした…。

それ以外にも環境変数で、以下の様な指定している方も多いと思います。

「%SDK_ROOT%\tools;%SDK_ROOT%\platform-tools;%ANT_ROOT%;%COCOS_CONSOLE_ROOT%;」

せっかく他の環境変数で重複箇所を同時に変更出来るようにしているのに、展開したデータで上書かれてはたまりません。

なので、この方法は設定されている環境変数を熟知していて問題がないとハッキリ分かっている場合以外は使うべきではないです。

終わりに

今回もサクッと終わるつもりだったんですが、えらく長くなってしまった(;・∀・)

実は「おまけ」に書いた内容を、最初は「上級者向けのおすすめの方法」として紹介するつもりだったんです。

そして実際やってみると色々と問題があることが分かって、あれを調べたら、これが分からんと、エンドレスでもの凄い調べまわってました。

おかげで勉強にはなったんですが、今後役に立つとは思えない内容なのが辛いw

コマンドプロンプトの知識とかいらないだろうと思いつつたまに使ってる( ゚д゚)いつかまたきっと役にたってくれる!

それではまた。

 - MySQL, Windows, XAMPP , ,