[AWS] RDS/MySQLでバイナリログ形式を変更するには

以下、AWSドキュメントより抜粋:

MySQL バイナリログ形式を設定するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。
  2. [Navigation] ペインで、[Parameter Groups] を選択します。
  3. default.mysql5.6、default.mysql5.7、または default.mysql8.0 DB パラメータグループの場合は、[Go to Details Page (詳細ページに移動)] アイコンを選択します。
  4. [Edit Parameters] を選択して、DB パラメータグループのパラメータを変更します。
  5. binlog_format パラメーターを、選択したバイナリログ形式 ([MIXED] または [ROW]) に設定します。
  6. [Save Changes] を選択して、更新を DB パラメータグループに保存します。

参考サイト

MySQL データベースログファイル – Amazon Relational Database Service
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html

[MySQL] バイナリログ形式を変更するには

以下、リファレンスマニュアルより抜粋:

– MySQL 5.6 では、デフォルトのバイナリロギング形式は STATEMENT です。

– ロギング形式は実行時でも変更できます。すべてのクライアントについてグローバルに形式を指定するには、binlog_format システム変数のグローバル値を設定します。

– 個別クライアントは binlog_format のセッション値を設定することによって、クライアント自身のステートメントについてのロギング形式を制御することができます。

– グローバル値またはセッション値 binlog_format を変更するには、SUPER 権限が必要です。

参考サイト

MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.2.4.2 バイナリログ形式の設定
https://dev.mysql.com/doc/refman/5.6/ja/binary-log-setting.html

[PHP] メモリ制限を変更する

EC-CUBE4のセットアップでメモリ不足エラーが発生。

デフォルトは128MBなので、設定ファイルを編集して制限を変更する。

参考サイト

PHPのメモリの上限を変更する – Qiita
https://qiita.com/dayone80/items/a3f5491c7e5b1ed4ed9e

[AWS] RDS/MySQLではユーザにSUPER権限が付与できない

いろいろ試した結果、とりあえずそういう結論に落ち着いたので覚書。

SUPER権限について

MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.2.1 MySQL で提供される権限
https://dev.mysql.com/doc/refman/5.6/ja/privileges-provided.html

SUPER 権限によって、アカウントはほかのアカウントに属するスレッドを強制終了するための CHANGE MASTER TO、KILL、または mysqladmin kill (自分のスレッドは常に強制終了できます)、PURGE BINARY LOGS、グローバルシステム変数を変更するための SET GLOBAL を使用した構成変更、mysqladmin debug コマンド、ロギングの有効化または無効化、read_only システム変数が有効な場合の更新の実行、スレーブサーバー上でのレプリケーションの開始と停止、ストアドプログラムおよびビューの DEFINER 属性内のすべてのアカウントの指定を使用することができ、ユーザーは max_connections システム変数によって制御される接続制限に達している場合でも (一度) 接続することができます。
バイナリロギングを有効にした場合にストアドファンクションを作成または変更するとき、セクション20.7「ストアドプログラムのバイナリロギング」に記載されているように SUPER 権限がやはり必要になることがあります。

RDSの挙動

以下の設定でRDSのインスタンスを作成した。

インスタンス作成直後のマスターユーザの権限は以下の通り。

その後、マスターユーザへSUPER権限の付与を試みるが失敗する。RDSではワイルドカードを%と表記しろというアドバイス記事をネットで見つけたので試してみるも通らず。

新規ユーザを作成してSUPER権限の付与を試みるが、権限を付与する側にSUPER権限が付与されていないので当然失敗する。

AWSのドキュメントを漁ると、SUPER権限を付与する方法ではなく、バイナリログ記録が有効なときに、SUPER 権限なしで関数、プロシージャ、トリガーを有効にする方法については言及されている。

Amazon RDS MySQL の関数
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-functions/?nc1=h_ls

ネットで先人の知恵を煽ると以下の記事がヒット。

[RDS (MySQL)] Super権限操作で出たエラー | ハックノート
https://hacknote.jp/archives/28810/

RDSではSuper権限が付与されたユーザはAWS側が管理用に確保しているrdsadminというユーザのみになっており、自身で作成したユーザにはSuper権限が付与されていません(付与することもできません)。

AWS再入門 Amazon RDS編 | DevelopersIO
https://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-rds/

Amazon RDSでは、DBに対して管理者権限ではログインできません。そのため管理者権限を使用した操作が必須である場合は、その操作を回避するかRDSの採用をやめる必要があります。
ただし、本来は管理者権限でしか実行できない操作をストアドプロシージャやAWSCLIで使用できる場合があります。MySQLの場合、CHANGE MASTER、KILL等がSUPER権限でしか実行できません。しかし、CHANGE MASTERであればmysql.rds_set_external_masterプロシージャ、KILLであればmysql.rds_killプロシージャやmysql.rds_kill_queryプロシージャで同等の操作が可能です。
管理者権限が必要な場合は、代替コマンドが用意されているか確認しましょう。

SUPER権限は付与できないっぽい。

[MySQL] Percona Toolkit – 運用監視分析ツール

Percona Toolkit (ペルコナツールキット) | MySQLチューニング/保守サポート/コンサルティングのスマートスタイル
https://www.s-style.co.jp/products/percona/toolkit

Percona ToolkitはMySQLの運用、監視、分析などの複雑な作業を簡単に実施することができるコマンド群を集めたツールです。
Percona Toolkitを使うことで以下の作業を行うことができます。
1. MySQLを停止することなく、マスターとスレーブのデータの整合性を確認する
2. 2つのMySQL間のデータを同期する
3. 問題となっているSQLを検出する
4. スレーブを意図的に遅延させる
5. バージョン間の互換性を確認する
Percona Toolkitは外部の管理用サーバー、データベースサーバーのどちらにでも配置できます。

MySQL Tools and Management Software to Perform System Tasks by Percona
https://www.percona.com/software/database-tools/percona-toolkit

Percona Toolkit Documentation
https://www.percona.com/doc/percona-toolkit/LATEST/index.html

Percona – Wikipedia
https://en.wikipedia.org/wiki/Percona

[MySQL] グローバル権限とデータベースレベルの権限

権限には、グローバルな権限とデータベースレベルの権限がある。

例えば SUPER はグローバルな権限である。なので

といったようにデータベース指定で設定しようとすると、以下のように怒られる。

グローバル権限を付与する場合は、以下のようにデータベースをワイルドカード指定するのが正解らしい。

グローバル権限 – mysql.userテーブルで管理

データベースレベルの権限 – mysql.dbテーブルで管理

参考サイト

mysql – How to grant super privilege to the user? – Database Administrators Stack Exchange
https://dba.stackexchange.com/questions/63404/how-to-grant-super-privilege-to-the-user

[MySQL] ユーザ一覧を見る

mysql.userを見る。付与されてる権限とかも確認できる。

[C#] LINQ入門

以下の記事がとても分かりやすかった。

はじめての LINQ – Qiita
https://qiita.com/nskydiving/items/c9c47c1e48ea365f8995

続・はじめての LINQ – Qiita
https://qiita.com/nskydiving/items/b9603239fc20696bf7a5

本家MSの「C#のガイド」より。

C# の統合言語クエリ (LINQ) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/index

こちらも参考になる。

第6回 LINQ基礎編(1/3) – @IT
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_06/csharp30_06_01.html

[WordPress] WordPressの更新に失敗する場合の対処

新しく立ち上げたWordPressサイトで、プラグインやテーマの更新は成功するのだけど、WordPress自体の更新に失敗する問題に直面。

対処法

原因はSELinuxによるアクセス制限だった。WordPressを更新するために、一時的にSELinuxをPermissiveにし、更新が終わったらEnforceに戻してやれば良い。

ステータスを見る

Permissiveにする。

Enforceにする。

ちなみに、永続的なSELinuxの設定は以下ファイルで設定する。

  • /etc/selinux/config

参考サイト

WordPressの更新失敗への対処法(いくつかのファイルをコピーできないため、最新版のインストールができません。) │ Web備忘録
https://webbibouroku.com/Blog/Article/wordpress-update-error

【ざっくりと理解する】SELinuxとは?
https://eng-entrance.com/linux-selinux

[CSS] 上下左右の値指定のバリエーション

こういうヤツ。

なかなか覚えられないので覚書。

  • 1つ: [上下左右]
  • 2つ: [上下][左右]
  • 3つ: [上][左右][下]
  • 4つ: [上][右][下][左]

参考サイト

margin-スタイルシートリファレンス
http://www.htmq.com/style/margin.shtml