Open1
private-isuでsqldumpslowができなくて詰まった[docker環境]
ISUCON 2024に向けてPrivate ISUで勉強していた際に、mac上でmysqldumpslow
ができなくて詰まった。
事象
以下に示すように集計結果が正しく表示されない。
(解決法ご存知の方がいれば教えていただきたい)
/opt/homebrew/bin/mysqldumpslow: Deprecated program name. It will be removed in a future release, use 'mariadb-dumpslow' instead
Reading mysql slow query log from logs/mysql/mysql-slow.log
Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows_sent=0.0 (0), Rows_examined=0.0 (0), Rows_affected=0.0 (0), 0users@0hosts
Time: N-N-18T09:N:N.444969Z
# User@Host: root[root] @ [N.N.N.N] Id: N
# Query_time: N.N Lock_time: N.N Rows_sent: N Rows_examined: N
SET timestamp=N;
SELECT * FROM `users` WHERE `id` = N
Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows_sent=0.0 (0), Rows_examined=0.0 (0), Rows_affected=0.0 (0), 0users@0hosts
Time: N-N-18T09:N:N.385232Z
# User@Host: root[root] @ [N.N.N.N] Id: N
# Query_time: N.N Lock_time: N.N Rows_sent: N Rows_examined: N
SET timestamp=N
解決方法
dockerでubuntu環境を作成し、その中でmysqldumpslow
を実行
Dockerfile
FROM ubuntu:latest
RUN apt update
RUN apt install mysql-server -y
docker-compose.yml
services:
debug:
build: . # Dockerfileの場所による
volumes:
- ./mysql:/logs/mysql # ローカルにあるログを適当な場所にマウントする
- 実行方法
$ docker compose run --rm -it debug mysqldumpslow logs/mysql/mysql-slow.log | head -n 30