2012年10月10日水曜日

Mysqlをコマンドラインから操作するメモ

Ubuntuでのmysqlのインストール
 apt-get install mysql-server


mysql コマンドラインの操作

(1)  ユーザを指定してMysqlにログイン
mysql -u ユーザ -p パスワード

DBを指定する場合は、
mysql -u ユーザ -p パスワード データベース名

ログイン後にDBを変更する場合は、

mysql> use データベース名

(2) パスワード変更

☆rootユーザでDBユーザのパスワードを変更
set password for username@'localhost' = password('new password');

(3)利用可能ユーザの確認
MySQLはユーザ名@アクセス元をセットで管理

自ホストはlocalhost/127.0.0.1/localhost.localdomainで指定する。
全ホストからアクセスできるようにするには、ワイルドカード %を指定する。
同一セグメント上からアクセスさせる場合は 192.168.1.% を指定する。

ユーザ確認は以下のSQLを実行する。
select user,host from mysql.user;


(4)ユーザの追加と削除
ユーザの追加
grant all on データベース名.* to ユーザ名@ホスト identified by 'パスワード'
☆全権限許可

SELECT , INSERT , DELETE , UPDATE権限を付加して登録する場合は、上記のallの箇所を置き換える

grant select,insert,delete,update on データベース名.* to ユーザ名@ホスト identified by 'パスワード'

パスワード設定を再設定する場合は
set password for ユーザ名@localhost=password('パスワード');

(5)ユーザの削除
権限を削除してから、mysql.userから対象ユーザを削除

revoke all on データベース名.* from ユーザ名@ホスト名;
delete from mysql.user where user like 'ユーザ名' and host like 'ホスト名';
flush privileges;

(6)ユーザ権限の表示

show grants for ユーザ名@ホスト名;

a)INSERT権限の追加

grant insert on データベース名.* to ユーザ名@ホスト名;

b)INSERT権限の削除

revoke insert on データベース名.* to ユーザ名@ホスト名;


select,deleteなどは上記insertの箇所を置き換える

(7) データベースの一覧表示

show databases;

(8)データベースへ移動

use データベース名;

(9)データベースを作成
create database データベース名 character set utf8 collate utf8_bin;

文字コードの指定は、以下を指定
utf8=UTF-8
sjis=Shift_JIS
ujis=EUC-JP

作成後にデータベースの文字コードを変更する場合は
 ALTER DATABASE データベース名 DEFAULT CHARACTER SET=utf8;

(10)データベースの削除

drop database データ名;

(11)テーブルの一覧表示

show tables;

(12)テーブルの追加(作成)

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

create table テーブル名 (キー名 int auto_increment NOT NULL, name text NOT NULL, primary key(u_id)) type MyISAM;

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


(13)テーブルの削除

drop table テーブル名;

(14)テーブル情報を表示
describe テーブル名;


(14)テーブルの変更
a)テーブル名を変更する
alter table 旧テーブル名 rename 新テーブル名;

b)カラムの名を変更する
alter table テーブル名 change 旧カラム名 新カラム名;

c)カラムの型を変更する

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


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

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


e)カラムを追加する

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


f)カラムを削除する

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


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

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


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

alter table テーブル名 drop primary key;


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

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


j)インデックスを設定する

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


i)インデックスを削除する

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




(15)バックアップ
a)MySQLデータベース全体をバックアップ
mysqldump -u root -p -x --all-databases > dump.sql

b)データベースを指定してバックアップ

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

c)バックアップを自動で取得

cronで以下を指定する
mysqldump --all-databases -u root --password='パスワード' > dump.sql


(16)MySQLデータベースストア
a)全部
mysql -u root -p < dump.sql

b)ータベースを指定してリストア

mysql -u root -p データベース名 < database.dump.sql

0 件のコメント: