= mysql = == TIPS == * [[mysql/Windows|Windows上でのTIPS]] == 初期設定 == === 文字コードの設定 === サーバとクライアントがきちんとutf-8で会話するように/etc/my.cnfを設定する必要がある。参考サイトを参照のこと。 === rootパスワードの設定など === mysqlをインストールした状態では、rootというユーザだけが定義されており(anonymousもあるようだが、どうせ削除する。というか、こんなものがいるのか?)、以下の状態になっている。 * パスワードが設定されていない。誰でもrootになることができる。 * rootは(linux等と同じで)、mysqlに関するどんなことでも行える権限がある。 そこで、まずはrootのパスワードを設定しなければならない。mysqldを起動した状態で、mysql_secure_installationコマンドを使用する。 個別にrootパスワードを設定する方法もあるのだが(この方法を紹介しているサイトが実に多い)、ウィザード風のmysql_secure_installtionを使用した方が簡単。 {{{ # mysql_secure_installation }}} このウィザードで、rootのパスワード設定、anonymousユーザの削除、testデータベースの削除等ができる。 == 操作 == === mysqlコマンドの操作 === mysqlを操作するには、mysqlという「シェル」(?)を使う。このコマンドのパラメータは実に不思議で、以下のように記述する。 {{{ # mysql -u root -pパスワード }}} 「-p」と「パスワード」の間に空白を入れてはいけない。 ただし、これではパスワードがエコーバックされてしまうので、以下のように入力するのが普通らしい。 {{{ # mysql -u root -p }}} このあとで、mysqlコマンドはパスワード入力を求めるが、それはエコーバックされない。 mysqlの中で使えるコマンドは以下の通り * show databases; ... データベース一覧を表示する。 * drop database データベース名; ... データベースを削除する * use データベース名; ... データベースに接続する。 * show tables; ... 接続中データベースのテーブル一覧を表示する。 * create database データベース名; データベースを作成する。ハイフン等が含まれる名称の場合、バッククォートで囲まなければいけないらしい。シングルクォートは使用できない(妙な仕様だ)。 * create user ユーザ名 identified by 'パスワード'; ... ユーザを作成する。パスワードはシングルクォートで囲むらしい。バッククォートではない。 * grant all privileges on データベース.* to ユーザ名; ... 指定データベースについてのすべての操作権限をユーザ名に与える(これ間違っているかも)。 === データベースのリストア === mysqlシェル(?)の中ではデータベースのリストアはできない。しかし、リストアするためには、あらかじめデータベースを作成しておかなければならないので、 * いったんmysqlシェルの中でcreate databaseを行う。 * mysqlシェルを終了して、リストア操作を行う。 という手順を踏む(もしかしたらシェルに入らなくともDB作成はできるかも)。リストアは以下のようにする。 {{{ # mysql -u user -pパスワード データベース名称 < バックアップファイル }}} データベース名称を忘れると、「全データベースをリストアする」という意味になるらしい。 一つのデータベースのバックアップを指定して「全データベースをリストア」しても、対象は一つだけになるのだろうか?不明である。 ※最近のバージョンでは、以下のようにしないといけない(もちろんutf8のみ?) {{{ # mysql -u user -pパスワード --default-character-set=utf8 データベース名称 < バックアップファイル }}} == トラブル == === mysqlコマンドにポート指定しても無視される === 「--port=port_num」、「-P port_num」のようにポートを指定しても無視される。 * [[http://blog.livedoor.jp/matssaku/archives/51189454.html]] == チューニング == * [[mysql/tuning|チューニング]] == 参考サイト == * [[http://centossrv.com/mysql.shtml|データベースサーバー構築(MySQL)]] * [[http://sasuke.main.jp/useri.html|MySQL ユーザの操作(作成、パスワード変更、削除) ]]