MySQL

MySQLのコネクション関連

接続数関連 現在の接続数 show status like 'Threads_connected'; 最大接続数 show global variables like 'max_connections'; 接続時間 非対話式 アプリケーションやスクリプトなど デフォルトは28800(8時間) show global variables like 'wait_timeout'; …

MySQL8.0にアップデートしたら一部環境で通信エラーが発生する

事象 MySQL8.0にアップデート 実はしたら、一部環境でのみ通信エラーが発生する。 発生する箇所はWindowsクライアントであったり、Linuxのサーバーであったり。 原因(の一つ) クライアントが古いから 対応方法 MySQL Workbenchなどクライアントをバージョン…

検索時に半角スペースなどが無視される場合がある

事象 画面で検索した際、MySQLに格納されている半角スペースが無視される場合がある。 加えて、ある画面の検索では無視されるのに、別画面の検索では無視されない。 原因 以下のいずれかに該当しているため 利用している照合順序が異なるため 検索条件が完全…

MySQLのエディションの違い

## それぞれのエディション説明の公式ページCommunity Edition MySQL :: MySQL Community EditionCommercial Edition MySQL :: MySQL製品ホワイトペーパー MySQL :: MySQL製品概要 紹介資料### Community EditionとCommercial Editionの差異 正式に比較して…

MySQLをyum updateしようとするとGPG keyの事で怒られる

事象 yum updateしようとすると、MySQLの部分が以下の様に怒られる。 Downloading packages: warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-server-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79b…

MySQLのビューの定義がselect 1となっていた

事象 mysqldumpでビューやトリガーを含むダンプを取得した。 その後、別インスタンスにロードした。 すると、ビューが動かなくなった。 ビューの定義を確認すると以下の様な定義に置き換わっていた。 CREATE ALGORITHM=UNDEFINED DEFINER=`userhoge`@`%` SQL…

MySQLに対して特定の条件下でインポートを行うと文字化けが発生する

事象 特定の条件下でインポートを行うと文字化けが発生していた。 (同じサーバーに対して別の人がインポートした処理は文字化けが発生していなかった) 原因 WindowsのCLI(DOSプロンプト)でmysqlのSQLをインポートすると文字化けが発生していた。 詳解 利用し…

my.cnf/my.iniの優先順位とオプショングループ

my.cnf/my.iniの優先順位 マニュアルにきちんと記載してくれている。 dev.mysql.com表 4.1 Windows システムで読み取られるオプションファイル もしくは 表 4.2 Unix および Unix-Like システムで読み取られるオプションファイル に記載されている順番を参照…

mysqldumpの/*!50001や/*!500013はコメントではない

【失敗した内容】 mysqldumpの/*!50001 ~ */や/*!50013 ~*/と出力されていた箇所をコメントと勘違いして削除していた。【意味】 50001であれば、MySQL 5.00.01以上であれば実行するという意味である。 そのため、削除するともれなくmysqldumpで取得した時…

MySQLのデフォルトスキーマ

現セッションのデフォルトスキーマの確認方法 select database(); 現セッションのデフォルトスキーマを変更 use スキーマ名; 接続時にデフォルトスキーマを設定する方法 mysqlコマンド --database or -Dオプションを利用する MySQL workbench コネクション作…

MySQLの消したと思っていたテーブルやビューが残っている

【事象】 MySQLのスキーマ(データベース)をリストアする際に、以下の様な事を行っていた。 (DB_BACKUP_FILEは、mysqldumpしたバックアップファイルをgzipで固めただけのファイル) zcat ${DB_BACKUP_FILE} | mysql -u ${DB_USER} -p${DB_PASS} ${DB_SCHEMA} …

MySQL5.7と8.0における文字コード/照合順序の設定方法

前置き ・パラメータ名がハイフン表記か、アンダースコア表記か常に意識しておく必要有 ・初めてMySQLを起動する前に設定すべき 後でも直せなくはないが、苦行 また、mysql/performance/sysスキーマをalter文で変更するの怖い(一部放置している…) 前提 ・MyS…

Amazon RDS for MySQL にインポートを行うとAccess deniedと怒られる

事象 Amazon RDS for MySQLに対して、MySQL WorkbenchでData Export行ったSQLファイルをData Importを行うと以下の様なエラーが返ってくる。 ERROR 1227 (42000) at line 17: Access denied; you need (at least one of) the SUPER privilege(s) for this op…

MySQLのEOL

MySQL(商用版)とEOL対応表 バージョン 2023/4/30時点の最新版 Premium Support End Extended Support End 8.0.x 8.0.33 2025/4 2026/4 5.7.x 5.7.42 2020/10 2023/10 5.6.x 5.6.51 2018/2 2021/2 5.5.x 5.5.62 2015/12 2018/12 参考資料 "Oracle Lifetime Su…

MySQL Workbenchでデータをインポートしようとすると「Access Denied」というエラーが発生する

事象 MySQL Workbenchでデータをエクスポートし、Structure & Dataモードで新規作成したスキーマに対してデータをインポートを行った。 しかし、「Access denied; you need (at least one of) the SUPER privilege(s) for this operation」というエラーが発…

P204 sysスキーマ(5.7新機能)

実体は、便利なビューやストアドプログラムの集合体である。 MySQL本体とは異なるプロジェクトとして開発されたツールという経緯上、MySQL5.6でも利用可能である。MySQL Workbenchからインストールする方がお手軽であるが、GitHubからソースコードを入手して…

P186 パフォーマンススキーマとインフォメーションスキーマ

[パフォーマンススキーマ] ・5.5より導入されている機能 ・パフォーマンスデータの取得が目的(DTraceやSystemTap等で得れる情報) ・mysqld内部でコードを実行するたびに取得される[インフォメーションスキーマ(情報スキーマ)] ・5.0より導入されている機能 …

P162 InnoDBモニターの有効化方法の変更(5.7新機能)

[MySQL5.6上でInnoDBロックモニターを有効化する方法] CREATE TABLE innodb_lock_monitor (a int) ENGINE INNODB; なお、offにするにはDROP TABLEするか、MySQLサーバーを再起動する事である。[MySQL5.7上でInnoDBロックモニターを有効化する方法] SET GLOBA…

P79 オプティマイザトレース

EXPLAINコマンドは実行計画を知るうえでは必須かつ標準的な方法である。 しかし、オプティマイザが最終的に選択した実行計画についてのみであり、どのような過程で最適化やコスト計算、あるいは実行計画の比較が行われたかは分からない。 オプティマイザトレ…

P75 実行中のクエリに対するEXPLAIN(5.7新機能)

例) SHOW FULL PROCESSLISTなどで調べた対象のセッションのコネクションIDが777に対してEXPLAINする場合 EXPLAIN FOR CONNECTION 777詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド作者: 奥野幹也出版社/メーカー: 翔泳社発売日: 2016/09/…

P70 worldサンプルデータベース

MySQLが公式に提供しているサンプルデータベース 勉強用などに利用する際に用いれる。http://dev.mysql.com/doc/index-other.html 詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド作者: 奥野幹也出版社/メーカー: 翔泳社発売日: 2016/09/01…

P2 MySQLの特徴

[実装されている主な機能] ・ANSI SQL標準に準拠(但し、一部の文法は除く) ・ストレージエンジン ・ACID準拠のトランザクション(ストレージエンジンによる) ・XAトランザクション ・非同期あるいは準同期のレプリケーション ・水平パーティショニング ・スト…

P4 商用版MySQLサーバー

[商用版MySQLサーバーに向いている用途] ・追加のプラグインを使いたい ・モニタリングやバックアップのツールを使いたい ・オフィシャルなサポートが欲しい ・GPLv2でないライセンスでMySQLをバンドルしたい[商用版サーバーに付属しているプラグイン] ●MySQ…

MySQLワークベンチでNullをインポートする方法

[背景] MySQLワークベンチでcsvエクスポートを行うと、NullのカラムはNULLという文字でエクスポートされる。 これを同じくMySQLワークベンチでインポートを行うと、NULLという文字が格納されてしまう。 これを、csvファイルを編集して、\Nと文字列置換しても…

P44 スロークエリを出力する方法

[オプションファイルで設定する方法] slow-query-log = ON slow-query-log-file = /var/log/mysql-slow.log long-query-time = 1 なお、スロークエリかどうかの閾値はデフォルトで10秒である。 システム変数で設定したい場合は、上記ハイフンをアンダースコ…

P44 ログ出力先の変更方法

[オプションファイルで切替する方法] log-output = FILE,TABLE [SETクエリで切替する方法] SET GLOBAL log_output = 'FILE,TABLE';ソフトウェアデザイン 2016年 09 月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2016/08/18メディア: 雑誌この商品を含むブ…

P43 一般クエリログの有効化方法

[ファイルで一般クエリログを有効化] [mysqld] general-log general-log-file = /var/log/mysql.log [SETクエリで一般クエリログを有効化] SET GLOBAL general_log = ON; SET GLOBAL general_log_file = '/var/log/mysql.log'; ソフトウェアデザイン 2016年 …

P43 mysqldがどのファイルを読み込むかの確認方法

mysqld --help --verbose ソフトウェアデザイン 2016年 09 月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2016/08/18メディア: 雑誌この商品を含むブログ (1件) を見る

P34 メモリ使用率

Free buffers×innodb_page_sizeがbuffer poolのサイズとなる。 但し、Free buffersが0になったからといって、すぐにパフォーマンス劣化するとは限らない。 しかし、できる限りbuffer poolが溢れないようにする事が望ましい。[ワンライナー] mysql -u hoge -p…

P33 コネクション数

最大コネクションの確認は、max_connectionsというシステム変数で決定する。 接続中のコネクション数は、Threads_connectedというキーワードで確認できる。 なお、RDS for MySQLやAuroraの場合は、デフォルトではメモリ容量から最大コネクション数が決まる様…