お手製MySQL Fabric対応mysqlコマンドラインクライアント からMySQL FabricのMySQLプロトコルをしゃべる口に接続して、ちょこちょことステートメントを叩いてみる。
$ client/mysql -P 32275 -uadmin -pxxxx --protocol=tcp -h 127.0.0.1 --fabric-group=my_second_fabric --fabric-real-user=msandbox --fabric-real-password=msandbox mysql> \F Current FABRIC_OPT_DEFAULT_MODE is ro mysql> show tables; ERROR 1046 (3D000): No database selected mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | tpcc | +--------------------+ 5 rows in set (0.07 sec) mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14725 | +--------+ 1 row in set (0.00 sec) mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14722 | +--------+ 1 row in set (0.00 sec) mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14725 | +--------+ 1 row in set (0.00 sec) mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14724 | +--------+ 1 row in set (0.00 sec) mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14723 | +--------+ 1 row in set (0.02 sec) mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14724 | +--------+ 1 row in set (0.00 sec) mysql> \F rw FABRIC_OPT_DEFAULT_MODE sets to rw mysql> create database if not exists d1; Query OK, 1 row affected (0.01 sec)
こんなのをキャプチャしてみた結果が、コレ(クライアントとFabricの32275ポートをMySQLプロトコルとしてデコードさせてフィルターした)
ものの見事にログイン(グリーティング, 認証, 認証応答)とストアドプロシージャ(dump.fubric_nodes, group.lookup_groups, dump.servers) しか叩いてない。その後はRequist QUITまで沈黙。
ということは一度結果さえキャッシュしてしまえば、
$ mysqlfabric manage stop Password for admin: Fabric UUID: 5ca1ab1e-a007-feed-f00d-cab3fe13249e Time-To-Live: 1 Success (empty result set) $ mysqlfabric group lookup_servers my_second_fabric Password for admin: [Errno 111] Connection refused mysql> \F Current FABRIC_OPT_DEFAULT_MODE is ro mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14724 | +--------+ 1 row in set (0.03 sec) mysql> \F rw FABRIC_OPT_DEFAULT_MODE sets to rw mysql> SELECT @@port; +--------+ | @@port | +--------+ | 14723 | +--------+ 1 row in set (0.01 sec) mysql> create table d1.t1 (num int, val varchar(32)); Query OK, 0 rows affected (0.19 sec) $ client/mysql -P 32275 -uadmin -pxxxx --protocol=tcp -h 127.0.0.1 --fabric-group=my_second_fabric --fabric-real-user=msandbox --fabric-real-password=msandbox d1 mysql: [Warning] Using a password on the command line interface can be insecure. Using Fabric for MYSQL connection ERROR 2064 (HY000): Fabric error: Error connecting to Fabric host: Can't connect to MySQL server on '127.0.0.1' (111) (2003)
この通りクエリーは通る(もちろん、新しくコマンドラインクライアントを立ち上げようとしても32275が空いてないのでそれ以上の接続はできないけど)
TTLとかも関係してくる話なんだろうなぁ。。
余談だけど、このお手製クライアントからuse(つまり、mysql_select_db())を呼んでもことごとくエラーになることに気が付いた。MySQL Fabricの制約なのかConnector/Cがまだ対応してないのか、俺のパッチが何か考慮漏れてるのかはまだ不明。。
mysql> use d1 ERROR: mysql>
取り敢えず、今日はこれまで。
0 件のコメント :
コメントを投稿