⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysql-test-run.pl

📁 开启mysql的远程连接的方法 mysql-noinstall-5.1.6-alpha-win32.zip
💻 PL
📖 第 1 页 / 共 5 页
字号:
   path_myerr    => "$opt_vardir/log/slave2.err",   path_mylog    => "$opt_vardir/log/slave2.log",   path_mypid    => "$opt_vardir/run/slave2.pid",   path_mysock   => "$sockdir/slave2.sock",   path_myport   => $opt_slave_myport + 2,   start_timeout => 300,  };  $instance_manager=  {   path_err =>        "$opt_vardir/log/im.err",   path_log =>        "$opt_vardir/log/im.log",   path_pid =>        "$opt_vardir/run/im.pid",   path_sock =>       "$sockdir/im.sock",   port =>            $im_port,   start_timeout =>   $master->[0]->{'start_timeout'},   admin_login =>     'im_admin',   admin_password =>  'im_admin_secret',   admin_sha1 =>      '*598D51AD2DFF7792045D6DF3DDF9AA1AF737B295',   password_file =>   "$opt_vardir/im.passwd",   defaults_file =>   "$opt_vardir/im.cnf",  };  $instance_manager->{'instances'}->[0]=  {   server_id    => 1,   port         => $im_mysqld1_port,   path_datadir => "$opt_vardir/im_mysqld_1.data",   path_sock    => "$sockdir/mysqld_1.sock",   path_pid     => "$opt_vardir/run/mysqld_1.pid",   old_log_format => 1  };  $instance_manager->{'instances'}->[1]=  {   server_id    => 2,   port         => $im_mysqld2_port,   path_datadir => "$opt_vardir/im_mysqld_2.data",   path_sock    => "$sockdir/mysqld_2.sock",   path_pid     => "$opt_vardir/run/mysqld_2.pid",   nonguarded   => 1,   old_log_format => 1  };  if ( $opt_extern )  {    $glob_use_running_server=  1;    $opt_skip_rpl= 1;                   # We don't run rpl test cases    $master->[0]->{'path_mysock'}=  $opt_socket;  }  $path_timefile=  "$opt_vardir/log/mysqltest-time";  $path_mysqltest_log=  "$opt_vardir/log/mysqltest.log";}################################################################################  Set paths to various executable programs###############################################################################sub executable_setup () {  if ( $opt_source_dist )  {    if ( $glob_win32 )    {      $path_client_bindir= mtr_path_exists("$glob_basedir/client_release",                                           "$glob_basedir/bin");      $exe_mysqld=         mtr_exe_exists ("$path_client_bindir/mysqld-max",                                           "$path_client_bindir/mysqld-nt",                                           "$path_client_bindir/mysqld",                                           "$path_client_bindir/mysqld-debug",);      $path_language=      mtr_path_exists("$glob_basedir/share/english/");      $path_charsetsdir=   mtr_path_exists("$glob_basedir/share/charsets");      $exe_my_print_defaults=        mtr_exe_exists("$path_client_bindir/my_print_defaults");    }    else    {      $path_client_bindir= mtr_path_exists("$glob_basedir/client");      $exe_mysqld=         mtr_exe_exists ("$glob_basedir/sql/mysqld");      $exe_mysqlslap=      mtr_exe_exists ("$path_client_bindir/mysqlslap");      $path_language=      mtr_path_exists("$glob_basedir/sql/share/english/");      $path_charsetsdir=   mtr_path_exists("$glob_basedir/sql/share/charsets");      $exe_im= mtr_exe_exists(        "$glob_basedir/server-tools/instance-manager/mysqlmanager");      $exe_my_print_defaults=        mtr_exe_exists("$glob_basedir/extra/my_print_defaults");    }    if ( $glob_use_embedded_server )    {      my $path_examples= "$glob_basedir/libmysqld/examples";      $exe_mysqltest=    mtr_exe_exists("$path_examples/mysqltest_embedded");      $exe_mysql_client_test=        mtr_exe_exists("$path_examples/mysql_client_test_embedded",		       "/usr/bin/false");    }    else    {      if ( $opt_valgrind_mysqltest )      {        # client/mysqltest might be a libtool .sh script, so look for real exe        # to avoid valgrinding bash ;)        $exe_mysqltest=  	  mtr_exe_exists("$path_client_bindir/.libs/lt-mysqltest",		         "$path_client_bindir/.libs/mysqltest",		         "$path_client_bindir/mysqltest");      }      else      {        $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");      }      $exe_mysql_client_test=        mtr_exe_exists("$glob_basedir/tests/mysql_client_test",		       "/usr/bin/false");    }    $exe_mysqlcheck=     mtr_exe_exists("$path_client_bindir/mysqlcheck");    $exe_mysqldump=      mtr_exe_exists("$path_client_bindir/mysqldump");    $exe_mysqlimport=    mtr_exe_exists("$path_client_bindir/mysqlimport");    $exe_mysqlshow=      mtr_exe_exists("$path_client_bindir/mysqlshow");    $exe_mysqlbinlog=    mtr_exe_exists("$path_client_bindir/mysqlbinlog");    $exe_mysqladmin=     mtr_exe_exists("$path_client_bindir/mysqladmin");    $exe_mysql=          mtr_exe_exists("$path_client_bindir/mysql");    $exe_mysql_fix_system_tables=      mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables");    $path_ndb_tools_dir= mtr_path_exists("$glob_basedir/storage/ndb/tools");    $exe_ndb_mgm=        "$glob_basedir/storage/ndb/src/mgmclient/ndb_mgm";  }  else  {    $path_client_bindir= mtr_path_exists("$glob_basedir/bin");    $exe_mysqlcheck=     mtr_exe_exists("$path_client_bindir/mysqlcheck");    $exe_mysqldump=      mtr_exe_exists("$path_client_bindir/mysqldump");    $exe_mysqlimport=    mtr_exe_exists("$path_client_bindir/mysqlimport");    $exe_mysqlshow=      mtr_exe_exists("$path_client_bindir/mysqlshow");    $exe_mysqlbinlog=    mtr_exe_exists("$path_client_bindir/mysqlbinlog");    $exe_mysqladmin=     mtr_exe_exists("$path_client_bindir/mysqladmin");    $exe_mysql=          mtr_exe_exists("$path_client_bindir/mysql");    $exe_mysql_fix_system_tables=      mtr_script_exists("$path_client_bindir/mysql_fix_privilege_tables",			"$glob_basedir/scripts/mysql_fix_privilege_tables");    $exe_my_print_defaults=      mtr_exe_exists("$path_client_bindir/my_print_defaults");    $path_language=      mtr_path_exists("$glob_basedir/share/mysql/english/",                                         "$glob_basedir/share/english/");    $path_charsetsdir=   mtr_path_exists("$glob_basedir/share/mysql/charsets",                                         "$glob_basedir/share/charsets");    if ( $glob_win32 )    {      $exe_mysqld=         mtr_exe_exists ("$glob_basedir/bin/mysqld-nt",                                           "$glob_basedir/bin/mysqld",                                           "$glob_basedir/bin/mysqld-debug",);    }    else    {      $exe_mysqld=         mtr_exe_exists ("$glob_basedir/libexec/mysqld",                                           "$glob_basedir/bin/mysqld");      $exe_mysqlslap=      mtr_exe_exists("$path_client_bindir/mysqlslap");    }    $exe_im= mtr_exe_exists("$glob_basedir/libexec/mysqlmanager",                            "$glob_basedir/bin/mysqlmanager");    if ( $glob_use_embedded_server )    {      $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest_embedded");      $exe_mysql_client_test=        mtr_exe_exists("$glob_basedir/tests/mysql_client_test_embedded",                       "$path_client_bindir/mysql_client_test_embedded",		       "/usr/bin/false");    }    else    {      $exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");      $exe_mysql_client_test=        mtr_exe_exists("$path_client_bindir/mysql_client_test",		       "/usr/bin/false"); # FIXME temporary    }    $path_ndb_tools_dir=  "$glob_basedir/bin";    $exe_ndb_mgm=         "$glob_basedir/bin/ndb_mgm";  }  $exe_master_mysqld= $exe_master_mysqld || $exe_mysqld;  $exe_slave_mysqld=  $exe_slave_mysqld  || $exe_mysqld;  $path_ndb_backup_dir=    "$opt_vardir/ndbcluster-$opt_ndbcluster_port";  $file_ndb_testrun_log= "$opt_vardir/log/ndb_testrun.log";}################################################################################  Set environment to be used by childs of this process################################################################################ Note that some env is setup in spawn/run, in "mtr_process.pl"sub environment_setup () {  # --------------------------------------------------------------------------  # We might not use a standard installation directory, like /usr/lib.  # Set LD_LIBRARY_PATH to make sure we find our installed libraries.  # --------------------------------------------------------------------------  unless ( $opt_source_dist )  {    $ENV{'LD_LIBRARY_PATH'}=      "$glob_basedir/lib" .        ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");    $ENV{'DYLD_LIBRARY_PATH'}=      "$glob_basedir/lib" .        ($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");  }  # --------------------------------------------------------------------------  # Also command lines in .opt files may contain env vars  # --------------------------------------------------------------------------  $ENV{'UMASK'}=              "0660"; # The octal *string*  $ENV{'UMASK_DIR'}=          "0770"; # The octal *string*  $ENV{'LC_COLLATE'}=         "C";  $ENV{'USE_RUNNING_SERVER'}= $glob_use_running_server;  $ENV{'MYSQL_TEST_DIR'}=     $glob_mysql_test_dir;  $ENV{'MYSQL_TEST_WINDIR'}=  $glob_mysql_test_dir;  $ENV{'MASTER_MYSOCK'}=      $master->[0]->{'path_mysock'};  $ENV{'MASTER_WINMYSOCK'}=   $master->[0]->{'path_mysock'};  $ENV{'MASTER_MYSOCK1'}=     $master->[1]->{'path_mysock'};  $ENV{'MASTER_MYPORT'}=      $master->[0]->{'path_myport'};  $ENV{'MASTER_MYPORT1'}=     $master->[1]->{'path_myport'};  $ENV{'SLAVE_MYPORT'}=       $slave->[0]->{'path_myport'};# $ENV{'MYSQL_TCP_PORT'}=     '@MYSQL_TCP_PORT@'; # FIXME  $ENV{'MYSQL_TCP_PORT'}=     3306;  $ENV{'NDBCLUSTER_PORT'}=    $opt_ndbcluster_port;  $ENV{'NDBCLUSTER_PORT_SLAVE'}=$opt_ndbcluster_port_slave;  $ENV{'IM_PATH_PID'}=        $instance_manager->{path_pid};  $ENV{'IM_MYSQLD1_SOCK'}=    $instance_manager->{instances}->[0]->{path_sock};  $ENV{'IM_MYSQLD1_PORT'}=    $instance_manager->{instances}->[0]->{port};  $ENV{'IM_MYSQLD1_PATH_PID'}=$instance_manager->{instances}->[0]->{path_pid};  $ENV{'IM_MYSQLD2_SOCK'}=    $instance_manager->{instances}->[1]->{path_sock};  $ENV{'IM_MYSQLD2_PORT'}=    $instance_manager->{instances}->[1]->{port};  $ENV{'IM_MYSQLD2_PATH_PID'}=$instance_manager->{instances}->[1]->{path_pid};  if ( $glob_cygwin_perl )  {    foreach my $key ('MYSQL_TEST_WINDIR','MASTER_MYSOCK')    {      $ENV{$key}= `cygpath -w $ENV{$key}`;      $ENV{$key} =~ s,\\,\\\\,g;      chomp($ENV{$key});    }  }  # We are nice and report a bit about our settings  print "Using MTR_BUILD_THREAD = ",$ENV{MTR_BUILD_THREAD} || 0,"\n";  print "Using MASTER_MYPORT    = $ENV{MASTER_MYPORT}\n";  print "Using MASTER_MYPORT1   = $ENV{MASTER_MYPORT1}\n";  print "Using SLAVE_MYPORT     = $ENV{SLAVE_MYPORT}\n";  print "Using NDBCLUSTER_PORT  = $ENV{NDBCLUSTER_PORT}\n";  print "Using NDBCLUSTER_PORT_SLAVE = $ENV{NDBCLUSTER_PORT_SLAVE}\n";  print "Using IM_MYSQLD1_PORT  = $ENV{'IM_MYSQLD1_PORT'}\n";  print "Using IM_MYSQLD2_PORT  = $ENV{'IM_MYSQLD2_PORT'}\n";}################################################################################  If we get a ^C, we try to clean up before termination################################################################################ FIXME check restrictions what to do in a signal handlersub signal_setup () {  $SIG{INT}= \&handle_int_signal;}sub handle_int_signal () {  $SIG{INT}= 'DEFAULT';         # If we get a ^C again, we die...  mtr_warning("got INT signal, cleaning up.....");  stop_masters_slaves();  mtr_error("We die from ^C signal from user");}################################################################################  Handle left overs from previous runs###############################################################################sub kill_running_server () {  if ( $opt_fast or $glob_use_embedded_server )  {    # FIXME is embedded server really using PID files?!    unlink($master->[0]->{'path_mypid'});    unlink($master->[1]->{'path_mypid'});    unlink($slave->[0]->{'path_mypid'});    unlink($slave->[1]->{'path_mypid'});    unlink($slave->[2]->{'path_mypid'});  }  else  {    # Ensure that no old mysqld test servers are running    # This is different from terminating processes we have    # started from ths run of the script, this is terminating    # leftovers from previous runs.    mtr_report("Killing Possible Leftover Processes");    mkpath("$opt_vardir/log"); # Needed for mysqladmin log    mtr_kill_leftovers();    ndbcluster_stop();    $master->[0]->{'ndbcluster'}= 1;    ndbcluster_stop_slave();    $slave->[0]->{'ndbcluster'}= 1;  }}sub kill_and_cleanup () {  kill_running_server ();  mtr_report("Removing Stale Files");  rmtree("$opt_vardir/log");  rmtree("$opt_vardir/ndbcluster-$opt_ndbcluster_port");  rmtree("$opt_vardir/run");  rmtree("$opt_vardir/tmp");  mkpath("$opt_vardir/log");  mkpath("$opt_vardir/run");  mkpath("$opt_vardir/tmp");  mkpath($opt_tmpdir) if $opt_tmpdir ne "$opt_vardir/tmp";  # FIXME do we really need to create these all, or are they  # created for us when tables are created?  my @data_dir_lst = (    $master->[0]->{'path_myddir'},    $master->[1]->{'path_myddir'},    $slave->[0]->{'path_myddir'},    $slave->[1]->{'path_myddir'},    $slave->[2]->{'path_myddir'});    foreach my $instance (@{$instance_manager->{'instances'}})  {    push(@data_dir_lst, $instance->{'path_datadir'});  }  foreach my $data_dir (@data_dir_lst)  {    rmtree("$data_dir");    mkpath("$data_dir/mysql");    mkpath("$data_dir/test");  }  # To make some old test cases work, we create a soft  # link from the old "var" location to the new one  if ( ! $glob_win32 and $opt_vardir ne "$glob_mysql_test_dir/var" )  {    # FIXME why bother with the above, why not always remove all of var?!    rmtree("$glob_mysql_test_dir/var"); # Clean old var, FIXME or rename it?!    symlink($opt_vardir, "$glob_mysql_test_dir/var");  }}sub check_ssl_support () {  if ($opt_skip_ssl)  {    mtr_report("Skipping SSL");    $opt_ssl_supported= 0;    $opt_ssl= 0;    return;  }  # check ssl support by testing using a switch  # that is only available in that case  if ( mtr_run($exe_mysqld,	       ["--no-defaults",	        "--ssl",	        "--help"],	       "", "/dev/null", "/dev/null", "") != 0 )  {    if ( $opt_ssl)    {      mtr_error("Couldn't find support for SSL");      return;    }    mtr_report("Skipping SSL, mysqld not compiled with SSL");    $opt_ssl_supported= 0;    $opt_ssl= 0;    return;  }  mtr_report("Setting mysqld to support SSL connections");  $opt_ssl_supported= 1;}################################################################################  Start the ndb cluster###############################################################################sub check_ndbcluster_support () {  if ($opt_skip_ndbcluster)  {    mtr_report("Skipping ndbcluster");    $opt_skip_ndbcluster_slave= 1;    $opt_with_ndbcluster= 0;    $opt_with_ndbcluster_slave= 0;    return;  }  # check ndbcluster support by testing using a switch  # that is only available in that case  if ( mtr_run($exe_mysqld,	       ["--no-defaults",	        "--ndb-use-exact-count",	        "--help"],	       "", "/dev/null", "/dev/null", "") != 0 )  {    mtr_report("Skipping ndbcluster, mysqld not compiled with ndbcluster");    $opt_skip_ndbcluster= 1;    $opt_skip_ndbcluster_slave= 1;    $opt_with_ndbcluster= 0;    $opt_with_ndbcluster_slave= 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -