mysqlをUbuntuに導入して外付けHDDにデータ格納、外部クライアントのMacから接続してみる(ローカルネットワーク上)
気まぐれで3TBの外付けHDDを購入したので、びっぐでーた(棒)で遊びたい。というわけで、まずはMySQLから。
環境は
ローカルネットワーク上です。
1. mysqlをインストール
sudo apt-get install mysql-server
2. 外部クライアントから接続用のユーザ設定
rootユーザにローカルネットワークからのアクセスができるようにします。
<pass>
は自分の好きなパスワードを設定。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"192.168.%" IDENTIFIED BY '<pass>' WITH GRANT OPTION;
rootユーザがローカルネットワーク(192.168.XX.XX)から接続できる登録がされたことを確認します。
mysql> select user, host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | 192.168.% |
3. 外部クライアントのアドレスを許可
mysqlの設定ファイルにbind-addressを外部クライアント用に追加する。192.168.XX.XX
には外部クライアントでifconfig
して確認できたアドレスを入れてください。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf bind-address = 192.168.XX.XX
/etc/mysql/my.cnf
とか/etc/mysql/my.cnf
をいじれとか言う人達もいますが。要確認。
mysqlを再起動して設定を反映させます。
sudo /etc/init.d/mysql restart
ポートが開かれているか確認しましょう。
netstat -tlpn Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name tcp 0 0 192.168.<ナイショ>:3306 0.0.0.0:* LISTEN -
外部クライアントのMacから
mysql -h 192.168.<ナイショ> -u root -p <DB名>
で入れるか確認。適当に遊ぶようDBをCREATE DATABASE
しとくといいかも。
ちなみに、mysql再起動時に、
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
みたいなのがでたら結構闇が深いです。自分の場合は、mysqld.sock
を作って権限与えて、システム再起動して、、、みたいな感じになりました。とりあえずシステム再起動して深呼吸してみるのがいいかと思います。
4. HDDをext4でフォーマット
やっとHDD触れます。
まずは接続されている外付けHDDを確認しましょう。
df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb1 2.7T 73M 2.6T 1% /media/<ナイショ>/b84f80c4-e756-4353-90fc-cab59d936fe0
おぉ、、いる。 パーティションテーブルを作成して、ディスクラベル/ファイルシステム/開始終了位置を決めます。
sudo parted /dev/sdb1 GNU Parted 3.1 /dev/sdb1 を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) mklabel 新しいディスクラベル? gpt 警告: いま存在している /dev/sdb1 のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか? はい(Y)/Yes/いいえ(N)/No? Y (parted) mkpart パーティションの名前? []? ファイルシステムの種類? [ext2]? ext4 開始? 0% 終了? 100% (parted) quit
ext4が無難だと思います。
ファイルシステム作成でHDDがext4で使えるようになります。
sudo mkfs -t ext4 /dev/sdb1
5. HDDをmysqlのデータ格納場所にマウント
mysqlのデータ格納場所にマウントします。
sudo mount /dev/sdb1 /var/lib/mysql
確認。
df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb1 2.7T 73M 2.6T 1% /var/lib/mysql
まだちゃんと動作確認はできてないので、びっぐでーた(棒)が無事mysqlに入ったら追記しようかと思います。