コピペコードで快適生活

明日使えるソースを自分のために

MySQL

MySQLのバッファプール使用状況を確認する

ダーティページの使用状況を確認したかったので。 mysql> SHOW GLOBAL STATUS LIKE 'InnoDB\_buffer\_pool%'; +-----------------------------------+---------------+ | Variable_name | Value | +-----------------------------------+---------------+ | …

MySQLでバイナリログを削除する

バイナリログファイルの確認 メインDBで確認する mysql> show master logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000091 | 141 | # 略 | mysql-bin.000107 | 98 | +------------------…

MySQLの文字セットと照合順序

MySQLでは、データベース、テーブル、カラムのそれぞれに対して文字セットと照合順序を設定できる。 文字セット 用語 文字セットとは、文字と符号の対応付けたセット。 文字コードとは、文字セットの符号をビット列に変換する方式。 例: Unicodeは文字セット…

MySQLのストレージエンジンを確認する

-- 使用できるエンジンを確認する -- デフォルトのエンジンを確認する show engines; -- テーブル設定を一覧表示する show table status; -- テーブルの設定を確認する SHOW CREATE TABLE #{table_name}\G

ポートフォワードして繋ぐMySQLユーザのHostはなに?

結論 踏み台サーバの内部IPアドレス 実験 前提 踏み台の内部IPアドレス: 192.168.10.10 MySQLサーバの内部IPアドレス: 192.168.10.20 ポートフォワードする ssh kinosuke01@fumidai -L 3306:192.168.10.20:3306 -N Hostが127.0.0.1のユーザを作る mysql> sel…

homebrewで複数バージョンのMySQLをインストールして切り替えする

# インストール可能パッケージの確認 brew search mysql # 最新版のインストール brew install mysql # 過去バージョンのインストール brew install mysql@5.7 # unlinkとlinkでバージョン切り替えする % brew unlink mysql && brew link --force mysql@5.7 …

MySQLのレプリケーションユーザ名を修正する

MySQLのレプリケーションユーザ名を間違っていたので、mainの稼働を止めずに修正する。 やること概要 レプリケーション停止して、設定をリセットする mainでユーザ名を変える mainからバックアップを取得する replicaにリストアする レプリケーションの接続…

MySQLリストアした後にログインできない

症状 リストアしたDBに、一部のユーザでMySQLにログインできない 原因 mysql.userテーブルを直接更新した場合、権限設定が自動で再ロードされないため。 対応方法 mysqldをrestartするか、 mysql> FLUSH PRIVILEGES; すればOK。 経緯 移行元 # 移行元からダ…

MySQLのnative_passwordとold_password

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) - コピペコードで快適生活 の続き パスワードの設定 # ユーザ作成時に設定する CREATE USER 'jeffrey'@'localhost' IDENTIFI…

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

$ mysql -u app_user -h 192.168.0.1 -p Enter password: ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) とでた。 mysql_native_passwordで認証しようとしたけど、mysql_ol…

SSL通信が成立するまで

SSL通信に関して理解が微妙だったのに雑にメモ。 SSL通信が成立するまで 秘密鍵は複合鍵 公開鍵は暗号鍵 クライアントは共通鍵を作る。 サーバの公開鍵で暗号化して共通鍵を受け渡す。 その後の通信を共通鍵で暗号化して行う。 link https://ssl.sakura.ad.j…

MySQL予習メモ (2020年12月版)

MySQLとしばらく密にお付き合いすることになりそうなので、色々と予習したことメモ。 InnoDBのバッファプール 取得処理では、バッファプールにデータがあればそれ返す。なければ、テーブルスペースから取得してプールして、それを返す。 更新系では、プール…

MySQLの運用で使うコマンドメモ

忘れていたので逐次メモしていく。 ## テーブル定義の確認 show create table #{table_name}; ## インデックスの確認 show index from #{table_name}; ## 発行されているSQLのリスト show processlist; ## 発行中のSQLを強制終了 KILL #{processlist_id}; ##…

Specified key was too long; max key length is 1024 bytes

Rails×MySQL環境下でindex作成時にエラーしてmigrateが止まった。 indexの最大幅を超えてたみたい。 Specified key was too long; max key length is 1024 bytes migrationファイルを修正して対応した。以下メモ。 VARCHAR(255) https://dev.mysql.com/doc/r…

MySQLのロックについてメモ

PostgreSQLばっかり使ってて、 MySQLのロックについて理解があやふやだったのでメモしておく。 ストレージエンジン MyISAM トランザクション使えない 5.4以前のデフォルト 更新SQL発行時はテーブルレベルロック(排他ロック)がかかる。 link https://dev.mysq…

SELECT文の評価順序メモ

たまに「どうだったっけ?」と忘れてしまう時があるので。 https://qiita.com/suzukito/items/edcd00e680186f2930a8 よりメモ FROM ON JOIN WHERE GROUP BY HAVING SELECT DISTINCT ORDER BY TOP(LIMIT)

CentOS6系にMySQL5.7を一撃インストール

CentOS6系にMySQL5.7をインストールした時のメモ書き。インストール時に発行される初期パスワードをシェルで取り出してログイン。 その後パスワードを仮のものに変更(これを一度やらないと色々操作できない)。 パスワード制約をゆるくして、再度わかりやす…

MySQLにblobで格納されたデータをまとめてファイル出力する

旧システムから新システムへのデータ移行の現場での一コマ。 DBにblobで格納されてた画像データをまとめてファイル出力したかったので、 PHPスクリプトを書いてみた。

UPDATE文でLEFT JOIN

SQL力が不足していて、LEFT JOINしたテーブルの値でUPDATEしたいときのやり方がわからなかったのでメモ。 # 確認用 SELECT * FROM users LEFT JOIN stores ON stores.id = users.store_id WHERE stores.company_id != users.copany_id; # UPDATE文 UPDATE us…

MySQLのユーザ管理コマンド

ユーザ管理 -- ユーザリスト SELECT Host, User, Password FROM mysql.user; -- ユーザ作成 CREATE USER 'kinosuke'@'localhost' IDENTIFIED BY 'some password'; -- ユーザ作成 -- GRANT使う&パスワードハッシュ使う版 GRANT USAGE ON *.* TO 'kinosuke'@'…