Tag: MySQL/Tips

目次

関連ページ

参考情報

データベース全般

InnoDBのインデックスの最大キー長

  • 第32回 InnoDBインデックスの最大キー長について:MySQL道普請便り|gihyo.jp … 技術評論社
  • 基本的に767バイト、innodb_large_prefixを有効にするなどして拡張すれば最大3072バイトまで拡張できる。
  • ただしutf8では1文字3バイト、utf8mb4では1文字4バイトでとなる。
  • MySQLのテーブル定義は文字数で指定するので、最大3072バイトまで拡張している場合でもutf8の場合「varchar(1024)」、utf8mb4の場合「varchar(768)」が限界となる。
  • 拡大していない場合は「varchar(255)」「varchar(191)」が限界となる。

文字コードを確認する

  • 以下のコマンドを実行する
    show variables like '%char%';

全データベースを削除する

  • Drop All Databases in MySQL | Mohinish's Blogによると以下のコマンドで削除できる
    mysql -uroot -p  -e "show databases" | grep -v Database | grep -v mysql| grep -v information_schema| grep -v test | grep -v OLD |gawk '{print "drop database " $1 ";select sleep(0.1);"}' | mysql -uroot -ppassword
  • もしくは削除するSQLを作成できる
    mysql -uroot -pxxxxx  -e "show databases" | grep -v Database | grep -v mysql | grep -v information_schema| grep -v test | grep -v OLD | gawk '{print "drop database " $1";select sleep(0.1);"}' > droppeddatabases.sql
  • なお"grep -V"はinverse matchの意味。Databaseやmysqlは除外するという意味になる。またmysql -eの出力は表形式だがリダイレクトすると罫線部分は除外される模様。上では除外されていないがperformance_schemaも除外したほうがいいかも? mysql -uroot -pxxxxx -e "show databases" | grep -v Database | grep -v mysql | grep -v information_schema| grep -v test | grep -v OLD | gawk '{print "drop database " $1";select sleep(0.1);"}' > droppeddatabases.sql
  • さらにシンプルに
    mysql -e "show databases" | grep -Ev 'Database|^test$|mysql|_schema' | awk '{print "drop database "$1";"}' > dropdatabase.sql

ibdataを削減する

参考情報

手順

  • 全てのデータベースをダンプする
    mysqldump --single-transaction --default-character-set=binary --quick -uroot -p --all-databases | bzip2 > database.sql
  • mysql、performance_schema、information_schema以外の全てのデータベースをドロップ。
  • mysqlをシャットダウン
  • my.cnfで以下を確認
    [mysqld]
    innodb_file_per_table = 1
  • ibdata1、ib_logfile0、ib_logfile1を削除。
  • mysqlを起動
  • バックアップしたデータベース(SQL)をリストア。mysqlデータベース込みでリストアした場合ユーザーやパスワードも変わるので注意。

疑問

  • ibdata1を削除したときユーザー名やパスワードは維持されるのか(mysqlのデータ)?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-10-26 (土) 23:54:17