Posted at

Mysql操作マニュアル

More than 1 year has passed since last update.


Mysqlの基本操作


1.Mysql起動

・mysql.server start = Mysqlが起動します

・mysql -u root = Mysqlが起動した状態であればサーバーに入ることが出来ます。

Mysqlが起動出ていないとエラー:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

(socketが動いてないよ?みたいなエラーになるので注意)


2.簡単な操作

・help; :[help;]コマンドで利用できるコマンドの一覧が表示される

・control + L :画面のログをクリア

・select user(); :こちらのコマンドで現在のユーザー情報を表示

・\q 又は quit; :この2つのコマンドでサーバーから抜けることが可能

mysqlはセミコロン(;)で区切られている為、セミコロンを忘れると、この様に続きを書いてねと表示される

select user()

->

こう追加すればselect user();として認識してくれる
->;

ちなみに最初から描き直したい場合は\cを利用する


mysql> select user()
-> \c
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

てな感じになる


3.データベースの操作

DBの作成コマンド

・create database DB名;

DBの削除コマンド

・drop database DB名;

アクセスできるDB名を確認するコマンド

・show databases;

こんな感じに出てくる(rootユーザーで実行している為全て出てきている)

+--------------------------+

| Database |
+--------------------------+
| information_schema |
| e_sample_app_development |
| e_sample_app_production |
| e_sample_app_test |
| music_app_development |
| music_app_test |
| myapp_development |
| myapp_production |
| myapp_test |
| myblog_development |
| myblog_test |
| mydb01 |
| mydb02 |

操作対象になっているDBの確認コマンド

・select database();

+------------+

| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)

NULLになっているので操作対象のDBが今は存在していない事を示している

実際に操作対象にするコマンドがこちら

・use DB名;

例:use mydb02;

mysql> use mydb02;

Database changed

mydb02を操作対象にしたので操作対象になっているか確認

select database();

mysql> select database();

+------------+
| database() |
+------------+
| mydb02 |
+------------+
1 row in set (0.00 sec)


4.作業用ユーザーの作成

rootユーザーの場合作業できる範囲が広い(すべてに権限がある)のでDB毎に作業用ユーザーを作成することが推奨されています

ユーザー作成コマンド

create user ユーザー名@localhost identified by 'パスワード';

今回はテストでこんな感じのユーザーを作成

create user dbuser01@localhost identified by '66a66b66c';


【作成したユーザーに作成したDBのテーブルを操作する権限を与える】

grant all on DB名.* to ユーザー名@localhost;

実際に作成したユーザーとDBで実行してみる:grant all on mydb01.* to dbuser01@localhost;

#コマンド実行

grant all on mydb01.* to dbuser01@localhost;

#権限付与できた
Query OK, 0 rows affected (0.01 sec)

権限の付与に成功した!

このコマンドで、dbuser01ユーザーに対してmydb01データベースのすべてのテーブルに関する全ての権限を与えるという意味になる


rootから権限付与したユーザーに切り替え

現在はrootユーザーでログインしているので\qで一旦抜け出す

mysql -u dbuser01 -p mydb01

パスワードが聞かれるので、create userで作成したパスワードを入力

うまくいけば下記のような表示がされる

#これが表示されていればOK

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22 Homebrew

念のためユーザーとDBが操作対象に変更されているか確認

・select user(); 実行

+--------------------+

| user() |
+--------------------+
| dbuser01@localhost |
+--------------------+
1 row in set (0.00 sec)

dbuser01になっていることを確認

・続いてshow databases; 実行

+--------------------+

| Database |
+--------------------+
| information_schema |
| mydb01 |
+--------------------+
2 rows in set (0.00 sec)

mydb01が表示されていることを確認


用語 


クエリとは?

Mysqlでのコマンドの事をクエリと呼ぶらしい

・select database();とか

・use mydb02;とか

をクエリらしいという解釈した。

あとMysqlのクエリでは大文字、小文字の区別がないので

SElecT DaTabase();とかでも同じ結果が返ってくる


終わり

とりあえず基本的な操作はこんな感じ?

何か追加があれば追加していきます