MySQL基本

この記事は約9分で読めます。

概要

DB作るのめんどくさいなーと思わないように、理解を深めてすぐにDBを作り活用できるようにするために基本を抑える。

[bash]

#*************************************************#
#目的:すぐにDBをいじれる様になる
#そのために、上から順番に何度もコマンドを打ち込み覚えること!
#ユーザ周り・権限周りを覚える!
#
#前提
# - MySQLがインストール済み
# – rootユーザのパスワードを知っている
#*************************************************#

# ssh接続
ssh hoge@varlal.net -p hogehoge

#*************************************************#

# サービス起動スクリプトを見る
cat /etc/init.d/mysqld

# サービスの自動起動の確認
chkconfig –list mysqld

# サービスが開始しているかどうかの確認(pidの確認)
service mysqld status

#必要に応じてプロセスを確認
ps ax | grep mysqld

# サービス開始
service mysqld start

# サービス停止
service mysqld stop

# サービス再起動
service mysqld restart

#*************************************************#

# mysqlにログイン(パスワードが設定されていた場合怒られる)
mysql

# mysqlにログイン(rootユーザでパスワード有り)
mysql -u root -p

#userの作成(パスワードなし)
mysql> CREATE USER ‘hoge’@’localhost’;

#userの作成(パスワードあり)
mysql> CREATE USER ‘hogep’@’localhost’ \
IDENTIFIED BY [PASSWORD] ‘password’;

#ユーザの確認
mysql> select User,Host from mysql.user;

#mySQLから離脱(どっちでも良い)
mysql> exit
mysql> quit

#hogeユーザでログイン
mysql -u hoge

#ステータス確認(ユーザが変更されて入っているか?)
mysql> status

#mySQLから離脱
mysql> exit

#hogepユーザでログイン
mysql -u hogep -p

#ステータス確認(ユーザが変更されて入っているか?)
mysql> status

#*************************************************#

#パスワードの再設定(現在hogepユーザに居ると思うので)
mysql> SET PASSWORD = PASSWORD(‘newhogehoge’)

#hogeユーザのパスワードも変更したいが権限が足りずできない。
mysql> SET PASSWORD FOR ‘hoge’@’localhost’ = PASSWORD(‘hoge’)

#mySQLから離脱
mysql> exit

#rootユーザでログイン
mysql -u root -p

#hogeユーザのパスワードを変更する
mysql> SET PASSWORD FOR ‘hoge’@’localhost’ = PASSWORD(‘hoge’)

#mySQLから離脱
mysql> exit

#hogeユーザでパスワードログインできないことの確認
mysql -u hoge

#hogeユーザで先に設定した’hoge’でログイン
mysql -u hoge -p

#mySQLから離脱
mysql> exit

#hogepユーザでパスが変更できているか’newhogehoge’でログイン
mysql -u hogep -p

#mySQLから離脱
mysql> exit

#*************************************************#

#いろいろ権限がいるので、rootユーザで入る
mysql -u root -p

#ユーザ名の変更
mysql> rename user ‘hogep’@’localhost’ to ‘hogep2’@’loclahost’;

#ユーザの確認
mysql> select User,Host from mysql.user;

#hogeユーザの削除(hogep2は残しておく)
mysql> drop user ‘hoge’@’localhost’;

#ユーザの確認
mysql> select User,Host from mysql.user;

#*************************************************#

#rootユーザの権限を確認する
mysql> show grants;

#hogep2ユーザの権限を確認する
mysql> show grants for ‘hogep2’@’localhost’;

#*************************************************#
#この状態だと、hogep2ユーザは何も権限を持っていない
#とりあえず、testdatabaseとtesttableを制作し、そのDBにhogep2ユーザが
#SELECT,INSERT,UPDATE,DELETEしかできない様に変更する
#*************************************************#

#データベース作成&確認
mysql> create database testdatabase;
mysql> show databases;
mysql> USE testdatabase;
mysql> status

#テーブル作成&確認
mysql> create table testdatabase.testtable \
(id int, name varchar(20));
mysql> select * from testtable;

#権限の変更
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON testdatabase.* \
TO ‘hogep2’@’localhost’;
mysql> show grants for ‘hogep2’@’localhost’;

#mySQLから離脱し、hogep2ユーザ(newhogehoge)で入り直し、
#オプションでデータベースを指定し、ログイン時にDBに入る
mysql> exit
mysql> mysql -u hogep2 -p testdatabase
mysql> status

#testtableに対し、挿入を試みる
mysql> INSERT INTO testdatabase.testtable \
(id, name) values (0,"varlal");
mysql> select * from testtable;

#更新(UPDATE)を試す
mysql> update testtable set name = "VARLAL" where id = 1;
mysql> select * from testtable;

#削除(delete)を試す
mysql> delete from testtable where id=1;
mysql> select * from testtable;

#テーブル作成を試みて、権限が無いことを確認する
mysql> create table mytable (id int,age int);

#*************************************************#

#rootユーザでログインし直す
mysql> exit
mysql> mysql -u root -p

#特定のデータベースにアクセスできる一般ユーザを新たに作成する
mysql> GRANT ALL ON testdatabase.* TO basicuser@’localhost’ \
IDENTIFIED BY ‘basicuser’;
mysql> select User,Host from mysql.user;
mysql> show grants for ‘basicuser’@’localhost’;

#basicuserでログインし直す
mysql> exit
mysql> mysql -u basicuser -p testdatabase
mysql> status
mysql> show grants;

#テーブルを作成する
mysql> create table mytable (id int,age int);
mysql> show tables;
mysql> select * from mytable;

#テーブルを削除する
mysql> drop table mytable;
mysql> show tables;

#データベース削除を試みて権限が無いことを確認する
mysql> show databases;
mysql> drop database testdatabase;

#*************************************************#

#rootユーザでログインし直す
mysql> exit
mysql> mysql -u root -p

#testdatabaseを削除
mysql> drop database testdatabase;
mysql> show databases;

#hogep2とbasicuserを削除
mysql> drop user ‘hogep2’@’localhost’,’basicuser’@’localhost’;
mysql> select user,host from mysql.user;

#*************************************************#
[/bash]

★あとは、一般的なSQL操作の練習あるのみ!
SQL練習問題

#参考ページ
DBOnline|MySQLの使い方
MySQLのインストール / CentOS・Red Hat Linux実践テクニック

コメント

タイトルとURLをコピーしました