有了 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
这样既不用提交镜像, 又能保存配置咯.
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于