VICS FACTORY

WORKSTATION     SERVER     NETWORK     WINDOWS     LINUX

 

HOME

 

My Server

まず始めに

Linuxの操作

Fedora13

SSHD

MySQL

MySQLコマンド

Apache+PHP

VSFTPD

NTPD

Postfix

Samba

WebDAV

SSLクライアント認証

設定変更

 

PC Support

スパイウェア対策
(Spybot)

バックアップのススメ
(RealSync)

 

VIC'S FACTORY

vic@vicsfactory.com

 

VIC PRESS

(WordPressでブログ)

MySQLコマンド

MySQLデータベースの操作をするうえで最低限必要な(私にとってですが…)コマンドをまとめてみました。

 

MySQLに接続する

# mysql -u [ユーザ名] -p

# Enter password: [パスワード入力]


MySQLから切断する

mysql > \q

または

mysql > [Ctrl]+[D] ← キーボードショートカット

 

データベースを選択する

mysql > use [データベース名]

 

管理者権限を持ち、どのホストからでも接続出来るユーザー[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 データベース名;

 

データベースの一覧を表示する

mysql > show databases;

 

テーブルを作成する(例: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なのでエラーが出なくなるまで適当に上げていく

 


 

Copyright (C) 2001 VICS FACTORY All rights reserved.