MySQLの基本操作

MySQLで利用頻度の高いコマンドの使用例を列挙します。

 

ユーザ管理

MySQLを利用するために、MySQLにユーザを登録や変更を行います。

 

rootユーザでのログインとパスワード設定

インストール直後にMySQLにログインするには、以下のコマンドを利用します。

mysql -u root

これで、MySQLにrootでログインし操作することが可能な状態になります。

rootユーザはMySQLのすべてに関して管理権限を持ったユーザになりますので、必ずパスワードの設定を行いましょう。

 

パスワードの設定には、以下のコマンドを利用します。

set password = password('パスワード')

 

パスワードを設定したMySQLにログインするには、以下のコマンドを利用します。

mysql -u root -p パスワード

 

なお、rootユーザで他のユーザのパスワードを変更するには、以下のコマンドを利用します。

set password for username@'localhost' = password('パスワード');

 

 

インストール直後のユーザ

インストール後のMySQLには、以下のユーザが登録されています。

select user, host, user from mysql.user;
+------+-------------------------+------+
| user | host                    | user |
+------+-------------------------+------+
| root | 127.0.0.1               | root |
|      | localhost               |      |
| root | localhost               | root |
|      | localhost.localdomain   |      |
| root | localhost.localdomain   | root |
+------+-------------------------+------+

初期では、rootユーザのみが登録されていますが、hostは複数の表記があります。

MySQLのユーザは、ユーザ名@アクセス元 がセットになって一位のユーザと見なされます。

127.0.0.1とlocalhost、localhost.localdomainはいずれも自ホストを表し、ここでは、自ホストから接続してくる root ユーザのみが登録されていることになります。

 

匿名ユーザの削除

匿名ユーザとは、hostの設定があるものの、userの設定値がない物を示します。

匿名ユーザが設定してあるとデータベースに匿名ユーザとしてログオンできてしまうため、特別な理由がない限り匿名ユーザは削除しておくといいでしょう。

なお、匿名ユーザの削除には以下のコマンドを利用します。

例)host = localhostの匿名ユーザを削除

delete from mysql.user where user like '' and host like 'localhost';
flush privileges;

 

 

ユーザの追加と削除

ユーザの追加

ここでは、ユーザhoge@localhostをデータベースtestdbのユーザとして登録します。

すべての権限を付加して登録する

grant all on testdb.* to hoge@localhost identified by 'パスワード'

 

SELECT , INSERT , DELETE , UPDATE権限を付加して登録する

grant select,insert,delete,update on testedb.* to hoge@localhost identified by 'パスワード'

 

192.168.1.100からtestdbにアクセスできるユーザhogeを登録する

grant all on testdb.* to hoge@'192.168.1.100' identified by 'パスワード'

 

192.168.1.0/24からtestdbにアクセスできるユーザhogeを登録する

grant all on testdb.* to hoge@'192.168.1.%' identified by 'パスワード'

 

ユーザの削除

ここでは、ユーザ hoge@localhostを削除する例を示します。

ユーザを削除する場合は、先にrevokeで権限を削除してから、deleteでユーザを削除します。

revoke all on tested.* from hoge@localhost; 
delete from mysql.user where user like 'hoge' and host like 'localhost'; 
flush privileges;

 

ユーザの権限設定

ユーザ権限の表示

show grants for hoge@localhost;

 

INSERT権限の追加

grant insert on tested.* to hoge@localhost;

 

INSERT権限の削除

revoke insert on testdb.* from hoge@localhost;

 


データベースの基本操作

データベースの一覧表示

show databases;

 

指定のデータベースへ移動

use testedb;

 

データベースを文字コード指定して作成

create database tested character set utf8 collate utf8_bin;

*utf8=UTF-8,sjis=Shift_JIS,ujis=EUC-JP

 

データベースの削除

drop database testedb;

 

 

テーブルの基本

 

テーブルの一覧表示

show tables;

 

テーブルの追加(作成)

user_tblテーブルを以下の条件で作成します。

プライマリキー uid (自動採番)、エンジンタイプ MyISAM

create table user_tbl (u_id int auto_increment NOT NULL, name text NOT NULL, primary key(u_id)) type MyISAM;

 

テーブルの削除

user_tblテーブルを削除します。

drop table user_tbl;

 

 

テーブルの変更

1度作成したテーブルを変更するには、alter table文を利用します。

テーブル名を変更する

alter table 旧テーブル名 rename 新テーブル名;

 

カラムの名を変更する

alter table テーブル名 change 旧カラム名 新カラム名;

 

カラムの型を変更する

alter table テーブル名 modif カラム名 型 not ull default デフォルト値;

 

カラムを自動インクリメントに変更する

alter table テーブル名 modify カラム名 int auto_increment;

 

カラムを追加する

alter table テーブル名 add 追加するカラム名 型;

 

カラムを削除する

alter table テーブル名 drop 削除するカラム名;

 

主キー(プライマリキー)を設定する

alter table テーブル名 add primary key (カラム名);

 

主キー(プライマリキー)を削除する

alter table テーブル名 drop primary key;

 

ユニークインデックスを設定する

alter table テーブル名 add unique (カラム名);

 

インデックスを設定する

alter table テーブル名 add index カラム名;

 

インデックスを削除する

alter table テーブル名 drop index インデックス名;

 

 

バックアップとリストア

MySQLサーバのバックアップの取得方法とリストア方法について記載します。

なお、バックアップには、mysqldumpを利用します。

MySQLデータベース全体をバックアップ

mysqldump -u root -p -x --all-databases > dump.sql

 

バックアップを圧縮する

 mysqldump -u root -p -x --all-database | gzip > dump.sql.gz

 

特定のデータベースを指定してバックアップ

mysqldump -u root -p データベース名 > database.dump.sql

 

自動バックアップ

cronで自動バックアップを取得する場合は、以下のようにします。(圧縮して取得)

mysqldump -x --all-databases -u root --password='パスワード' | gzip > dump.sql.gz >/dev/null 2>&1

 

MySQLデータベース全体をリストア

mysql -u root -p < dump.sql

 

MySQLデータベース全体のリストア(圧縮)

 zcat dump.sql.gz | mysql -u root -p

 

特定のデータベースを指定してリストア

mysql -u root -p データベース名 < database.dump.sql
  1. Roundcube webmailのインストールと設定 | UNIXLife - pingback on 2012/02/22 at 11:19 PM

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">

Trackbacks and Pingbacks: