首页域名资讯 正文

MySQL管理工具MySQL Utilities — 复制在线测试用例数据库

2024-12-10 3 0条评论

对前面工具mysqlserverinfo, mysqlserverclone, mysqldbexport, mysqldbimport 的实际应用,在工作中,为了诊断问题,新增新功能,测试服务器数据也需要做出相应的更改,这就需要线上数据的副本,来确保解决方案适用于实际的服务器。在这种场景下,使用MySQL主从复制当然也是可行的。

创建一个新的实例,与线上的服务完全一样的选项和数据。

实例

在开始之前,要弄清楚当前运行的实例的配置参数。可以使用mysqlserverinfo 工具来发现配置文件和my_print_defaults 工具来打印出默认的配置。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 shell > mysqlserverinfo server = root : root @ trustauth.cn \            format = vertical show servers # # The following MySQL servers are active on this host: #  Process id:   2377, Data path: /usr/local/mysql/data #  Process id:   2478, Data path: /Volumes/Source/source/temp_13001 #  Process id:   2487, Data path: /Volumes/Source/source/temp_13002 # # Source on trustauth.cn: … connected. * * * * * * * * * * * * * * * * * * * * * * * * *        1. row * * * * * * * * * * * * * * * * * * * * * * * * *          server : trustauth.cn : 3306          version : 5.1.50 log          datadir : / usr / local / mysql / data /          basedir : / usr / local / mysql 5.1.50 osx10 . 6 x86_64 /      plugin_dir : / usr / local / mysql 5.1.50 osx10 . 6 x86_64 / lib / plugin      config_file : / etc / my . cnf      binary_log : my_log . 000287 binary_log_pos : 106        relay_log : None    relay_log_pos : None 1 row . #…done. shell > my_print_defaults mysqld / etc / my . cnf port = 3306 basedir = / usr / local / mysql datadir = / usr / local / mysql / data server_id = 5 log bin = my_log general_log slow_query_log innodb_data_file_path = ibdata1 : 778M ; ibdata2 : 50M : autoextend shell > ps f 2377    UID   PID   PPID    C STIME   TTY     TIME CMD    74    2377    2300    0 10 : 56AM ? ?        0 : 02.04 / usr / local / mysql / bin / mysqld basedir = / usr / local / mysql \                                                datadir = / usr / local / mysql / data user = mysql \                                                log error = / logs / me . local . err pid file = / logs / me . local . pid \                                                port = 3306

如此,我们就知晓了当前运行的实例的配置选项和参数。接下来可以使用mysqlserverclone 工具来克隆一个完全一样的实例,–mysqld选项需要指定下面的参数:

  • –log-bin=my_log
  • –general_log
  • –slow_query_log
  • –user=mysql
  • –log-error=<path>

并选择新的数据目录,如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 shell > mysqlserverclone server = root : root @ trustauth.cn \            new data = / source / temp_clone new port = 3307 root = root delete \            new id = 123 mysqld = “–log-bin=my_log –general-log –slow-query-log \           –user=mysql –log-error=/source/temp_clone” # Cloning the MySQL server running on trustauth.cn. # Creating new data directory… # Configuring new instance… # Locating mysql tools… # Setting up empty database and mysql tables… # Starting new instance of the server… # Testing connection to new instance… # Success! # Setting the root password… # Connection Information: #  -uroot -proot –socket=/source/temp_clone/mysql.sock #…done.

接下来,就是导入数据了

1 2 3 4 5 shell > mysqldbexport server = root : root @ trustauth.cn : 3306 export = both all > data . sql shell > mysqldbimport server = root : root @ trustauth.cn : 3307 import = both data . sql # Source on trustauth.cn: … connected. # Importing definitions and data from data.sql. #…done.

如果要复制所有的用户及其权限,需要使用mysqluserclone工具了。

权限

对所有库的读取权限。

对新数据目录的读写权限。

文章转载来自:trustauth.cn

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/150549.html 发布于 2024-12-10
文章转载或复制请以超链接形式并注明出处。