有了 docker 可以快速的创建一个 mysql 实例,
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: iampassword
ports:
- 3306:3306
volumes:
- ./env/mysql/data:/var/lib/mysql
- ./env/mysql/conf:/etc/mysql/conf.d
因为是开发环境, 所以我希望 MySQL 能尽可能多的告诉我更多的信息, 也就是能记录详细的日志, 可以在 mysql 控制台执行以下语句:
SET global log_output = 'file';
SET global general_log_file='/var/log/mysql/query.log';
SET global general_log = on;
这样, 日志就打印到了容器中 /var/log/mysql/query.log
中, 至于你想到容器中查看日志还是在本地查看, 完全看你喜好. 如果想在容器中看
docker exec -it centos_db_1 tail -f /var/log/mysql/query.log
如果想在本地看, 就在 docker-compose.yml
中, 把上面 db
段修改成
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: iampassword
ports:
- 3306:3306
volumes:
- ./env/mysql/data:/var/lib/mysql
- ./env/mysql/conf:/etc/mysql/conf.d
- ./env/log/mysql:/var/log/mysql
这样一个不好的地方是当容器重启后上面的三个 SET
语句都会失效, 如果想永久的改变配置, 就需要把这段配置放在 my.cnf
中
[mysqld]
log_output = file
general_log_file = /var/log/mysql/query.log
general_log = 1
这样既不用提交镜像, 又能保存配置咯.
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于