メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海雄太(@fat47)です。 #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 本記事は、MySQ
この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの
こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 本番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo
MySQL 8 以後では X Protocol がサポートされている(5.7 系では部分的なサポートであり、X Protocol を本格的に利用する場合には 8 を利用することが推奨されているようだ) 通信は従来の MySQL Protocol と異なり、Protocol Buffers Based となっていて、各言語のドライバの実装が簡単になっている(protocol buffers がその言語でサポートされていれば、だが) これにより今後 libmysqlclient に依存せずに各言語のドライバが実装されるようになって運用管理が簡単になるんじゃないかと私は考えています。 実際に、mysql-connector-nodejsは X Protocol のみをサポートしていて、libmysqlclient への依存がありません。 また、X Protocol/X DevAPI は asyn
概要 MySQLのデータをgrafanaで表示させてみた 環境 WSL2 Ubuntu: 18.04.4 LTS MySQL: 5.7.30-0ubuntu0.18.04.1 前提 MySQL自体はインストール済みの前提で書く grafana install https://grafana.com/docs/grafana/latest/installation/debian/ latest OSS releaseのインストール手順に従って進める sudo apt-get install -y apt-transport-https sudo apt-get install -y software-properties-common wget wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - sta
スロークエリは、アプリケーション側のボトルネックとしてよく現れる、処理速度が遅いSQLです。意図せずフルスキャンをしているケースが多く、データ件数が増えるにつれて急激に性能問題を引き起こします。負荷テスト実施時には1秒以上かかるものは把握しておくとよいでしょう。 スロークエリへの対処は次の3ステップで行います。 スロークエリを特定する スロークエリを解析する スロークエリを改修する MySQL、PostgreSQL、Oracleなど複数のRDBMSがありますが、基本的な流れは共通となります。 この記事では、MySQL8を対象に3ステップについて解説します。 1.スロークエリを特定する スロークエリの設定確認 「show variables」コマンドで確認を行います。 mysql> show variables like 'slow_query%'; +-------------------
いよいよ「サイボウズ・アドベントカレンダー2012」の始まりです。 記事一覧も作成しましたので、ご活用ください。 こんにちは。CyDE-C チームの青木です。 CyDE-C チームとは cybozu.com のミドルウェア層を担当するチームで、アプリケーション層のチームに MQ や全文検索サービス、BLOBサービス、Slash と呼ばれるユーザー管理機能を提供しています。 今回は CyDE-C が提供する MQ のパフォーマンスチューニングについて紹介します。 MQ とは Message Queue の略で、cybozu.com ではタスクの非同期実行の要として使われています。この仕組みはジョブキューやタスクキューとも呼ばれますが、この記事では MQ で統一することにします。 現行の MQ について cybozu.com の MQ は、キューに MySQL 、ワーカーは Java 製プログ
Redmine構築の準備¶ 開発ツール類のインストール¶ 開発ツール一式をインストールします。 # dnf groupinstall "Development Tools" : 上述開発ツール一式("Development Tools")には含まれていないパッケージを追加インストールします。 ただし、CentOS 7の時に入れていたパッケージのうち以下はCentOS 8では提供されていないので、以下のインストールは保留して次へ進みます。 libyaml-devel ImageMagick ImageMagick-devel # dnf install openssl-devel readline-devel zlib-devel curl-devel RDBMS MariaDBのインストール¶ 現行のRedmineをMySQL(MariaDB)で運用しているので、ここではMariaDBを入
前置き ・パラメータ名がハイフン表記か、アンダースコア表記か常に意識しておく必要有 ・初めてMySQLを起動する前に設定すべき 後でも直せなくはないが、苦行 また、mysql/performance/sysスキーマをalter文で変更するの怖い(一部放置している…) 前提 ・MySQL5.7/8.0におけるmy.cnf(Linux)/パラメータグループ(AmazonRDS)での設定を考慮 ・文字コードはutf8mb4、照合順序はutf8mb4_general_ciに設定 ・データベースのことをスキーマ、MySQLサーバーのプロセス全体をサーバーと記述する 文字コード 1.文字コードとは ・みんな大好き文字コードのため割愛 ・MySQL5.7も8.0もutf8mb4が無難 (cp932で保管しないといけないシステムもあるであろうが…) 2.文字コードに関するパラメータ 2.1.charact
MySQLを5.7から8へバージョンアップする過程で、文字コードを utf8mb4 に変更する必要が生じたため、方法をメモします。 現在の状況確認↓まずMySQLに接続して、現在の状況を確認します。 # MySQLへ接続 mysql -u root -p # 変更対象のDBを選択 mysql> use hogehoge; # 文字の設定を管理している環境変数を表示 mysql> show variables like "chara%!"(MISSING); # 出力結果 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_clie
MySQLは、オープンソースのリレーショナルデータベース管理システム(いわゆる「データベース」)で、WordPressやphpBBなどのWebアプリケーションで利用されています。FacebookやTwitter、Youtubeなど多くの有名なWebサイトでも使用されている。 MySQLでは、UTF-8の文字列を扱うutf8というcharacter-set(文字集合)がありますが、1バイトから3バイトまでの文字しか扱うことができません。絵文字のような、4バイトのUTF-8文字を扱う場合はutf8mb4を指定する必要があります。utf8mb4にすることで、絵文字をデータベースに登録・参照することができます。 これでオッケーと思いきや、照合順序(Collation)という壁が現れます。デフォルトの照合順序は utf8mb4_general_ci となっています。ただし、この utf8mb4_ge
MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる に関連するトピックで、 MySQL には寿司ビール問題というのがある。 寿司ビール問題どっかで詳しくお話を聞くべきだよなぁ。。。— RKajiyama (@RKajiyama) March 18, 2015 これはどういう問題かというと、 MySQL の Unicode では binary collation にしてコードポイントで比較しないと🍣と🍺に限らず絵文字が同値判定されるという問題です。 あれ? MySQL の utf8mb4 charset って、4バイト文字同士を比較すると同じ文字扱いされる? SELECT '🍣'='🍺' → 1 MySQL的には寿司とビールは同じ扱い。— とみたまさひろ (@tmtms) December 22, 2014 MySQLで select
MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!) 【2016/01/13 10:12】 MySQL 5.7.11でdefault_password_lifetimeのデフォルトは0に変更になりました! それ以降のバージョンであればこの記事の内容は気にする必要はありません。 日々の覚書: MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい! TL;DR default_password_lifetime= 0 を秘伝のmy.cnfに入れておくつもり。 MySQL :: MySQL 5.7 Reference Manual :: 5.1.4 Server System Variables パラメーターの意味は読んで字のごとく、「最後にパスワードが更新さ
GRANT SELECT, LOCK TABLES, SHOW VIEW, RELOAD, REPLICATION CLIENT ON *.* TO 'backup'@'%' identified by 'backup'; Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
環境 CentOS7.1 (Vagrant) MySQL 5.7.13 インストールはこっち 問題 MySQLをインストールして、$ mysql -uroot -proot で入ろうとしたら以下のエラー ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) MySQL5.7では初期パスワード(ランダム文字列)が発行されているらしい。面倒くさいので、rootユーザーのパスワードをrootに変更したい。 手順 初期パスワードは/var/log/mysqld.logに出力されている。 [vagrant@localhost ~]$ sudo cat /var/log/mysqld.log | grep "temporary password" ... ..temporary passw
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く