#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