MySQLコマンド
MySQLデータベースの操作をするうえで最低限必要な(私にとってですが…)コマンドをまとめてみました。
MySQLに接続する
|
# mysql -u [ユーザ名] -p
# Enter password:
[パスワード入力] |
MySQLから切断する
|
mysql > \q
または
mysql > [Ctrl]+[D] ←
キーボードショートカット |
データベースを選択する
管理者権限を持ち、どのホストからでも接続出来るユーザー[vic]を登録する
※下記2つのgrant構文が必要です
・1番目のユーザ名@ホスト名のホスト名("%")がどこからでも接続可能なホスト名
(ただしlocalhostからの接続は含まれないため次の設定も必要になる)
・2番目のホスト名(localhost)がlocalhostから接続可能なホスト名
|
mysql > grant all
privileges on *.* to vic@"%"
-> identified by 'パスワード'
with grant option;
mysql > grant all
privileges on *.* to
vic@localhost
-> identified by 'パスワード'
with grant option;
mysql > flush
privileges; |
データベース名[customer]の通常の操作[select,insert,update,delete]が出来て、
localhostからのみ接続するユーザ[vic]を登録する
|
mysql > grant
select,insert,update,delete
on customer.* to
vic@localhost
-> identified by
'パスワード';
mysql > flush
privileges; |
データベース名[customer]の通常の操作[select,insert,update,delete]が出来て、外部ホスト(IPアドレス[111.22.3.4])から接続するユーザ[vic]を
登録する
|
mysql > grant
select,insert,update,delete
on customer.* to
vic@111.22.3.4
-> identified by
'パスワード';
mysql > flush
privileges; |
ユーザーを削除する
|
mysql > delete from
mysql.user where
user='ユーザ名' and
host='ホスト名';
mysql > flush
privileges; |
登録されているユーザを確認する
|
mysql > select
host,user,password from
mysql.user; |
データベースを作成する
|
mysql > create database
データベース名; |
データベースを削除する
|
mysql > drop database
データベース名; |
データベースの一覧を表示する
テーブルを作成する(例:addressテーブル)
ID番号:5桁整数・自動連番・主キー・空白不可、姓名:全角10文字以内・空白不可、氏名:全角10文字以内・空白不可、読み仮名:全角10文字
以内・空白不可、郵便番号:7桁整数・空白不可、都道府県:全角5文字以内・空白不可、市区郡町村名:全角20文字以内・空白不可、町名番地:
全角30文字以内・空白不可、電話番号:10桁整数、FAX:10桁整数
|
mysql > use
データベース名 ← テーブルを作成するデータベースに入る
mysql > create table
address (
-> id int(5) auto_increment primary key not null,
-> name1 varchar(20) not null,
-> name2 varchar(20) not null,
-> kana varchar(20) not
null,
-> zipcode int(7) not
null,
-> pref varchar(10) not
null,
-> city varchar(40) not
null,
-> street varchar(60)
not null,
-> tel int(20),
-> fax int(20),
-> ); |
テーブルを削除する
|
mysql > use
データベース名 ← テーブルを作成するデータベースに入る
mysql > drop table
テーブル名; |
テーブルの構造を変更する(alter table構文)
|
mysql > use
データベース名 ← テーブルを作成するデータベースに入る
●テーブルの名前を変える
mysql > alter table
テーブル名 rename 新しいテーブル名;
●カラムの型を変える
mysql > alter table
テーブル名 modify カラム名 新しい型;
●カラムの名前を変える
mysql > alter table
テーブル名 change 古いカラム名
新しいカラム名;
●カラムをあるカラムの後に追加する
mysql > alter table
テーブル名 add 追加するカラム名 型
after カラム名;
●カラムを削除する
mysql > alter table
テーブル名 drop 削除するカラム名; |
テーブルの一覧を表示する
|
mysql > use
データベース名 ← テーブルを作成するデータベースに入る
mysql > show tables; |
カラムの一覧を表示する
|
mysql > use
データベース名 ← テーブルを作成するデータベースに入る
mysql > show fields from
テーブル名; |
全てのデータベースをバックアップする
|
# mysqldump
--all-databases >
出力ファイル名 -u ユーザ名 -p
# Enter password:
パスワード入力 |
データベースを指定してバックアップする
※このコマンドを実行した際のディレクトリに出力されます。
(出力場所を指定するときは出力ファイル名をパスで指定)
|
# mysqldump -u ユーザ名 -p
データベース名 > 出力ファイル名
# Enter password:
パスワード入力 |
mysqldumpで出力したファイルからデータを取り込む
※出力したファイルがあるディレクトリで実行します。
(ファイルがある場所をパスで指定することも出来ます)
|
# mysql -u ユーザ名 -p
データベース名 < ファイル名
# Enter password:
パスワード入力 |
データを取り込む
際、同名の古いデータベースが存在するときは、
重複するデータを上書き
or無視するといった指定が出来ますが、私の場合は古いデータベースを一度削除し、新規
に同じ名前の空のデータベースを作成してから実行しています。
mysqldump等でバックアップしたデータをデータベースに戻す際にデータが大きすぎてエラーになる場合は以下をmy.confに追記
|
[root@vics1
~]#
vi /etc/my.conf
[mysqld]の最下行に以下を追記
max_allowed_packet=16M ← デフォルトが1Mなのでエラーが出なくなるまで適当に上げていく
|
|