mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/home/cps/mysql/devel/5.0-mike
into mysql.com:/home/cps/mysql/devel/5.1-merge
This commit is contained in:
@ -62,3 +62,5 @@ SHOW INSTANCES;
|
||||
instance_name status
|
||||
mysqld1 online
|
||||
mysqld2 offline
|
||||
SHOW INSTANCE STATUS;
|
||||
ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
|
||||
|
@ -140,3 +140,12 @@ SHOW INSTANCES;
|
||||
--exec $MYSQL_TEST_DIR/t/kill_n_check.sh $IM_MYSQLD2_PATH_PID killed
|
||||
|
||||
SHOW INSTANCES;
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# 1.1.8. Check that Instance Manager returns an error on
|
||||
# incomplete SHOW INSTANCE STATUS command.
|
||||
#
|
||||
###########################################################################
|
||||
--error 1149
|
||||
SHOW INSTANCE STATUS;
|
||||
|
@ -30,10 +30,8 @@ liboptions_a_CXXFLAGS= $(CXXFLAGS) \
|
||||
-DDEFAULT_PID_FILE_NAME="$(localstatedir)/mysqlmanager.pid" \
|
||||
-DDEFAULT_LOG_FILE_NAME="$(localstatedir)/mysqlmanager.log" \
|
||||
-DDEFAULT_SOCKET_FILE_NAME="/tmp/mysqlmanager.sock" \
|
||||
-DDEFAULT_PASSWORD_FILE_NAME="$(sysconfdir)/mysqlmanager.passwd" \
|
||||
-DDEFAULT_PASSWORD_FILE_NAME="/etc/mysqlmanager.passwd" \
|
||||
-DDEFAULT_MYSQLD_PATH="$(libexecdir)/mysqld$(EXEEXT)" \
|
||||
-DDEFAULT_MONITORING_INTERVAL="20" \
|
||||
-DDEFAULT_PORT="2273" \
|
||||
-DDEFAULT_CONFIG_FILE="/etc/my.cnf" \
|
||||
-DPROTOCOL_VERSION=@PROTOCOL_VERSION@
|
||||
|
||||
|
@ -525,7 +525,7 @@ int Show_instance_log::execute(struct st_net *net, ulong connection_id)
|
||||
read_buff.reserve(0, buff_size);
|
||||
|
||||
/* read in one chunk */
|
||||
read_len= my_seek(fd, file_stat.st_size - size, MY_SEEK_SET, MYF(0));
|
||||
read_len= (int)my_seek(fd, file_stat.st_size - size, MY_SEEK_SET, MYF(0));
|
||||
|
||||
if ((read_len= my_read(fd, (byte*) read_buff.buffer,
|
||||
buff_size, MYF(0))) < 0)
|
||||
|
@ -418,6 +418,10 @@ bool Instance::is_running()
|
||||
if (options.mysqld_socket)
|
||||
socket= strchr(options.mysqld_socket, '=') + 1;
|
||||
|
||||
/* no port was specified => instance falled back to default value */
|
||||
if (!options.mysqld_port && !options.mysqld_socket)
|
||||
port= SERVER_DEFAULT_PORT;
|
||||
|
||||
pthread_mutex_lock(&LOCK_instance);
|
||||
|
||||
mysql_init(&mysql);
|
||||
|
@ -229,10 +229,32 @@ int Instance_map::load()
|
||||
uint args_used= 0;
|
||||
const char *argv_options[3];
|
||||
char **argv= (char **) &argv_options;
|
||||
|
||||
char defaults_file_arg[FN_REFLEN];
|
||||
|
||||
/* the name of the program may be orbitrary here in fact */
|
||||
argv_options[0]= "mysqlmanager";
|
||||
|
||||
/*
|
||||
If the option file was forced by the user when starting
|
||||
the IM with --defaults-file=xxxx, make sure it is also
|
||||
passed as --defaults-file, not only as Options::config_file.
|
||||
This is important for option files given with relative path:
|
||||
e.g. --defaults-file=my.cnf.
|
||||
Otherwise my_search_option_files will treat "my.cnf" as a group
|
||||
name and start looking for files named "my.cnf.cnf" in all
|
||||
default dirs. Which is not what we want.
|
||||
*/
|
||||
if (Options::is_forced_default_file)
|
||||
{
|
||||
snprintf(defaults_file_arg, FN_REFLEN, "--defaults-file=%s",
|
||||
Options::config_file);
|
||||
|
||||
argv_options[1]= defaults_file_arg;
|
||||
argv_options[2]= '\0';
|
||||
|
||||
argc= 2;
|
||||
}
|
||||
else
|
||||
argv_options[1]= '\0';
|
||||
|
||||
/*
|
||||
|
@ -82,12 +82,13 @@ int main(int argc, char *argv[])
|
||||
int return_value= 1;
|
||||
init_environment(argv[0]);
|
||||
Options options;
|
||||
struct passwd *user_info;
|
||||
|
||||
if (options.load(argc, argv))
|
||||
goto err;
|
||||
|
||||
#ifndef __WIN__
|
||||
struct passwd *user_info;
|
||||
|
||||
if ((user_info= check_user(options.user)))
|
||||
{
|
||||
if (set_user(options.user, user_info))
|
||||
|
@ -55,6 +55,8 @@ uint Options::monitoring_interval= DEFAULT_MONITORING_INTERVAL;
|
||||
uint Options::port_number= DEFAULT_PORT;
|
||||
/* just to declare */
|
||||
char **Options::saved_argv= NULL;
|
||||
/* Remember if the config file was forced */
|
||||
bool Options::is_forced_default_file= 0;
|
||||
|
||||
/*
|
||||
List of options, accepted by the instance manager.
|
||||
@ -118,7 +120,7 @@ static struct my_option my_long_options[] =
|
||||
" Server binary.",
|
||||
(gptr *) &Options::default_mysqld_path,
|
||||
(gptr *) &Options::default_mysqld_path,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
|
||||
0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0 },
|
||||
|
||||
{ "monitoring-interval", OPT_MONITORING_INTERVAL, "Interval to monitor"
|
||||
" instances in seconds.",
|
||||
@ -254,6 +256,7 @@ int Options::load(int argc, char **argv)
|
||||
if (is_prefix(argv[1], "--defaults-file="))
|
||||
{
|
||||
Options::config_file= strchr(argv[1], '=') + 1;
|
||||
Options::is_forced_default_file= 1;
|
||||
}
|
||||
if (is_prefix(argv[1], "--defaults-extra-file=") ||
|
||||
is_prefix(argv[1], "--no-defaults"))
|
||||
|
@ -36,6 +36,7 @@ struct Options
|
||||
static char run_as_service; /* handle_options doesn't support bool */
|
||||
static const char *user;
|
||||
#endif
|
||||
static bool is_forced_default_file;
|
||||
static const char *log_file_name;
|
||||
static const char *pid_file_name;
|
||||
static const char *socket_file_name;
|
||||
|
@ -166,7 +166,8 @@ Command *parse_command(Instance_map *map, const char *text)
|
||||
skip= true;
|
||||
case TOK_SET:
|
||||
|
||||
get_text_id(&text, &instance_name_len, &instance_name);
|
||||
if (get_text_id(&text, &instance_name_len, &instance_name))
|
||||
goto syntax_error;
|
||||
text+= instance_name_len;
|
||||
|
||||
/* the next token should be a dot */
|
||||
@ -221,7 +222,8 @@ Command *parse_command(Instance_map *map, const char *text)
|
||||
switch (Token tok2= shift_token(&text, &word_len)) {
|
||||
case TOK_OPTIONS:
|
||||
case TOK_STATUS:
|
||||
get_text_id(&text, &instance_name_len, &instance_name);
|
||||
if (get_text_id(&text, &instance_name_len, &instance_name))
|
||||
goto syntax_error;
|
||||
text+= instance_name_len;
|
||||
/* check that this is the end of the command */
|
||||
get_word(&text, &word_len);
|
||||
@ -273,7 +275,8 @@ Command *parse_command(Instance_map *map, const char *text)
|
||||
goto syntax_error;
|
||||
}
|
||||
/* get the size of the log we want to retrieve */
|
||||
get_text_id(&text, &word_len, &log_size);
|
||||
if (get_text_id(&text, &word_len, &log_size))
|
||||
goto syntax_error;
|
||||
text+= word_len;
|
||||
/* this parameter is required */
|
||||
if (!word_len)
|
||||
@ -291,7 +294,6 @@ Command *parse_command(Instance_map *map, const char *text)
|
||||
instance_name_len, log_type,
|
||||
log_size, text);
|
||||
|
||||
//get_text_id(&text, &log_size_len, &log_size);
|
||||
break;
|
||||
case '\0':
|
||||
command= new Show_instance_log(map, instance_name,
|
||||
|
@ -8,13 +8,12 @@
|
||||
#ifdef __WIN__
|
||||
|
||||
#define vsnprintf _vsnprintf
|
||||
#define snprintf _snprintf
|
||||
|
||||
#define SIGKILL 9
|
||||
#define SHUT_RDWR 0x2
|
||||
|
||||
/*TODO: fix this */
|
||||
#define DEFAULT_MONITORING_INTERVAL 20
|
||||
#define DEFAULT_PORT 2273
|
||||
#define PROTOCOL_VERSION 10
|
||||
|
||||
typedef int pid_t;
|
||||
|
@ -15,6 +15,7 @@
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#include <my_global.h>
|
||||
#include <mysql_com.h>
|
||||
#include "priv.h"
|
||||
#include "portability.h"
|
||||
|
||||
@ -52,7 +53,7 @@ unsigned long net_buffer_length= 16384;
|
||||
|
||||
unsigned long max_allowed_packet= 16384;
|
||||
|
||||
unsigned long net_read_timeout= 30; // same as in mysqld
|
||||
unsigned long net_read_timeout= NET_WAIT_TIMEOUT; // same as in mysqld
|
||||
|
||||
unsigned long net_write_timeout= 60; // same as in mysqld
|
||||
|
||||
|
@ -24,6 +24,11 @@
|
||||
#endif
|
||||
#include "my_pthread.h"
|
||||
|
||||
/* IM-wide platform-independent defines */
|
||||
#define SERVER_DEFAULT_PORT 3306
|
||||
#define DEFAULT_MONITORING_INTERVAL 20
|
||||
#define DEFAULT_PORT 2273
|
||||
|
||||
/* the pid of the manager process (of the signal thread on the LinuxThreads) */
|
||||
extern pid_t manager_pid;
|
||||
|
||||
|
Reference in New Issue
Block a user