#author("2024-09-02T06:35:02+00:00","default:iseki","iseki")
** mySQL 操作メモ (一般) [#db4d646a]

*** 他のホストへ接続 [#q7869186]
 mysql> mysql -u netp_user -h 202.26.158.3 -p

*** データベースの作成 [#vc0f8287]
 mysql> create database データベース名;

 mysql> create database データベース名 default character set utf8;

*** データベース一覧 [#mb979940]
 mysql> show databases;

*** テーブルへの全権限を与える [#b720ba8f]
 mysql> grant all on netp_exam.* to netp_user identified by 'netp_pass';

*** テーブル参照権限を与える [#l20b404f]
 mysql> grant references on netp_exam.* to netp_user identified by 'netp_pass';

*** select 権限を与える [#l5fb8d31]
 mysql> grant select on netp_exam.* to netp_user identified by 'netp_pass';

*** テーブル一覧 [#w84df07b]
 mysql> use データベース名;
 mysql> show tables;

*** テーブルの Column 一覧 [#q6ffed87]
 mysql> show columns from テーブル名;

*** テーブルの index 一覧 [#p82a822e]
 mysql> show index from  テーブル名;

*** テーブル削除 [#i0552f80]
 mysql> use データベース名;
 mysql> drop table テーブル名;

*** 項目削除 [#b7f6670b]
 mysql> delete  from テーブル名 where 条件;
 例: mysql> delete  from mdl_log_display where module="quiz";

*** 外部ファイルからのコマンドの読み込み [#f4693fed]
 mysql> source [file name];

*** データベースのバックアップと復元 [#hd26496d]
**** 全体のバックアップ [#aeadd043]
 $ /usr/local/mysql/bin/mysqldump  データベース名  [テーブル名]  --quick --single-transaction -u root -p > db.dump
- -x ではすべてのテーブルをロックする → DB使用中のアプリが停止する
- --single-transaction ではロックを掛けない.ただし InnoDB でしか使用できない.
#br

**** 条件を付けてバックアップ [#gf5fdb44]
 $ mysqldump -u root データベース名 -t テーブル名 -p --where "PrincipalID='....' OR Friend='....'"

**** 復元 [#d641e5ae]
 $ /usr/local/mysql/bin/mysql  データベース名  -u root -p -f < db.dump

**** ERROR 2006 (HY000) at line ###: MySQL server has gone away のエラー [#h66c9fbc]
- max_allowed_packet を指定する.
 [mysqld]
  max_allowed_packet = 64M

*** データベースのチェックとリペア [#u5850f80]
- データベースを止めてから,チェックを行う
 # /etc/init.d/mysql stop
 # myisamchk -r /var/mysql/[DBNAME]/*.MYI
 # /etc/init.d/mysql start
- 動いていてもOK
 # mysqlcheck -r -c データベース名 -u root -p
#br


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS