首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用mysql记录所有查询的Docker Basic Proxysql

用mysql记录所有查询的Docker Basic Proxysql
EN

Stack Overflow用户
提问于 2019-02-25 17:41:58
回答 1查看 1.9K关注 0票数 0

我希望在本地用Docker安装proxysql和mysql,这样我就可以用类似的方式来流所有传出日志(包括任何失败的日志)

代码语言:javascript
复制
docker logs -f proxysql

这是为了我可以调试查询等。我已经取得了很好的进展。我的码头撰写文件如下所示

代码语言:javascript
复制
services:
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: dbuser
      MYSQL_PASSWORD: password
    ports:
      - 33060:33060
      - 3306:3306
  proxysql:
    build:
       context: ./proxysql
    image: ubuntu
    container_name: proxysql
    command: tail -F anything
    ports:
      - 6032:6032
    depends_on:
      - db

我的sqlproxy Dockerfile如下所示

代码语言:javascript
复制
FROM ubuntu:18.04

RUN \
  apt-get -y update && \
  apt-get -y install mysql-client wget gdebi && \ 
  wget https://github.com/sysown/proxysql/releases/download/v2.0.2/proxysql_2.0.2-ubuntu18_amd64.deb && \
  gdebi -n proxysql_2.0.2-ubuntu18_amd64.deb

因此,我可以将ssh插入proxysql容器,并验证是否可以从proxysql容器内连接到db容器。

通过运行这个命令。请注意,db是mysql容器的名称。

代码语言:javascript
复制
mysql -uroot -hdb -ppassword

通过运行以下命令,我可以打开一个proxysql

代码语言:javascript
复制
proxysql -f

就在我的问题上。

1)如何通过本地机器的代理连接数据库?我的想法是不是有点像?

代码语言:javascript
复制
mysql -uadmin -padmin -h127.0.0.1 -P6032

2)如何在proxysql容器上配置sqlproxy?我看了一下默认的/etc/proxysql.cnf文件,这就是我有点困惑的地方?我在这里复制了配置,我认为这些值应该是什么?

代码语言:javascript
复制
admin_variables=
{
    admin_credentials="admin:admin"
    mysql_ifaces="0.0.0.0:6032"
}

mysql_variables=
{
    threads=4
    max_connections=2048
    default_query_delay=0
    default_query_timeout=36000000
    have_compress=true
    poll_timeout=2000
#   interfaces="0.0.0.0:6033;/tmp/proxysql.sock"
    interfaces="0.0.0.0:6033"
    default_schema="information_schema"
    stacksize=1048576
    server_version="5.5.30"
    connect_timeout_server=3000
# make sure to configure monitor username and password
# https://github.com/sysown/proxysql/wiki/Global-variables#mysql-monitor_username-mysql-monitor_password
    monitor_username="monitor"
    monitor_password="monitor"
    monitor_history=600000
    monitor_connect_interval=60000
    monitor_ping_interval=10000
    monitor_read_only_interval=1500
    monitor_read_only_timeout=500
    ping_interval_server_msec=120000
    ping_timeout_server=500
    commands_stats=true
    sessions_sort=true
    connect_retries_on_failure=10
}


# defines all the MySQL servers
mysql_servers =
(
    {
        address = "db" # no default, required . If port is 0 , address is interpred as a Unix Socket Domain
        port = 3306           # no default, required . If port is 0 , address is interpred as a Unix Socket Domain
#       hostgroup = 0           # no default, required
#       status = "ONLINE"     # default: ONLINE
#       weight = 1            # default: 1
#       compression = 0       # default: 0
#   max_replication_lag = 10  # default 0 . If greater than 0 and replication lag passes such threshold, the server is shunned
    }
)


# defines all the MySQL users
mysql_users:
(
    {
        username = "root" # no default , required
        password = "password" # default: ''
        default_hostgroup = 0 # default: 0
        active = 1            # default: 1
    }
)


#defines MySQL Query Rules
mysql_query_rules:
(
)

scheduler=
(
#  {
#    id=1
#    active=0
#    interval_ms=10000
#    filename="/var/lib/proxysql/proxysql_galera_checker.sh"
#    arg1="0"
#    arg2="0"
#    arg3="0"
#    arg4="1"
#    arg5="/var/lib/proxysql/proxysql_galera_checker.log"
#  }
)


mysql_replication_hostgroups=
(
#        {
#                writer_hostgroup=30
#                reader_hostgroup=40
#                comment="test repl 1"
#       },
#       {
#                writer_hostgroup=50
#                reader_hostgroup=60
#                comment="test repl 2"
#        }
)
EN

回答 1

Stack Overflow用户

发布于 2019-05-13 11:11:14

这里有一个由-> https://github.com/Plopix/docker-mysqlproxyprofiler创建的容器。这个容器所做的是代理您对现有数据库容器的所有请求,并使用来自.lua的https://github.com/patrickallaert/MySQL-Proxy-scripts-for-devs脚本记录所有查询的调试。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54871832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档