「あれ? どうやるんだっけ?」
↓
Google先生にきく
↓
しばらくして忘れる
↓
Google先生にきく
……このループから抜け出すためにMySQLの操作方法をメモしていきます。
使ったものから追加していく予定です。
起動と終了
ルート権限で起動
mysql -u root -p
このあとにパスワードを入力。
指定したユーザーとして起動
mysql -u ユーザー名 -p
このあとにパスワードを入力。
データベースも指定する場合は、
mysql -u ユーザー名 -p データベース名
このあとにパスワードを入力。
終了
exit
一覧表示して確認する系
ログイン中のユーザーを確認
select user();
あるいは下の方法で現在の接続に関する情報を表示することもできます。
現在の接続に関する情報を表示
\s
データベースを一覧表示
show databases;
複数形にすることに注意。あと;忘れない。
データベース内のテーブルを一覧表示
use データベース名 show tables;
やっぱり複数形なので注意。;忘れにも注意。
ユーザーの一覧表示
ユーザー情報はmysqlというデータベースのuserというテーブルに格納されているみたいです。
(参照するにはルート権限が必要)
ただuserテーブルの全ての内容を表示するとフィールド(列)の数が多すぎて大変なことになるので、
use mysql select host, user from user;
あるいは一行で
select host, user from mysql.user;
これでhostとuserの組が返ってきます。
さらに各ユーザーに与えられた権限を参照したいときは、
show grants for ユーザー名@ホスト名(たとえばlocalhost);
(ちなみに、全てのユーザーを表示したときに謎のpmaというユーザーがいたのですが、どうやらphpMyAdminを入れたときに出来たユーザーみたいで安心しました)
データベースの作成と権限の譲渡
データベースの作成
create database データベース名;
ユーザーを作成して権限を与える
grant all on データベース名.* to ユーザー名@ホスト名(たとえばlocalhost) identified by 'パスワード';
テーブルの作成と操作
テーブルの作成
use データベース名;
でデータベースを指定した後、
create table テーブル名 ( フィールド1の名前 フィールド1の型 キーや制約の設定, フィールド2の名前 フィールド2の型 キーや制約の設定, ... );
フィールドとはテーブルの列のこと。カラムとも呼ぶみたいです。
よくセミコロン;を忘れて、あれ?ってなります。
テーブルの操作
テーブルにデータを挿入
insert into テーブル名 (フィールド1の名前, フィールド2の名前, ...) values (フィールド1の値, フィールド2の値, ...);
その他便利なコマンド
入力の途中でキャンセル
\c