LoginSignup
1
1

More than 5 years have passed since last update.

Mysql操作マニュアル

Posted at

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();とかでも同じ結果が返ってくる

終わり

とりあえず基本的な操作はこんな感じ?
何か追加があれば追加していきます

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1