Deletions are marked like this. | Additions are marked like this. |
Line 25: | Line 25: |
=== 操作 === |
== 操作 == === mysqlコマンドの操作 === |
Line 39: | Line 41: |
このシェルの中でデータベースの作成やユーザの作成等ができる。 |
mysqlの中で使えるコマンドは以下の通り * show databases; ... データベース一覧を表示する。 * use データベース名; ... データベースに接続する。 * show tables; ... 接続中データベースのテーブル一覧を表示する。 * create database データベース名; データベースを作成する。ハイフン等が含まれる名称の場合、バッククォートで囲まなければいけないらしい。シングルクォートは使用できない(妙な仕様だ)。 |
Line 42: | Line 49: |
== リストア == |
=== データベースのリストア === mysqlシェル(?)の中ではデータベースのリストアはできない。しかし、リストアするためには、あらかじめデータベースを作成しておかなければならないので、 * いったんmysqlシェルの中でcreate databaseを行う。 * mysqlシェルを終了して、リストア操作を行う。 という手順を踏む(もしかしたらシェルに入らなくともDB作成はできるかも)。リストアは以下のようにする。 |
Line 45: | Line 59: |
# mysql -u root -p Enter password: mysql> CREATE DATABASE `db_name`; Query OK, 1 row affected mysql> exit Bye |
# mysql -u user -pパスワード データベース名称 < バックアップファイル }}} |
Line 52: | Line 62: |
# mysql -u user -p db_name < dumpfile.sql }}} |
※この仕様はもうちょっと何とかならなかったのだろうか。 |
mysql
初期設定
文字コードの設定
サーバとクライアントがきちんと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; ... データベース一覧を表示する。
- use データベース名; ... データベースに接続する。
- show tables; ... 接続中データベースのテーブル一覧を表示する。
- create database データベース名; データベースを作成する。ハイフン等が含まれる名称の場合、バッククォートで囲まなければいけないらしい。シングルクォートは使用できない(妙な仕様だ)。
データベースのリストア
mysqlシェル(?)の中ではデータベースのリストアはできない。しかし、リストアするためには、あらかじめデータベースを作成しておかなければならないので、
- いったんmysqlシェルの中でcreate databaseを行う。
- mysqlシェルを終了して、リストア操作を行う。
という手順を踏む(もしかしたらシェルに入らなくともDB作成はできるかも)。リストアは以下のようにする。
# mysql -u user -pパスワード データベース名称 < バックアップファイル
※この仕様はもうちょっと何とかならなかったのだろうか。