【MySQL】無難で一般的な CREATE USER, CREATE DATABASE あたりを押さえる

スポンサードリンク


以下、例で使用する名前

  • DB 名: sample_db
  • ユーザ名: sample_user
  • パスワード: sample_user_pass

“【MySQL】無難で一般的な CREATE USER, CREATE DATABASE あたりを押さえる” の続きを読む

ローカル開発環境の古い MySQL、バージョン 5.5 を Docker で再現できるかやってみましたらできました♪

はじめに

  • 開発のために MySQL 5.5 を手元の Windows にインストールしなければならない。
  • はっきりいって嫌だ。
    • Windows 起動時に自動的に MySQL も起動してしまったり。
    • Windows のポートも使用されてしまったり。
  • Docker で再現できるのでは?
    • Nginx を Docker で使ったとき、http://localhost でウェブページにアクセスできた。
    • Nginx を Docker で使ったとき、docker run 時、-p 8080:80 などとすれば、http://localhost:8080 でアクセスできた。
    • つまり、ホスト (Docker をインストールしたマシン) からコンテナに対して、localhost と指定したポート番号でアクセスできるということ。
  • A5:SQL Mk-2 – フリーの汎用SQL開発ツール/ER図ツール .. 松原正和 からアクセスできるか、やってみる。

“ローカル開発環境の古い MySQL、バージョン 5.5 を Docker で再現できるかやってみましたらできました♪” の続きを読む

【Docker】volumes で永続化した場合、コンテナが消えようがイメージが消えようが、永続化したファイルは残る

永続化関連のまとめと遭遇したトラブル

  • コンテナを削除 (docker rm や docker-compose down など) しても、volumes のホスト側のファイルは残る。
  • MySQL の /docker-entrypoint-initdb.d/ に置いた SQL ファイルは、コンテナを作成 (1回目) してコンテナを削除して、コンテナを作成 (2回目) した場合、1 回目しか実行されない。
    • 1 回目で永続化されたファイルが出来上がり、これは削除されない。すると 2 回目では永続化された DB ファイルがあるため、実行されないのであろう。
    • したがって、開発中などの場合、永続化の設定をした状態で 2 回目のコンテナを作成する前に /docker-entrypoint-initdb.d/ の SQL を編集してもその内容はコンテナに反映されない。
    • 永続化したファイルを消せば、コンテナに反映される。

“【Docker】volumes で永続化した場合、コンテナが消えようがイメージが消えようが、永続化したファイルは残る” の続きを読む

【WordPress】BackWPup から別のサーバへ復元、リストアした記録

はじめに。

  • ドメインはそのままで、サーバを引っ越す。1つのVPSに Nginx も PHP も MariaDB も全部入っている。データベースが MySQL から MariaDB へ変更する以外、引越し元と引越し先でサーバ内容は全く同じ。
  • WordPress のファイル、DB はプラグイン BackWPup で作成したものを使用して復元する。
  • 引越し先のサーバは構築済みで、後は現在の引越し元の WordPress ファイルと DB を引越し先サーバへ持っていくだけ。
    • 構築時にサンプルの WordPress を作成している。
    • 構築時に引っ越し元と同じ内容で DB を作成している。

今回、上記のことを行った記録を取りたいと思います。

“【WordPress】BackWPup から別のサーバへ復元、リストアした記録” の続きを読む

【phpmig】【MySQL】マイグレーション時に文字化けする時の修正方法

ポイント

  • PDO をインスタンス化する際に、文字コードを指定する。
  • PHP バージョンによって指定方法が異なることに注意

環境

  • PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53)
  • mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

“【phpmig】【MySQL】マイグレーション時に文字化けする時の修正方法” の続きを読む

【PHP】phpmig で MySQL のマイグレーションをするまでの導入手順

ポイント

  • Pimple もインストールすること。さもないと、phpmig migrate 時に Fatal error: Class ‘Pimpli¥Container’ not found in … とエラーになった。
  • Pimple インストール方法については、phpmig の README には記載されていないので注意。

