zoukankan      html  css  js  c++  java
  • 基于Docker Hub镜像的ProxySQL容器化部署与运行

    基于Docker Hub镜像的ProxySQL容器化部署与运行:

    1 拉取镜像

    从Docker Hub中拉取ProxySQL数据库中间件镜像的方法如下。

    # 拉取最新的镜像
    [root]# docker pull proxysql/proxysql
    # 拉取指定版本的镜像
    [root]# docker pull proxysql/proxysql:2.0.7
    

    可按需拉取最新或指定版本的ProxySQL镜像

    2 创建外挂卷

    例如,创建名为proxysql207_1的卷,用于保存持久化的配置数据,命令类似如下。

    ProxySQL的配置虽然可以写成.cnf文件,但主要仍以SQLite3库的形式保存。为了避免容器异常后配置数据丢失,因此创建外挂卷以持久化配置。

    [root]# docker volume create --name proxysql207_1
    

    3 编辑初始配置文件

    为了让ProxySQL能正常启动,且可以被远程配置,所以编辑如下配置文件(proxysql.cnf)。

    datadir="/var/lib/proxysql"
    
    admin_variables=
    {
        admin_credentials="admin:admin;radmin:radmin"
        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"
        default_schema="information_schema"
        stacksize=1048576
        server_version="5.5.30"
        connect_timeout_server=3000
        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
    }
    

    4 启动容器

    4.1 无配置数据的情况下启动容器

    例如,基于proxysql:2.0.7镜像,启动名为proxysql207_1的容器,命令类似如下。

    [root]# docker run --name proxysql207_1 
    -p 60321:6032 -p 60331:6033 
    -v /home/sid/config/proxysql/proxysql.cnf:/etc/proxysql.cnf -v proxysql207_1:/var/lib/proxysql 
    -d proxysql/proxysql:2.0.7
    

    --name:指定了容器名称;
    -p:指定了docker环境内外端口映射关系。该示例中,将ProxySQL的管理端口(6032)及SQL端口(6033),分别映射至docker环境外的60321及60331端口上;
    -v:指定了docker环境内外存储映射关系。该示例中,将初始配置文件映射为/etc/proxysql.cnf,作为ProxySQL初次启动的配置文件;同时,将名为proxysql207_1的docker volumn挂载至容器内的/var/lib/proxysql目录下,从而实现配置持久化

    注意:ProxySQL启动时,主要是从DISK库中读取配置加载到MEMORY并最终加载到RUNTIME生效。
    注意proxysql.cnf配置文件的挂载应先于/var/lib/proxysql目录的挂载,因为只有配置文件正确了,才能生成正确的配置数据库

    -d:在后台运行容器

    4.2 已有配置数据的情况下启动容器

    假设,ProxySQL的配置数据已经存于名为proxysql207_1的docker volumn内,则基于proxysql:2.0.7镜像,启动名为proxysql207_1的容器,命令类似如下。

    [root]# docker run --name proxysql207_1 
    -p 60321:6032 -p 60331:6033 
    -v proxysql207_1:/var/lib/proxysql 
    -d proxysql/proxysql:2.0.7
    

    --name:指定了容器名称;
    -p:指定了docker环境内外端口映射关系。该示例中,将ProxySQL的管理端口(6032)及SQL端口(6033),分别映射至docker环境外的60321及60331端口上;
    -v:指定了docker环境内外存储映射关系。该示例中,无需再指定启动配置文件,只需将名为proxysql207_1的docker volumn挂载至容器内的/var/lib/proxysql目录下,即可重用配置

    注意:ProxySQL启动时,主要是从DISK库中读取配置加载到MEMORY并最终加载到RUNTIME生效。

    -d:在后台运行容器

    5 修改配置

    当容器启动后,便可以如下命令,登陆ProxySQL管理端,按需进行配置。

    [root]# mysql -h127.0.0.1 -P60321 -uradmin -pradmin --prompt "ProxySQL Admin>"
    

    参考资料:

    1. https://hub.docker.com/r/proxysql/proxysql
  • 相关阅读:
    tcpdump 抓包
    mysql常用日期函数
    接口自动化测试,一键快速校验接口返回值全部字段
    实训项目
    vue proxyTable 代理方式 解决 跨域pathRewrite
    cookie, session, token 发展史
    Failed to set locale, defaulting to C.UTF-8
    java String与Integer的相互转化
    java LocalDateTime 常用 转换 方法
    Java命令里面的EQ、NE、GT、LT、GE、LE分别代表含义
  • 原文地址:https://www.cnblogs.com/autopenguin/p/12503554.html
Copyright © 2011-2022 走看看