1: 2009-04-20 (月) 23:26:02 iseki |
現: 2016-08-03 (水) 01:23:10 iseki |
- | *** mySQL 操作メモ(一般) [#db4d646a] | + | ** mySQL 操作メモ (一般) [#db4d646a] |
- | **** 他のホストへ接続 [#q7869186] | + | |
- | mysql -u netp_user -h 202.26.158.3 -p | + | |
| | | |
- | **** テーブル参照権限を与える [#l20b404f] | + | *** 他のホストへ接続 [#q7869186] |
- | grant references on netp_exam.* to netp_user identified by 'netp_pass'; | + | mysql> mysql -u netp_user -h 202.26.158.3 -p |
| | | |
- | **** select 権限を与える [#l5fb8d31] | + | *** データベースの作成 [#vc0f8287] |
- | grant select on netp_exam.* to netp_user identified by 'netp_pass'; | + | mysql> create database データベース名; |
| | | |
- | - データベース一覧 | + | mysql> create database データベース名 default character set utf8; |
- | show databases; | + | |
| | | |
- | - テーブル一覧 | + | *** データベース一覧 [#mb979940] |
- | use データベース名; | + | mysql> show databases; |
- | show tables; | + | |
| | | |
- | - テーブル削除 | + | *** テーブルへの全権限を与える [#b720ba8f] |
- | use データベース名; | + | mysql> grant all on netp_exam.* to netp_user identified by 'netp_pass'; |
- | drop table テーブル名; | + | |
| | | |
- | - 項目削除 | + | *** テーブル参照権限を与える [#l20b404f] |
- | delete from テーブル名 where 条件; | + | mysql> grant references on netp_exam.* to netp_user identified by 'netp_pass'; |
- | 例: delete from mdl_log_display where module="quiz"; | + | |
| | | |
- | ** データベースのチェックとリペア [#u5850f80] | + | *** select 権限を与える [#l5fb8d31] |
- | - データベースを止めてから,チェックを行う | + | mysql> grant select on netp_exam.* to netp_user identified by 'netp_pass'; |
- | # /etc/init.d/mysql stop | + | |
- | # /usr/local/mysql/bin/myisamchk /var/mysql/[DBNAME]/*.MYI | + | |
- | # /etc/init.d/mysql start | + | |
| | | |
- | ** データベースの移行 MySQL4 -> MySQL5 [#xe55be4b] | + | *** テーブル一覧 [#w84df07b] |
- | + MySQL5 を MySQL4と被らないようにインストールする. | + | mysql> use データベース名; |
- | + MySQL5 のデータベースを作成する(初期化する). | + | mysql> show tables; |
- | # /usr/local/mysql5/bin/mysql_install_db --user=mysql --ldata=/var/mysql5 | + | |
- | # cp support-files/my-medium.cnf /var/mysql5/my.cnf | + | |
- | # chown mysql /var/mysql5/my.cnf | + | |
- | # /etc/init.d/mysql5 を作る | + | |
- | + MySQL4 の移行するデータベース(xoops)をダンプする. | + | |
- | # /usr/local/mysql/bin/mysqldump -x xoops -u root -p > xoops.dump | + | |
- | + MySQL4 を止めて,MySQL5 を起動する. | + | |
- | # /etc/init.d/mysql stop | + | |
- | # /etc/init.d/mysql5 start | + | |
- | # /usr/local/mysql5/bin/mysqladmin -u root password パスワード | + | |
- | + MySQL5 で受け入れ側となる個別のデータベースを作成し,権限を旧データベースと同様に設定する. | + | |
- | mysql> create database xoops; | + | |
- | mysql> grant all on xoops.* to xoops_user identified by 'xoops_pass'; | + | |
- | + データをリストアする. | + | |
- | mysql> source xoops.dump xoops.dump は mysqlが読める必要がある. | + | |
- | + または | + | |
- | # /usr/local/mysql5/bin/mysql xoops -u root -p < xoops.dump | + | |
| | | |
- | *** データベースの移行 [#hb5ad3ec] | + | *** テーブルの Column 一覧 [#q6ffed87] |
- | - 移行元のデータベースの CHARSETが latin1 で EUCで保存 | + | mysql> show columns from テーブル名; |
- | - 移行先は utf8 | + | |
- | % mysqldump source_db source_table --default-character-set=latin1 -x -u root -p > table_data | + | |
- | % nkf -w table_data > table_data.utf8 | + | |
- | table_data.utf8内のテーブル名,CHARSETを新しいデータベースに合わせる. | + | |
- | % mysql dist_db -u root -p < table_data.utf8 | + | |
| | | |
- | ** UTF-8 で使用する場合 [#sc952334] | + | *** テーブルの index 一覧 [#p82a822e] |
- | mysql> show variables like "char%"; | + | mysql> show index from テーブル名; |
- | +--------------------------+-----------------------------------------------+ | + | |
- | | Variable_name | Value | | + | *** テーブル削除 [#i0552f80] |
- | +--------------------------+-----------------------------------------------+ | + | mysql> use データベース名; |
- | | character_set_client | latin1 | | + | mysql> drop table テーブル名; |
- | | character_set_connection | latin1 | | + | |
- | | character_set_database | latin1 | | + | *** 項目削除 [#b7f6670b] |
- | | character_set_filesystem | binary | | + | mysql> delete from テーブル名 where 条件; |
- | | character_set_results | latin1 | | + | 例: mysql> delete from mdl_log_display where module="quiz"; |
- | | character_set_server | latin1 | | + | |
- | | character_set_system | utf8 | | + | *** 外部ファイルからのコマンドの読み込み [#f4693fed] |
- | | character_sets_dir | /usr/local/mysql-5.0.67/share/mysql/charsets/ | | + | mysql> source [file name]; |
- | +--------------------------+-----------------------------------------------+ | + | |
- | この場合は latin1 を utf8にする | + | *** データベースのバックアップと復元 [#hd26496d] |
- | mysql> set character_set_client=utf8; | + | **** 全体のバックアップ [#aeadd043] |
- | mysql> set character_set_connection=utf8; | + | $ /usr/local/mysql/bin/mysqldump データベース名 [テーブル名] --quick --single-transaction -u root -p > db.dump |
- | mysql> set character_set_database=utf8; | + | - -x ではすべてのテーブルをロックする → DB使用中のアプリが停止する |
- | mysql> set character_set_results=utf8; | + | - --single-transaction ではロックを掛けない.ただし InnoDB でしか使用できない. |
- | mysql> set character_set_server=utf8; | + | #br |
- | mysql> show variables like "char%"; | + | |
- | +--------------------------+-----------------------------------------------+ | + | **** 条件を付けてバックアップ [#gf5fdb44] |
- | | Variable_name | Value | | + | $ mysqldump -u root データベース名 -t テーブル名 -p --where "PrincipalID='....' OR Friend='....'" |
- | +--------------------------+-----------------------------------------------+ | + | |
- | | character_set_client | utf8 | | + | **** 復元 [#d641e5ae] |
- | | character_set_connection | utf8 | | + | $ /usr/local/mysql/bin/mysql データベース名 -u root -p -f < db.dump |
- | | character_set_database | utf8 | | + | |
- | | character_set_filesystem | binary | | + | **** ERROR 2006 (HY000) at line ###: MySQL server has gone away のエラー [#h66c9fbc] |
- | | character_set_results | utf8 | | + | - max_allowed_packet を指定する. |
- | | character_set_server | utf8 | | + | [mysqld] |
- | | character_set_system | utf8 | | + | max_allowed_packet = 64M |
- | | character_sets_dir | /usr/local/mysql-5.0.67/share/mysql/charsets/ | | + | |
- | +--------------------------+-----------------------------------------------+ | + | *** データベースのチェックとリペア [#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 |