Mysql導入
まだまだ続きます。いろんなもの導入キャンペーン
0.けいい
お遊びサーバーはみんなで共有していますが、そこでpythonのフレームワークである。djangoを使うときにmysqlを必要としていたので、Mysqlサーバーを立てました。
1.インストール
1 2 |
sudo apt-get install mysql-server<span class="explain-font"> </span> |
とりあえず、apt-get します。とりあえず、これで一応動いてはいます。
1 |
$ mysql --version |
ここで、versionが出ればできてます。僕のこのときだと5.7だったきがします。
2.設定とか
1 |
sudo vim /etc/my.conf |
こいつを編集します。これより下の階層にも同じような設定ファイルを置けるようですが、その場合、置いた場所で読み込む設定が異なるようです。というか場所はもしかしたら色々と変わるようです。参考
今回そこまで弄る必要がないんじゃないかなって思って、文字コードの追加のみを行いました。編集すると、リモートログインでroot禁止できたり自動で作られたDBを削除できたりできるらしいです。詳しくはリファレンスを!!
あっ、設定変更後は再起動しないと反映されません。
1 |
$ sudo service mysql restart |
3.DB作ろう
よくわからないからとりあえず、rootでログインしてみました。-uがユーザー指定、-p はパスワード入力ですが、ここで書かなくても聞かれます。
1 |
$ mysql -u root -p |
rootは全権限持ってます。というかrootはそういう人ですね。構図的にはこいつにだけ、DB作成権限とユーザーの作成権限を与えて、各ユーザーは指定DBにおいて全権限持つ感じにします。
とりあえずyamacoっていうDB作ります。
1 |
mysql>create database yamaco_db; |
ってすると、作られます。確認は
1 |
mysql>show databases; |
で全部表示されます。使用DBを変えるには
1 |
mysql>use yamaco_db; |
でDB内を弄るようになります。テーブルも同様にやればいいかと思います。
4.ユーザーを作ろう
mysqlのユーザー管理方式はユーザー名と接続元ホスト名で管理しています。ホストは接続可能なホストを示します。すなわち、ユーザーがyamacoでローカルからしか接続を受け付けない場合、
1 |
yamaco@localhost |
っていう感じになります。ワイルドカードも使えるので、全ホスト許可の場合は
1 |
yamaco@% |
にすると全部許可されます。で、こんな感じで作れるのはrootだけなので!ってことで実際にユーザを作ります。
1 |
CREATE USER yamaco IDENTIFIED BY 'hogepass'; |
とすると、パスワード付きでユーザーが作れます。かんまで区切れば同時にいっぱい作れます。じゃ、作ったユーザーたちを見てみます
1 |
mysql> select User,Host from mysql.user; |
普通にユーザーとかの情報もDBで管理されてます。こいつらの権限はまた違うところで管理しています。
5.権限変更
ユーザーの権限は
1 |
mysql>show grants for yamaco@%; |
で確認できます。すると色々出てきます。mysqlは権限を”付与する”形をとってます。単にユーザーを作成しただけだとusageしか与えられません。usageでは何もできませんのでここから権限を与え散らかします。
1 |
grants (権限)(column) (db).(table) to (user) |
という文です。権限はselectとかupdateとか指定できます。でも、ぜーんぶならallでいいでしょう。db.table の部分はワイルドカード使えます。でもcolumnまで指定する場合は権限のところに書きます。グローバルレベル(*.*ってこと)では見るだけとかにしといたほうがいいでしょう。
この文にオプションはいっぱいあります。自分は
1 |
identified by password 'hogepass' |
みたいにパスワードを設定しました。まとめてみると簡単だけど、理解に苦しみました。。。
6.外部ホスト
まぁsshでつないでやれば問題ないんだけど、、お外からつなぎたいよねってなった。コマンドはこんな感じ
1 |
mysql -u yamaco -p -h 133.9.0.1 |
-hはホスト名です。これで普通はつながるけどつながりませんでした。なぜでしょう。とりあえず、iptableとufw(ファイアーウォール)を確認して3306番を解放しときましたが、、、deniedされました。ここに関しては諦めます。セキュリティ的な観点からこの接続はセキュアにできるのでしょうか?わかりませんね。多分あるんでしょう。sslの三文字が見えたので、、、
それでは今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません