PDOでMySQLの操作をしてみる

PHP7での話し。
PHP7ではMDB2が動かなかったので、PDOでDB操作をしてみたの。

かなり簡単だけどサンプルコードを作ってみましたのよ。

AWSのRDSでMySQLのdumpをする方法

AWSのRDSでMySQLのdumpをする方法。
スナップショットではなくて実データが欲しいときありますよね。
サーバー移転時とか。

スナップショットはRDSの管理画面から行えますが、dumpをする場合は下記のように行えます。

EC2にSSHでログインして下記を実行

そうするとEC2側にdumpファイルが作成されるので、それをFTPでダウンロードする。

これでOK

MySQLのsql_modeについて

またまた移転時のネタ

移転後の動作チェックでINSERT文で下記のエラーが発生

Incorrect integer value: ” ~~~
こんなSQLがNGです。
INSERT INTO table (id, value) VALUES(”, ‘OK’);

auto_incrementのカラムに”を指定している部分でのエラーのようです。
色々調べてみるとsql_modeの設定が影響しているようです。

my.cnfかSQLで設定調整ができるようです。

my.cnfはroot権限、SQLでもMySQLのroot権限が必要です。

MySQLにroot権限でログインします。

設定状況を確認します。

設定をします。

これでINSERTでエラーがでなくなりました。

MySQLのリストア

MySQLのデータをリストア

※-pとパスワード名は間をあけない。

gzで圧縮している場合はパイプさせる。

パスワードの警告がでますけど、処理は続行されます。

phpMyAdminでユーザーの新規追加で困った

phpMyAdminでユーザーの新規追加をしようとしてエラー

phpMyAdmin:4.7.6
MySQL:5.7

困った困った。

#1819 – Your password does not satisfy the current policy requirements

「パスワードが現在のポリシー要件を満たしていない」ということです。
英数字、大文字、小文字、記号を含めたパスワードにすると解決です。

phpMyAdminの「パスワードを生成する」のボタンでは上記ポリシーをクリアできてないので注意ですね。

SQLで直接実行するとユーザーの追加ができるので、今回はそちらで対応

ユーザー追加後にDBを追加したり、ユーザーの編集で接続するDBを指定したりしましょう。

rootのパスワードを忘れた場合

rootのパスワードを忘れた!

MySQLを終了

MySQLを設定テーブルをスキップさせて起動

ログイン(パスワードなしでログインできる)

パスワードを再設定

MySQLを終了

通常起動

MySQLのバックアップ(mysqldump)を使ってみる

MySQLのバックアップ(mysqldump)を使ってみる

データ量が多いDBだとphpMyAdminからはデータエクスポートに時間がかかるorタイムアウトになる。
そういうときはコマンドからdumpしちゃいましょうって話

コマンドもMySQLのバージョンで警告がでるみたい。

昔は下記のコマンドで行けてた

そうすると下記の警告が発生。
(バージョン5.6から出るようになりました)

Warning: Using a password on the command line interface can be insecure.

警告なので無視することもできるのだけど。
気分的に良くないのでちゃんと手直ししてみましょう。

警告文はパスワードをコマンド上に表示させるのはセキュリティ上よくないぜよ と言っております。

コマンドに出さないようにするためにはパスワードを保存しておくファイルを作成して
それを読み込んであげることで回避できます。

まずはパスワードを保存しておくファイルを作成します。
ファイル名:mysql.cnf

中身↓

そしてコマンドは下記!
※–default-fileは一番最初に指定します。

ちなみにmysql.cnfにdatabase=hoge とデータベース名を入れると下記の警告がでます。

Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
Warning: mysqldump: ignoring option ‘–databases’ due to invalid value ‘hoge’

設定ファイルにdatabaseは指定しないほうが良いですね。