Locked History Actions

Diff for "mysql"

Differences between revisions 4 and 5
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パスワード データベース名称 < バックアップファイル

※この仕様はもうちょっと何とかならなかったのだろうか。

参考サイト