“【PHP】phpmig で MySQL のマイグレーションをするまでの導入手順” の続きを読む

【MySQL】全クエリをログ出力し、ログローテート設定を行う

環境

  • mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

設定を行うコマンド

  • /etc/my.cnf の [mysqld] に記述することで全クエリをログ出力する。
  • general_log でオンにし、general_log_file でログファイルパスを指定する。
  • ログローテートは、もともとある /etc/logrotate.d/mysqld をほぼそのまま使用した。

“【MySQL】全クエリをログ出力し、ログローテート設定を行う” の続きを読む

【MySQL】指定年月の初日から最終日までのリストを取得する SQL、その2

SQL

# @target に yyyymm を指定することで、その月の月初から月末までの日にちリストを返す。
SET @target = STR_TO_DATE('201601', '%Y%m');
SET @firdt_day = DATE_FORMAT(@target, '%Y-%m-01');
SET @last_day = DATE_FORMAT(LAST_DAY(@firdt_day),  '%Y-%m-%d');
SELECT DATE_FORMAT(day, '%Y-%m-%d')
FROM
(
    SELECT (@dt := @firdt_day) AS day FROM DUAL UNION ALL
    SELECT @dt := DATE_ADD(@dt, INTERVAL 1 DAY) FROM `information_schema`.COLUMNS WHERE @dt < @last_day
) AS tmp;

“【MySQL】指定年月の初日から最終日までのリストを取得する SQL、その2” の続きを読む

【MySQL】指定年月の初日から最終日までのリストを取得する SQL

SQL で存在するレコードが取得できます。存在しないレコードは穴埋めされません。

そうしますと、とある年月の一日から月末までレコードを取得したいのに、存在しないために歯抜けになってしまった、そんなケースに遭遇しました><。

歯抜けをなくして、存在しないレコードも埋めたいのです。

今回は、指定年月の一日から末日までのリストを返す MySQL をノートいたします。

2016年8月14日18時00分追記。シンプル・日付特化版を投稿いたしました♪

一日から末日までのリストを返す MySQL

SET @target = STR_TO_DATE('201601', '%Y%m');
SET @firdt_day = DATE_FORMAT(@target, '%Y-%m-01');
SELECT DATE_FORMAT(DATE_ADD(@firdt_day, INTERVAL tmp.generate_series DAY), '%Y-%m-%d') AS day
FROM
(
    SELECT 0 generate_series FROM DUAL WHERE (@num:=-1)*0 UNION ALL
    SELECT @num:=@num+1 FROM `information_schema`.COLUMNS
) AS tmp
HAVING DATE_FORMAT(day, '%Y%m') = DATE_FORMAT(@target, '%Y%m');

“【MySQL】指定年月の初日から最終日までのリストを取得する SQL” の続きを読む

ER Master へ Vagrant CentOS 6 の MySQL データベースをインポートして ER 図を作成する手順

環境

  • Windows 7 Professional 64bit
  • MySQL Connector/J
  • Pleiades All in One 4.5.2.v20160312 64bit Full Edition Ultimate
  • ERMaster 1.0.0.v20150619-0219 org.insightech.er.feature.feature.group Insightech.org
  • Vagrant 1.8.1
  • VirtualBox 5.0.20 r106931
  • 仮想マシン内容
    • IPアドレス: 192.168.56.22
    • CentOS release 6.8 (Final) x86_64
    • 開発環境のため、ファイアウォールは全て通過するように設定
    • 開発環境のため、MySQL のユーザ、データベースはどこからでもアクセス可能に設定
    • mysql Ver 14.14 Distrib 5.6.30, for Linux (x86_64) using EditLine wrapper
    • MySQLポート番号: 3306
    • データベース名: sampledb
    • ユーザ名: sampleuser
    • パスワード: samplepass

“ER Master へ Vagrant CentOS 6 の MySQL データベースをインポートして ER 図を作成する手順” の続きを読む