レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

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コマンド入力待ち・MySQL(MacPort)起動

mysqlコマンド入力待ち・MySQL(MacPort)起動

 

サーバーステータスの確認(mysqlコマンド:status)

次に「status」と入力し、Enterを押下します。
サーバーのステータス情報が表示されます。

ステータス情報の中に「UNIX socket:」の行がありますので、
そこに表示されている文字列が、ソケット接続文字列になっています。

UNIX socket: /opt/local/var/run/mysql55/mysqld.sock

「Connection:」に表示されている通り、実はこの状態で接続している場合、
UNIXソケット(ソケット接続)を利用して既に接続しています。
この場合、利用されているソケットはコンパイル時に指定された、
デフォルトソケットを利用していることになります。

※そういう事ではなく、ソケットを指定して接続する手順は後述しています。

mysql-initialize-macport_st11

サーバーステータスの確認・MySQL(MacPort)起動

 

MySQLのクライアントモード「mysql>」を抜けるには、
\q」と入力しEnterを押下します。

mysql-initialize-macport_st12

クライアントモード終了・MySQL(MacPort)起動

 

プロモーション

Google or AdMax Promotion (srvpos)

デフォルト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」を指定して接続しています。

mysql-chk-socket_st04

ソケット指定による接続・MySQLのUNIXソケットを指定して接続

 

実行すると、まずサーバーのバージョンが確認できます。
バージョンの横に「Community Server」と表示されていますので、
パッケージインストールによって導入されたサーバーである事が分かります。

mysql-chk-socket_st05

指定ソケットのサーバーへ接続・MySQLのUNIXソケットを指定して接続

 

「mysql>」とMySQLクライアントモードになっていますので、
「status」と入力するとサーバーのステータスが確認できます。

同様に使用しているソケット情報などが確認できます。

mysql-chk-socket_st06

接続ソケット情報の確認・MySQLのUNIXソケットを指定して接続

 

このようにして、デフォルトソケットで接続するには、
そのまま何も指定せず接続できますし、

特定のサーバーへ接続したい場合には、
そのMySQLサーバーが利用しているデフォルトソケット接続文字列を指定すると接続できます。

 

参考

ちなみに、以下の記述でも接続ができるとか。

mysql -S /Applications/MAMP/tmp/mysql/mysql.sock

(引用)ターミナルでMAMP版MySQLに接続する方法 – 積み重ねた日々

今回の接続例なら、以下のように記述する形に。

opt/local/var/run/mysql55/bin/mysql -S /tmp/mysql.sock

 


AdMax Promotion

公開日:
最終更新日:2017/02/15

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。