メインコンテンツへスキップ
MySQL データベースを接続して、Tony(データベースエンジニア)がクエリを分析し、パフォーマンスを最適化し、データベースの健全性を監視できるようにします。

対応プラットフォーム

プラットフォームサポート
セルフホスト MySQL5.7・8.0・8.1+
MariaDB10.x
AWS RDS MySQL全バージョン
AWS Aurora MySQL全バージョン
Google Cloud SQL全 MySQL バージョン
Azure Database for MySQLFlexible Server

前提条件

  • CloudThinker からネットワーク経由で到達可能な MySQL インスタンス。
  • 専用ユーザーの作成と権限付与に必要な管理者または root アクセス。
  • Performance Schema が有効になっていること(MySQL 5.7+ ではデフォルト。接続前に確認してください)。

セットアップ

1

root として接続する

root または管理者ユーザーで MySQL に接続します:
mysql -h your-host -u root -p
2

読み取り専用ユーザーを作成する

CloudThinker ユーザーを作成します:
CREATE USER 'cloudthinker_readonly'@'%' IDENTIFIED BY 'your-secure-password';
3

読み取り権限を付与する

SELECT と監視権限を付与します:
GRANT SELECT ON *.* TO 'cloudthinker_readonly'@'%';
GRANT SHOW DATABASES ON *.* TO 'cloudthinker_readonly'@'%';
GRANT PROCESS ON *.* TO 'cloudthinker_readonly'@'%';
4

Performance Schema へのアクセスを付与する

クエリ分析に必要です:
GRANT SELECT ON performance_schema.* TO 'cloudthinker_readonly'@'%';
FLUSH PRIVILEGES;
5

Performance Schema が有効か確認する

SHOW VARIABLES LIKE 'performance_schema';
-- 返り値: ON
無効の場合は my.cnf に追加して再起動します:
[mysqld]
performance_schema = ON
6

ネットワークアクセスを設定する

CloudThinker がデータベースに到達できるよう設定します:
  • CloudThinker の IP をセキュリティグループまたはファイアウォールに追加
  • RDS の場合:パブリックアクセスを有効化するか VPC ピアリングを使用
7

CloudThinker に接続を追加する

Connections → MySQL に移動し、以下を入力します:
  • Host:データベースのホスト名または IP
  • Port:データベースポート(デフォルト:3306
  • Database:データベース名
  • Usernamecloudthinker_readonly
  • Password:上記で設定したパスワード
  • SSL:有効(推奨)
Connect をクリックします。成功すると CloudThinker は Connected ステータスを表示します。

接続詳細

フィールド説明デフォルト
Hostデータベースのホスト名または IP
PortMySQL ポート3306
Databaseデータベース名
Username専用ユーザー(例:cloudthinker_readonly
Passwordユーザーパスワード
SSLSSL/TLS 暗号化を有効化有効
Connection timeout接続待機秒数10
Read timeoutクエリ結果の最大待機秒数30
接続文字列の形式:
mysql://cloudthinker_readonly:your-secure-password@your-host:3306/database-name

必要な権限

最小権限

GRANT SELECT ON your_database.* TO 'cloudthinker_readonly'@'%';
GRANT PROCESS ON *.* TO 'cloudthinker_readonly'@'%';

推奨(フル分析)

-- 上記すべてに加えて:
GRANT SELECT ON performance_schema.* TO 'cloudthinker_readonly'@'%';
GRANT SELECT ON mysql.* TO 'cloudthinker_readonly'@'%';
GRANT REPLICATION CLIENT ON *.* TO 'cloudthinker_readonly'@'%';
まず最小権限から始めてください。低速クエリデータとレプリケーション監視を解放するには performance_schemaREPLICATION CLIENT を追加してください。

エージェントの機能

接続後、Tony は以下を実行できます:
機能説明
クエリ分析スロークエリログと Performance Schema から低速クエリを特定
インデックス推奨不足しているインデックスの発見、冗長なインデックスの特定
パフォーマンスメトリクス接続数・バッファプール・クエリキャッシュの監視
テーブル統計テーブルサイズ・断片化・エンジン状態の分析
レプリケーション監視レプリカの状態・ラグ・エラーの確認

接続を確認する

@tony #report check MySQL connection health and show current active sessions

プロンプト例

@tony #report analyze slow queries on the production MySQL instance
@tony #recommend find missing indexes for high-frequency queries
@tony #dashboard show buffer pool usage and connection statistics

トラブルシューティング

  • ホストとポートが正しいか確認してください
  • セキュリティグループまたはファイアウォールが CloudThinker の IP を許可しているか確認してください
  • RDS の場合:「Publicly accessible」が有効になっているか、VPC ピアリングを使用しているか確認してください
  • MySQL が正しいインターフェースでリッスンしているか確認してください(my.cnfbind-address
  • ユーザー名とパスワードが正しいか確認してください
  • ユーザーのホスト指定が正しいか確認してください('user'@'%''user'@'localhost' の違い)
  • GRANT ステートメントの後に FLUSH PRIVILEGES が実行されているか確認してください
  • 確認方法:SHOW VARIABLES LIKE 'performance_schema';
  • my.cnf で有効化して MySQL を再起動してください
  • RDS の場合:パラメータグループを変更してインスタンスを再起動してください
  • スロークエリログを有効化:SET GLOBAL slow_query_log = 'ON';
  • しきい値を設定:SET GLOBAL long_query_time = 1;
  • RDS の場合:パラメータグループを変更してください

セキュリティ

  • 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
  • デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
  • 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
  • オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
  • SSL 必須 — 転送中のデータを暗号化するために、常に SSL を有効にしてください。
  • 最小権限 — CloudThinker ユーザーには SELECT のみを付与し、書き込みアクセスは絶対に付与しないでください。

関連

Tony Agent

データベース特化の最適化エージェント
https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/postgresql.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=8bb2ac033d0a2ccbef51154a76e1e819

PostgreSQL 接続

PostgreSQL データベースの同様のセットアップ