MySQL/管理
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(MySQL/管理);
*目次 [#c2811613]
#contents
*参考情報 [#seea8701]
-[[MySQL]]
*ユーザー操作 [#rf61dc5d]
**rootパスワードの設定 [#ee7826fb]
-rootのパスワードが設定されていない場合必ず設定しておく。
***mysqladminコマンドで設定 [#k6ed0609]
mysqladminコマンドを使って設定する方法。
mysqladmin -u root password <new_password>
***mysqlコマンドで設定 [#v582321e]
mysqlテーブルを操作してパスワードを設定する方法。
#pre{{
$ mysql -u root -p;
mysql> use mysql;
mysql> set password for root@localhost=password('任意のpa...
}}
**ユーザー登録 [#faf9e91b]
-データベースの作成も可能なユーザーを登録するには、以下の...
-ON *.*のところの最初がDB名で、二つ目がテーブル名。
#pre{{
$ mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@localhost ...
mysql> GRANT ALL PRIVILEGES ON testdb.* TO ユーザ名@local...
}}
-ホスト名のところはワイルドカード'%'が指定できる。
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@'%' IDENT...
-ホスト名の部分を省略しても同じ事になるらしい。
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名 IDENTIFIE...
-確認はrootでuserテーブルを見れば良い。
#pre{{
$ mysql -uroot -p
mysql> use mysql;
mysql> select * from user;
}}
***localhostから接続しようとしてもAccess Denied [#d02e1397]
-Unix系のマシンでローカルホストから接続するときにホスト名...
#pre{{
Access denied の原因がわからない場合は、user テーブルから...
}}
-'%'とlocalhost二つを指定してgrantすればとりあえず良いっ...
*データベース操作 [#y1bae0cc]
**データベースの生成文を表示する [#l161761a]
-show create database <データベース名> を使う。DEFAULT CH...
show create database testdb
*テーブル操作 [#c88880b1]
** テーブルの生成文を表示する [#x7a007c3]
-データベースに接続してコマンド実行
show create table xxxxx;
-mysqldumpを使って一気に表示。テーブル名を省略すればデー...
mysqldump -d <データベース名> (<テーブル名>)
** カラムを追加する [#bf6a9791]
-ALTER TABLEでOK。
ALTER TABLE item ADD COLUMN price char(100);
***NOT NULLの列を追加したらどうなるか [#v6afa6ab]
-0とか空文字とかで勝手に初期化される。
-[[データが存在するテーブルに not null 制約の付いたカラム...
** カラムの順番を変更する [#e90893b3]
-[[MySQLのカラム順番変更 | 江島@システム開発:http://tech...
ALTER TABLE テーブル名 MODIFY カラム名 データ型 after ...
**カラムのタイプを変更する [#b9ceefbd]
- ALTER TABLE 〜 CHANGE COLUMN構文で変更できる。このとき...
ALTER TABLE book CHANGE COLUMN title title varchar(400);
**主キーを複合キーに変更(主キーに列を追加) [#r95ac40f]
-[[mysql - ALTER TABLE to add a composite primary key - S...
-最初に既存の主キーをDROPしてから再作成する。
ALTER TABLE provider DROP PRIMARY KEY, ADD PRIMARY KEY(p...
*Tips [#xb2f6a35]
**データフォルダの場所を確認する [#j1011bb5]
-[[database - How to find the mysql data directory from c...
-以下のコマンドで可能となる。
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name L...
**アクセスするホストを制限したい [#yd88e7a5]
-my.cnfなどでは指定できないのでgrantでアクセスできるホス...
**ssh経由の操作 [#edb68c2b]
***基本 [#ba9681b3]
-[[MySQLでエクスポートとインポートを効率よく行う ついで...
-[[mysqldump の結果をそのまま圧縮したり転送したりするコマ...
mysqldump -udb_user db_name -pdb_pass | gzip | ssh examp...
***"-e"コマンドでSQLを実行する場合の注意点 [#d2104aa8]
-"*"などがシェルに解釈されないように注意
-シェルから実行する場合
ssh dbserver "mysql demodb_production -e 'select * from ...
-Rubyから呼び出す場合*をエスケープする必要がある(?)。
"ssh dbserver \"mysql demodb_production -e 'select \* fr...
**バイナリログの削除 [#o0330281]
-使用している内にmysql-bin.000999というようなファイルが大...
-バイナリファイルと呼ばれ、デフォルトでは自動的に削除され...
-手動で全削除する場合、以下のコマンドを実行する。
#pre{{
mysql> RESET MASTER;
mysql> show binary logs;
}}
*チューニング [#x1e4082e]
**遅いクエリを特定したい [#u19c25f3]
-slow log query機能を使用する。
-my.cnfに以下を追加。mysqldを再起動する。/var/logに出力す...
#pre{{
[mysqld]
slow_query_log=1
slow_query_log_file=/var/log/slow_query.log
long_query_time=1
}}
-mysqldumpslowで解析。[[Mysql slow queryの設定と解析方法 ...
mysqldumpslow -s t /var/log/mysql/mysql-slow.sql
終了行:
&tag(MySQL/管理);
*目次 [#c2811613]
#contents
*参考情報 [#seea8701]
-[[MySQL]]
*ユーザー操作 [#rf61dc5d]
**rootパスワードの設定 [#ee7826fb]
-rootのパスワードが設定されていない場合必ず設定しておく。
***mysqladminコマンドで設定 [#k6ed0609]
mysqladminコマンドを使って設定する方法。
mysqladmin -u root password <new_password>
***mysqlコマンドで設定 [#v582321e]
mysqlテーブルを操作してパスワードを設定する方法。
#pre{{
$ mysql -u root -p;
mysql> use mysql;
mysql> set password for root@localhost=password('任意のpa...
}}
**ユーザー登録 [#faf9e91b]
-データベースの作成も可能なユーザーを登録するには、以下の...
-ON *.*のところの最初がDB名で、二つ目がテーブル名。
#pre{{
$ mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@localhost ...
mysql> GRANT ALL PRIVILEGES ON testdb.* TO ユーザ名@local...
}}
-ホスト名のところはワイルドカード'%'が指定できる。
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@'%' IDENT...
-ホスト名の部分を省略しても同じ事になるらしい。
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名 IDENTIFIE...
-確認はrootでuserテーブルを見れば良い。
#pre{{
$ mysql -uroot -p
mysql> use mysql;
mysql> select * from user;
}}
***localhostから接続しようとしてもAccess Denied [#d02e1397]
-Unix系のマシンでローカルホストから接続するときにホスト名...
#pre{{
Access denied の原因がわからない場合は、user テーブルから...
}}
-'%'とlocalhost二つを指定してgrantすればとりあえず良いっ...
*データベース操作 [#y1bae0cc]
**データベースの生成文を表示する [#l161761a]
-show create database <データベース名> を使う。DEFAULT CH...
show create database testdb
*テーブル操作 [#c88880b1]
** テーブルの生成文を表示する [#x7a007c3]
-データベースに接続してコマンド実行
show create table xxxxx;
-mysqldumpを使って一気に表示。テーブル名を省略すればデー...
mysqldump -d <データベース名> (<テーブル名>)
** カラムを追加する [#bf6a9791]
-ALTER TABLEでOK。
ALTER TABLE item ADD COLUMN price char(100);
***NOT NULLの列を追加したらどうなるか [#v6afa6ab]
-0とか空文字とかで勝手に初期化される。
-[[データが存在するテーブルに not null 制約の付いたカラム...
** カラムの順番を変更する [#e90893b3]
-[[MySQLのカラム順番変更 | 江島@システム開発:http://tech...
ALTER TABLE テーブル名 MODIFY カラム名 データ型 after ...
**カラムのタイプを変更する [#b9ceefbd]
- ALTER TABLE 〜 CHANGE COLUMN構文で変更できる。このとき...
ALTER TABLE book CHANGE COLUMN title title varchar(400);
**主キーを複合キーに変更(主キーに列を追加) [#r95ac40f]
-[[mysql - ALTER TABLE to add a composite primary key - S...
-最初に既存の主キーをDROPしてから再作成する。
ALTER TABLE provider DROP PRIMARY KEY, ADD PRIMARY KEY(p...
*Tips [#xb2f6a35]
**データフォルダの場所を確認する [#j1011bb5]
-[[database - How to find the mysql data directory from c...
-以下のコマンドで可能となる。
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name L...
**アクセスするホストを制限したい [#yd88e7a5]
-my.cnfなどでは指定できないのでgrantでアクセスできるホス...
**ssh経由の操作 [#edb68c2b]
***基本 [#ba9681b3]
-[[MySQLでエクスポートとインポートを効率よく行う ついで...
-[[mysqldump の結果をそのまま圧縮したり転送したりするコマ...
mysqldump -udb_user db_name -pdb_pass | gzip | ssh examp...
***"-e"コマンドでSQLを実行する場合の注意点 [#d2104aa8]
-"*"などがシェルに解釈されないように注意
-シェルから実行する場合
ssh dbserver "mysql demodb_production -e 'select * from ...
-Rubyから呼び出す場合*をエスケープする必要がある(?)。
"ssh dbserver \"mysql demodb_production -e 'select \* fr...
**バイナリログの削除 [#o0330281]
-使用している内にmysql-bin.000999というようなファイルが大...
-バイナリファイルと呼ばれ、デフォルトでは自動的に削除され...
-手動で全削除する場合、以下のコマンドを実行する。
#pre{{
mysql> RESET MASTER;
mysql> show binary logs;
}}
*チューニング [#x1e4082e]
**遅いクエリを特定したい [#u19c25f3]
-slow log query機能を使用する。
-my.cnfに以下を追加。mysqldを再起動する。/var/logに出力す...
#pre{{
[mysqld]
slow_query_log=1
slow_query_log_file=/var/log/slow_query.log
long_query_time=1
}}
-mysqldumpslowで解析。[[Mysql slow queryの設定と解析方法 ...
mysqldumpslow -s t /var/log/mysql/mysql-slow.sql
ページ名: