--- title: Ubuntu の mysql サーバーを外部からアクセス可能にする author: kazu634 date: 2009-11-08 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4907;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - mysql - ubuntu ---
Ubuntu の設定ではまったので、書いておきます。
Ubuntu側で設定します。設定には、
の二種類があります。
参考にしたサイトにはこんなことが書いてありました:
調べてみると、以下の箇所を修正する必要がある様だ。
- MySQL Serverの設定ファイルmy.cnfを開き、[mysqld]の項目以下の、bind-addressを探す。
- bind-addressを、コメントアウトする。
修正し終わったら、MySQL Serverを再起動すると、外部ホストからも接続可能となる。
というわけで、 /etc/mysql にある my.cnf を編集します。
kazu634@srv634% sudo vi my.cnf /etc/mysql [7304] kazu634@srv634% diff my.cnf_20091108 my.cnf /etc/mysql [7305] 57c57 < bind-address = 127...1 --- > # bind-address = 127.0.0.1
とりあえずローカルなネットワークはこのような構成です:
というわけで、192.168.11のネットワークからアクセスできるように設定します。
kazu634@srv634% mysql -uroot -pxxxxxxxx ~ [7291] Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 398 Server version: 5.0.75-0ubuntu10.2 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select user, host from user; +------------------+-----------+ | user | host | +------------------+-----------+ | redmine | % | | root | 127.0.0.1 | | debian-sys-maint | localhost | | root | localhost | | root | srv634 | +------------------+-----------+ 5 rows in set (.02 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | money | | mysql | | phone | | redmine | | shop | | words | +--------------------+ 7 rows in set (.00 sec) mysql> grant all privileges on shop.* to root@"192.168.11.%" -> identified by 'musashi' with grant option ; Query OK, rows affected (.07 sec) mysql> exit Bye
mysql サーバーを再起動します:
kazu634@srv634% sudo /etc/init.d/mysql restart /etc/mysql [7308] * Stopping MySQL database server mysqld [ OK ] * Starting MySQL database server mysqld [ OK ] * Checking for corrupt, not cleanly closed and upgrade needing tables.
アクセスできました♪
~ on kazu634 [517] $: hostname musashi-kazuhiro-no-iMac.local ~ on kazu634 [518] $: mysql -h srv634 -uroot -p -bash: mysql: command not found ~ on kazu634 [519] $: mysql5 -h srv634 -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 35 Server version: 5..75-0ubuntu10.2 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use shop; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------+ | Tables_in_shop | +----------------+ | Starbucks | | renoir | +----------------+ 2 rows in set (0.00 sec) mysql> select * from renoir\G *************************** 1. row *************************** id: 1 shopname: 喫茶室ルノアール 池袋東口店 address: 東京都豊島区東池袋1-40-2 tel: 03-3980-6352 shophour: 年中無休全日:7:30-23:00 accomodation: 禁煙席:38席喫煙席:32席 access: JR池袋駅東口出て明治通り左並びの東池袋1丁目交差点ヤマダ電機隣 lat: 35.7320862 lng: 139.7138367