MySQL

Table of Contents

MySQL

mysqldiff

install

rpmとかだとamazon linuxだと依存を解消できなかった。

$ tar xzf mysql-utilities-1.6.5.tar.gz
$ cd mysql-utilities-1.6.5
$ sudo python setup.py install

use

$ mysqldiff --server1=user:password@host --server2=user:password@host --force --skip-table-options --changes-for=server1 schema:schema

mysql_config_editor

難読化するだけだけど、shellにそのまま書いてあるよりかはまだまし。

$ mysql_config_editor set --login-path=local --host=localhost --user=root --password

http://gihyo.jp/dev/serial/01/mysql-road-construction-news/0057

SQL

存在確認

SELECT EXISTS(SELECT 1 FROM example_table WHERE ...)

https://teratail.com/questions/1281

データベース管理

# ユーザー作成
create user qa identified by 'L1g0x5DBJU'
# 権限付与
GRANT ALL PRIVILEGES ON `qa`.* TO 'qa'@'*'

# テーブル調査
show columns from access_log;

# ユーザー削除
drop user 'qa'@'localhost'

パスワードを忘れた場合

# MySQL止める
sudo /etc/init.d/mysqld stop

# セーフモードで起動
sudo mysqld_safe --skip-grant-tables &
mysql -uroot

# 再設定
use mysql
update user set password=PASSWORD("password") where User='root';

# 起動
sudo /etc/init.d/mysqld stop
sudo /etc/init.d/mysqld start

float 6桁の小数部をそのまま保存する

idbからのリストア

  1. MySQLを構築
  2. ログイン
  3. 復旧したいデータベース・テーブルのDDLを流す。
  4. テーブルへの変更をLOCK
  5. テーブルスペースを削除(ibdファイルを削除)
  6. 復旧したいibdファイルで上書きする
  7. テーブルスペースをインポート
  8. Lockを解除

https://dev.mysql.com/doc/mysql-enterprise-backup/3.11/ja/partial.restoring.single.html

Validate