• dbdeployer 快速安装MySQL8.0各测试环境


      Linux系统必须安装有Go语言:
    下载最新的包:https://github.com/datacharmer/dbdeployer/releases  
       解压:  tar -xzf dbdeployer-1.5.0.linux.tar.gz
       赋予执行权限: chmod +x dbdeployer-1.5.0.linux
       拷贝到bin目录: sudo mv dbdeployer-1.5.0.linux /usr/local/bin/dbdeployer

    dbdeployer可以快速搭建多个MySQL测试环境(主从复制,主主复制,GTID复制,组复制(单主或多主),多源复制等)

    部署MySQL环境都是秒级别(10-30秒,根据实例多少有关),使用起来很方便,还有各种管理命令。

    dbdeployer unpack mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz --sandbox-binary=/usr/local dbdeployer deploy single 8.0.11 --bind-address=0.0.0.0 --port=3308 --sandbox-home=/home/data --sandbox-binary=/usr/local --sandbox-home 数据文件的安装目录 --sandbox-binary 是安装MySQL的二进制文件程序目录 --bind-address 4个0代表全部 --port 代表MySQL的端口 -- cd 到/home/data下 --mysql 8.0.11 创建用户  ./use 进去 修改密码和权限,否则不能修改Authentication plugin 'caching_sha2_password' cannot be loaded: ALTER user'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cc.123'; create USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'cc.123'; FLUSH PRIVILEGES; --再授权 mysql -u root -p -S /tmp/mysql_sandbox3308.sock -- 进入 grant all on *.* to 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
    如果想在安装的时候就赋予权限,直接使用参数:
    --post-grants-sql="grant all on *.* to 'root'@'%' WITH GRANT OPTION "

    --删除已经部署的mysql

      dbdeployer delete rsandbox_8_0_11 --sandbox-home=/home/data -- sandbox-binary=/usr/local;

       --这里的:rsandbox_8_0_11  是文件夹名称

       --部署1主多从(1拖4) (using ports 18601, 18602, 18603,18604)
       dbdeployer deploy replication 8.0.11 --bind-address=0.0.0.0 --base-port=18600 --sandbox-home=/home/data --sandbox-binary=/usr/local --nodes=4;

      

       --部署4个mysql,(using ports 18601, 18602, 18603,18604)
       dbdeployer deploy multiple 8.0.11 --bind-address=0.0.0.0 --base-port=18600 --sandbox-home=/home/data --sandbox-binary=/usr/local --nodes=4;

       安装3主2从(多主多从):

         dbdeployer deploy replication --topology=fan-in   --nodes=5 --master-list="1,2,3"  --bind-address=0.0.0.0  --native-auth-plugin  --slave-list="4,5"  8.0.11 --sandbox-home=/home/data  --remote-access="%" --sandbox-binary=/usr/local  --db-password="cc.123" --db-user="sa"  --post-grants-sql="grant all on *.* to 'sa'@'%' WITH GRANT OPTION "

          --remote-access="%"  账户远程访问的IP,% 为全部

          --db-user 新数据库账户 

          --db-password 数据库密码

          --post-grants-sql  后面执行的数据库授权Sql

          --native-auth-plugin  客户端如SQLLog可以访问MySQL,是在MySQL 8.0.4+ 有效

       安装组复制:

        dbdeployer deploy replication --topology=group     --bind-address=0.0.0.0      8.0.11 --sandbox-home=/home/data --remote-access="%" --sandbox-binary=/usr/local --native-auth-plugin  --db-password="cc.123" --db-user="sa"  --post-grants-sql="grant all on *.* to 'sa'@'%' WITH GRANT OPTION ";

       加上:--single-primary  明确是单主   

        dbdeployer deploy --topology=all-masters replication  --bind-address=0.0.0.0   8.0.11 --sandbox-home=/home/td  --remote-access="%" --sandbox-binary=/usr/local --native-auth-plugin --db-password="cc.123" --db-user="sa"  --post-grants-sql="grant all on *.* to 'sa'@'%' WITH GRANT OPTION " --concurrent;


    详细说明:
          --base-port int                 Overrides default base-port (for multiple sandboxes)
          --binary-version string         Specifies the version when the basedir directory name does not contain it (i.e. it is not x.x.xx)
          --bind-address string           defines the database bind-address  (default "127.0.0.1")
          --concurrent                    Runs multiple sandbox deployments concurrently
          --custom-mysqld string          Uses an alternative mysqld (must be in the same directory as regular mysqld)
      -p, --db-password string            database password (default "msandbox")
      -u, --db-user string                database user (default "msandbox")
          --defaults strings              Change defaults on-the-fly (--defaults=label:value)
          --disable-mysqlx                Disable MySQLX plugin (8.0.11+)
          --enable-general-log            Enables general log for the sandbox (MySQL 5.1+)
          --enable-mysqlx                 Enables MySQLX plugin (5.7.12+)
          --expose-dd-tables              In MySQL 8.0+ shows data dictionary tables
          --force                         If a destination sandbox already exists, it will be overwritten
          --gtid                          enables GTID
      -h, --help                          help for deploy
          --init-general-log              uses general log during initialization (MySQL 5.1+)
      -i, --init-options strings          mysqld options to run during initialization
          --keep-server-uuid              Does not change the server UUID
          --my-cnf-file string            Alternative source file for my.sandbox.cnf
      -c, --my-cnf-options strings        mysqld options to add to my.sandbox.cnf
          --native-auth-plugin            in 8.0.4+, uses the native password auth plugin
          --port int                      Overrides default port
          --post-grants-sql strings       SQL queries to run after loading grants
          --post-grants-sql-file string   SQL file to run after loading grants
          --pre-grants-sql strings        SQL queries to run before loading grants
          --pre-grants-sql-file string    SQL file to run before loading grants
          --remote-access string          defines the database access  (default "127.%")
          --rpl-password string           replication password (default "rsandbox")
          --rpl-user string               replication user (default "rsandbox")
          --sandbox-directory string      Changes the default sandbox directory
          --skip-load-grants              Does not load the grants
          --skip-report-host              Does not include report host in my.sandbox.cnf
          --skip-report-port              Does not include report port in my.sandbox.cnf
          --skip-start                    Does not start the database server
          --use-template strings          [template_name:file_name] Replace existing template with one from file 

    说明:

            $ dbdeployer deploy replication 5.7.21
            # (implies topology = master-slave) 默认主从

            $ dbdeployer deploy --topology=master-slave replication 5.7.21
            # (explicitly setting topology) 明确主从

            $ dbdeployer deploy --topology=group replication 5.7.21  组复制多主
            $ dbdeployer deploy --topology=group replication 8.0.4 --single-primary 组复制单主
            $ dbdeployer deploy --topology=all-masters replication 5.7.21   多主复制
            $ dbdeployer deploy --topology=fan-in replication 5.7.21  多主单(多)从复制 

       注意: 安装的过程中当前目录一定有,不然报错。比如在删除的rsandbox_8_0_11文件夹下执行dbdeployer命令

       配置后的备份:cd到MySQL的bin下执行   

    ./mysqldump -h 192.168.60.167  -u sa -p -P8011 --socket=/tmp/mysql_sandbox8011.sock  test > test_db.sql;
    

      

  • 相关阅读:
    c# 一段生成6位不重复的随机数字码存8万个
    element ui 踩坑记
    Vue node.js 踩坑记
    javascript 异步回调链式调用 promise
    css 盒模型
    vue node.js 引入 linq
    Vue VsCode 项目 launch.json 文件
    node.js 基本语法识记
    Vue 2.0 入门示例识记
    在Windows系统中建立一个隐藏的帐户(在不登录界面显示)
  • 原文地址:https://www.cnblogs.com/zping/p/9100550.html
Copyright © 2020-2023  润新知