MySQLにSocketで接続する(UNIXソケット)
MySQLサーバーをインストールしてすぐにMySQLクライアント等から、
接続確認を行う際に便利な接続方法としてソケット接続があります。
IPアドレス:ポートでLISTENしているポートの競合なども意識することなく、
簡単に接続ができますので、インストール後の確認には最適です。
概要
MySQLサーバーにデフォルトSocketで接続する
MySQLサーバーにソケット接続を行うと言っても、
ソケット接続を利用しているという認識はあまりなく、
普通にターミナルからmysqlクライアントで、
MySQLサーバーに接続をすると、デフォルトソケットを利用して接続が行われます。
実際、サーバーのステータスの確認を以下で行っていますが、
その際にはデフォルトソケットが利用されています。
MySQLクライアントからデフォルト接続
デフォルトソケットを利用して目的のMYSQLサーバーに対して接続する場合には、
MySQLサーバーをインストールした際に、
同時にインストールされたMySQLクライアント(mysql実行ファイル)を利用してサーバーへ接続します。
実行ファイルの位置がわからない場合には、
以下の手順で検索すれば見つけることができます。
パスが分かったら以下のコマンドを入力します。
(mysql実行ファイルまでのパス) -u _mysql
実際には以下のように入力します。
※MacPortの例
/opt/local/lib/mysql55/bin/mysql -u _mysql
特に接続先などの指定は行っていませんが、
以下のように接続され「mysql>」と表示されMySQLコマンドの入力待ちになります。
サーバーステータスの確認(mysqlコマンド:status)
次に「status
」と入力し、Enterを押下します。
サーバーのステータス情報が表示されます。
ステータス情報の中に「UNIX socket:」の行がありますので、
そこに表示されている文字列が、ソケット接続文字列になっています。
UNIX socket: /opt/local/var/run/mysql55/mysqld.sock
「Connection:」に表示されている通り、実はこの状態で接続している場合、
UNIXソケット(ソケット接続)を利用して既に接続しています。
この場合、利用されているソケットはコンパイル時に指定された、
デフォルトソケットを利用していることになります。
※そういう事ではなく、ソケットを指定して接続する手順は後述しています。
MySQLのクライアントモード「mysql>」を抜けるには、
「\q
」と入力しEnterを押下します。
デフォルトSocketを指定してMySQLWorkbench(GUI)から接続する
上記ではターミナル操作にて接続を行いましたが、
既にUNIXソケット接続に利用する
ソケットパス(ソケット接続文字列例:/opt/local/var/run/mysql55/mysqld.sock)が、
既に分かっている場合は、
ソケットパスをMySQLWordkbenchに入力することで、
MySQLサーバーにGUI操作で接続して、管理・操作をすることができます。
詳しくは以下でご紹介しています。
デフォルトソケット以外のMYSQLサーバーへソケット接続する
MySQLクライアントをサーバーのインストール時に、
同時にインストールしない場合もあるかもしれません。
そうした場合には既にインストール済みの
MySQLクライアント(mysql実行ファイル)から、
目的のサーバーへのソケット接続文字列を指定して接続する事ができます。
その場合、接続先のMySQLサーバーへのソケット接続文字列が必要になります。
以下の手順で確認することができますので、事前に確認をしておきます。
ここでは、MySQLサーバーのインストーラパッケージで、
インストールしたMySQLサーバー(socket:/tmp/mysql.sock)へ、
MacPortでインストールしたMySQLサーバーと同時インストールした、
MySQLクライアントを利用して接続してみます。
※MySQLクライアントのデフォルトソケットは、
「socket:opt/local/var/run/mysql55/mysqld.sock」が指定されています。
ではターミナルを開き、以下のように入力しソケットを指定します。
opt/local/var/run/mysql55/bin/mysql --socket=/tmp/mysql.sock
「opt/local/var/run/mysql55/bin/mysql」は、
MacPortによってインストールされたMySQLクライアント(mysql)へのフルパスを指定しています。
続いて「–socket=/tmp/mysql.sock」部分にて、
MySQLサーバーのインストーラパッケージでインストールしたMySQLサーバーへの、
ソケット「/tmp/mysql.sock」を指定して接続しています。
実行すると、まずサーバーのバージョンが確認できます。
バージョンの横に「Community Server」と表示されていますので、
パッケージインストールによって導入されたサーバーである事が分かります。
「mysql>」とMySQLクライアントモードになっていますので、
「status」と入力するとサーバーのステータスが確認できます。
同様に使用しているソケット情報などが確認できます。
このようにして、デフォルトソケットで接続するには、
そのまま何も指定せず接続できますし、
特定のサーバーへ接続したい場合には、
そのMySQLサーバーが利用しているデフォルトソケット接続文字列を指定すると接続できます。
参考
ちなみに、以下の記述でも接続ができるとか。
mysql -S /Applications/MAMP/tmp/mysql/mysql.sock
今回の接続例なら、以下のように記述する形に。
opt/local/var/run/mysql55/bin/mysql -S /tmp/mysql.sock
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日:
最終更新日:2017/02/15