Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
4c675c92
Commit
4c675c92
authored
Feb 20, 2001
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanups...
parent
bf7fb268
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
145 additions
and
120 deletions
+145
-120
client/mysql.cc
client/mysql.cc
+5
-5
client/mysqltest.c
client/mysqltest.c
+46
-29
sql/ha_myisam.cc
sql/ha_myisam.cc
+7
-7
sql/mysqld.cc
sql/mysqld.cc
+72
-66
sql/slave.cc
sql/slave.cc
+15
-13
No files found.
client/mysql.cc
View file @
4c675c92
...
...
@@ -2212,14 +2212,14 @@ com_status(String *buffer __attribute__((unused)),
if
(
safe_updates
)
{
vidattr
(
A_BOLD
);
tee_fprintf
(
stdout
,
"
\n
Note that
we
are running in safe_update_mode:
\n
"
);
tee_fprintf
(
stdout
,
"
\n
Note that
you
are running in safe_update_mode:
\n
"
);
vidattr
(
A_NORMAL
);
tee_fprintf
(
stdout
,
"\
UPDATE
and DELETE that doesn't use a key in the WHERE clause are not allowed
\n
\
(One can force
UPDATE/DELETE by adding LIMIT # at the end of the command
)
\n
\
SELECT has an automatic 'LIMIT %lu' if LIMIT is not used
\n
\
UPDATE
s and DELETEs that don't use a key in the WHERE clause are not allowed.
\n
\
(One can force
an UPDATE/DELETE by adding LIMIT # at the end of the command.
)
\n
\
SELECT has an automatic 'LIMIT %lu' if LIMIT is not used
.
\n
\
Max number of examined row combination in a join is set to: %lu
\n\n
"
,
select_limit
,
max_join_size
);
select_limit
,
max_join_size
);
}
tee_puts
(
"--------------
\n
"
,
stdout
);
return
0
;
...
...
client/mysqltest.c
View file @
4c675c92
...
...
@@ -145,19 +145,36 @@ struct st_query
uint
expected_errno
[
MAX_EXPECTED_ERRORS
];
char
record_file
[
FN_REFLEN
];
/* Add new commands before Q_UNKNOWN */
enum
{
Q_CONNECTION
=
1
,
Q_QUERY
,
Q_CONNECT
,
Q_SLEEP
,
Q_INC
,
Q_DEC
,
Q_SOURCE
,
Q_DISCONNECT
,
Q_LET
,
Q_ECHO
,
Q_WHILE
,
Q_END_BLOCK
,
Q_SYSTEM
,
Q_RESULT
,
Q_REQUIRE
,
Q_SAVE_MASTER_POS
,
Q_SYNC_WITH_MASTER
,
Q_ERROR
,
Q_SEND
,
Q_REAP
,
Q_DIRTY_CLOSE
,
Q_REPLACE
,
Q_UNKNOWN
,
Q_COMMENT
,
Q_COMMENT_WITH_COMMAND
}
type
;
enum
{
Q_CONNECTION
=
1
,
Q_QUERY
,
Q_CONNECT
,
Q_SLEEP
,
Q_INC
,
Q_DEC
,
Q_SOURCE
,
Q_DISCONNECT
,
Q_LET
,
Q_ECHO
,
Q_WHILE
,
Q_END_BLOCK
,
Q_SYSTEM
,
Q_RESULT
,
Q_REQUIRE
,
Q_SAVE_MASTER_POS
,
Q_SYNC_WITH_MASTER
,
Q_ERROR
,
Q_SEND
,
Q_REAP
,
Q_DIRTY_CLOSE
,
Q_REPLACE
,
Q_UNKNOWN
,
/* Unknown command. */
Q_COMMENT
,
/* Comments, ignored. */
Q_COMMENT_WITH_COMMAND
}
type
;
};
const
char
*
command_names
[]
=
{
"connection"
,
"query"
,
"connect"
,
"sleep"
,
"inc"
,
"dec"
,
"source"
,
"disconnect"
,
"let"
,
"echo"
,
"while"
,
"end"
,
"system"
,
"result"
,
"require"
,
"save_master_pos"
,
"sync_with_master"
,
"error"
,
"send"
,
"reap"
,
"dirty_close"
,
"replace_result"
,
0
"connection"
,
"query"
,
"connect"
,
"sleep"
,
"inc"
,
"dec"
,
"source"
,
"disconnect"
,
"let"
,
"echo"
,
"while"
,
"end"
,
"system"
,
"result"
,
"require"
,
"save_master_pos"
,
"sync_with_master"
,
"error"
,
"send"
,
"reap"
,
"dirty_close"
,
"replace_result"
,
0
};
TYPELIB
command_typelib
=
{
array_elements
(
command_names
),
""
,
...
...
@@ -873,9 +890,9 @@ int do_connect(struct st_query* q)
p
=
safe_get_param
(
p
,
&
con_pass
,
"missing connection password"
);
p
=
safe_get_param
(
p
,
&
con_db
,
"missing connection db"
);
p
=
safe_get_param
(
p
,
&
con_port_str
,
"missing connection port"
);
p
=
safe_get_param
(
p
,
&
con_sock
,
"missing connection s
co
ket"
);
p
=
safe_get_param
(
p
,
&
con_sock
,
"missing connection s
oc
ket"
);
if
(
next_con
==
cons_end
)
die
(
"Connection limit exhausted - increa
d
MAX_CONS in mysqltest.c"
);
die
(
"Connection limit exhausted - increa
se
MAX_CONS in mysqltest.c"
);
if
(
!
mysql_init
(
&
next_con
->
mysql
))
die
(
"Failed on mysql_init()"
);
...
...
@@ -914,7 +931,7 @@ int do_while(struct st_query* q)
char
*
expr_start
,
*
expr_end
;
VAR
v
;
if
(
cur_block
==
block_stack_end
)
die
(
"Nesting too deep"
);
die
(
"Nesting too deep
ly
"
);
if
(
!
block_ok
)
{
++
false_block_depth
;
...
...
@@ -1204,23 +1221,23 @@ int read_query(struct st_query** q_ptr)
struct
option
long_options
[]
=
{
{
"debug"
,
optional_argument
,
0
,
'#'
},
{
"database"
,
required_argument
,
0
,
'D'
},
{
"help"
,
no_argument
,
0
,
'?'
},
{
"host"
,
required_argument
,
0
,
'h'
},
{
"password"
,
optional_argument
,
0
,
'p'
},
{
"port"
,
required_argument
,
0
,
'P'
},
{
"quiet"
,
no_argument
,
0
,
'q'
},
{
"record"
,
no_argument
,
0
,
'r'
},
{
"debug"
,
optional_argument
,
0
,
'#'
},
{
"database"
,
required_argument
,
0
,
'D'
},
{
"help"
,
no_argument
,
0
,
'?'
},
{
"host"
,
required_argument
,
0
,
'h'
},
{
"password"
,
optional_argument
,
0
,
'p'
},
{
"port"
,
required_argument
,
0
,
'P'
},
{
"quiet"
,
no_argument
,
0
,
'q'
},
{
"record"
,
no_argument
,
0
,
'r'
},
{
"result-file"
,
required_argument
,
0
,
'R'
},
{
"silent"
,
no_argument
,
0
,
'q'
},
{
"sleep"
,
required_argument
,
0
,
'T'
},
{
"socket"
,
required_argument
,
0
,
'S'
},
{
"tmpdir"
,
required_argument
,
0
,
't'
},
{
"user"
,
required_argument
,
0
,
'u'
},
{
"verbose"
,
no_argument
,
0
,
'v'
},
{
"version"
,
no_argument
,
0
,
'V'
},
{
0
,
0
,
0
,
0
}
{
"silent"
,
no_argument
,
0
,
'q'
},
{
"sleep"
,
required_argument
,
0
,
'T'
},
{
"socket"
,
required_argument
,
0
,
'S'
},
{
"tmpdir"
,
required_argument
,
0
,
't'
},
{
"user"
,
required_argument
,
0
,
'u'
},
{
"verbose"
,
no_argument
,
0
,
'v'
},
{
"version"
,
no_argument
,
0
,
'V'
},
{
0
,
0
,
0
,
0
}
};
...
...
sql/ha_myisam.cc
View file @
4c675c92
...
...
@@ -369,7 +369,7 @@ int ha_myisam::restore(THD* thd, HA_CHECK_OPT *check_opt)
MI_NAME_DEXT
,
4
),
MYF
(
MY_WME
)))
{
error
=
HA_ADMIN_FAILED
;
errmsg
=
"
failed in my_copy(
Error %d)"
;
errmsg
=
"
Failed in my_copy (
Error %d)"
;
goto
err
;
}
...
...
@@ -402,7 +402,7 @@ int ha_myisam::backup(THD* thd, HA_CHECK_OPT *check_opt)
if
(
!
fn_format
(
dst_path
,
table_name
,
backup_dir
,
reg_ext
,
4
+
64
))
{
errmsg
=
"
failed in fn_format() for .frm file: errno=
%d"
;
errmsg
=
"
Failed in fn_format() for .frm file: errno =
%d"
;
error
=
HA_ADMIN_INVALID
;
goto
err
;
}
...
...
@@ -418,7 +418,7 @@ int ha_myisam::backup(THD* thd, HA_CHECK_OPT *check_opt)
if
(
!
fn_format
(
dst_path
,
table_name
,
backup_dir
,
MI_NAME_DEXT
,
4
+
64
))
{
errmsg
=
"
failed in fn_format() for .MYD file: errno=
%d"
;
errmsg
=
"
Failed in fn_format() for .MYD file: errno =
%d"
;
error
=
HA_ADMIN_INVALID
;
goto
err
;
}
...
...
@@ -470,7 +470,7 @@ int ha_myisam::repair(THD* thd, HA_CHECK_OPT *check_opt)
if
(
param
.
retry_without_quick
&&
param
.
opt_rep_quick
)
{
param
.
opt_rep_quick
=
0
;
sql_print_error
(
"Warning: Retrying repair of:
'%s' without quick"
,
sql_print_error
(
"Warning: Retrying repair of: '%s' without quick"
,
table
->
path
);
continue
;
}
...
...
@@ -478,7 +478,7 @@ int ha_myisam::repair(THD* thd, HA_CHECK_OPT *check_opt)
if
((
param
.
testflag
&
T_REP_BY_SORT
))
{
param
.
testflag
=
(
param
.
testflag
&
~
T_REP_BY_SORT
)
|
T_REP
;
sql_print_error
(
"Warning: Retrying repair of:
'%s' with keycache"
,
sql_print_error
(
"Warning: Retrying repair of: '%s' with keycache"
,
table
->
path
);
continue
;
}
...
...
@@ -579,7 +579,7 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
error
=
chk_key
(
&
param
,
file
);
}
}
thd
->
proc_info
=
"
s
aving state"
;
thd
->
proc_info
=
"
S
aving state"
;
if
(
!
error
)
{
if
((
share
->
state
.
changed
&
STATE_CHANGED
)
||
mi_is_crashed
(
file
))
...
...
@@ -636,7 +636,7 @@ bool ha_myisam::activate_all_index(THD *thd)
if
(
share
->
state
.
key_map
!=
((
ulonglong
)
1L
<<
share
->
base
.
keys
)
-
1
)
{
const
char
*
save_proc_info
=
thd
->
proc_info
;
thd
->
proc_info
=
"
c
reating index"
;
thd
->
proc_info
=
"
C
reating index"
;
myisamchk_init
(
&
param
);
param
.
op_name
=
(
char
*
)
"recreating_index"
;
param
.
testflag
=
(
T_SILENT
|
T_REP_BY_SORT
|
...
...
sql/mysqld.cc
View file @
4c675c92
...
...
@@ -193,8 +193,8 @@ int segfaulted = 0; // ensure we do not enter SIGSEGV handler twice
extern
MASTER_INFO
glob_mi
;
extern
int
init_master_info
(
MASTER_INFO
*
mi
);
// if sql_bin_update is true, SQL_LOG_UPDATE and SQL_LOG_BIN are kept in sync,
and are
// treated as aliases for each other
// if sql_bin_update is true, SQL_LOG_UPDATE and SQL_LOG_BIN are kept in sync,
//
and are
treated as aliases for each other
static
bool
kill_in_progress
=
FALSE
;
static
struct
rand_struct
sql_rand
;
...
...
@@ -1110,9 +1110,9 @@ inline __volatile__ void trace_stack()
LINT_INIT
(
stack_bottom
);
fprintf
(
stderr
,
"Attemping backtrace. You can use the following information to find out
\n
\
"Attemp
t
ing backtrace. You can use the following information to find out
\n
\
where mysqld died. If you see no messages after this, something went
\n
\
terribly wrong
\n
"
);
terribly wrong
...
\n
"
);
THD
*
thd
=
current_thd
;
uint
frame_count
=
0
;
__asm
__volatile__
(
"movl %%ebp,%0"
...
...
@@ -1121,12 +1121,12 @@ terribly wrong\n");
if
(
!
ebp
)
{
fprintf
(
stderr
,
"frame pointer (ebp) is NULL, did you compile with
\n
\
-fomit-frame-pointer? Aborting backtrace
\n
"
);
-fomit-frame-pointer? Aborting backtrace
!
\n
"
);
return
;
}
if
(
!
thd
)
{
fprintf
(
stderr
,
"Cannot determine thread, ebp=%p, backtrace may not be correct
\n
"
,
ebp
);
fprintf
(
stderr
,
"Cannot determine thread, ebp=%p, backtrace may not be correct
.
\n
"
,
ebp
);
/* Assume that the stack starts at the previous even 65K */
ulong
tmp
=
min
(
0x10000
,
thread_stack
);
stack_bottom
=
(
uchar
**
)
(((
ulong
)
&
stack_bottom
+
tmp
)
&
...
...
@@ -1137,11 +1137,11 @@ terribly wrong\n");
if
(
ebp
>
stack_bottom
||
ebp
<
stack_bottom
-
thread_stack
)
{
fprintf
(
stderr
,
"Bogus stack limit or frame pointer, aborting backtrace
\n
"
);
"Bogus stack limit or frame pointer, aborting backtrace
.
\n
"
);
return
;
}
fprintf
(
stderr
,
"
stack range sanity check, ok, backtrace follows
\n
"
);
fprintf
(
stderr
,
"
Stack range sanity check OK, backtrace follows:
\n
"
);
while
(
ebp
<
stack_bottom
)
{
...
...
@@ -1151,22 +1151,22 @@ terribly wrong\n");
if
(
new_ebp
<=
ebp
)
{
fprintf
(
stderr
,
"\
New value of ebp failed sanity check
terminating backtrace
\n
"
);
New value of ebp failed sanity check
, terminating backtrace!
\n
"
);
return
;
}
ebp
=
new_ebp
;
++
frame_count
;
}
fprintf
(
stderr
,
"
stack trace successful, now will try to get some
\n
\
variables. Some pointers may be invalid and cause dump abort
\n
"
);
fprintf
(
stderr
,
"
Stack trace successful, tryint to get some variables.
\n
\
Some pointers may be invalid and cause the dump to abort...
\n
"
);
heap_start
=
__bss_start
;
heap_end
=
(
char
*
)
sbrk
(
0
);
print_str
(
"thd->query"
,
thd
->
query
,
1024
);
fprintf
(
stderr
,
"thd->thread_id = %ld
\n
"
,
thd
->
thread_id
);
fprintf
(
stderr
,
"
successfully dumped variables, if you ran with --log
\n
\
fprintf
(
stderr
,
"
Successfully dumped variables, if you ran with --log,
\n
\
take a look at the details of what thread %ld did to cause the crash.
\n
\
In some cases of really bad corruption, this value
can be invalid
\n
"
,
In some cases of really bad corruption, this value
may be invalid
\n
"
,
thd
->
thread_id
);
fprintf
(
stderr
,
"Please use the information above to create a repeatable
\n
\
test case for the crash, and send it to bugs@lists.mysql.com
\n
"
);
...
...
@@ -1187,7 +1187,7 @@ static sig_handler handle_segfault(int sig)
mysqld got signal %d;
\n
\
The manual section 'Debugging a MySQL server' tells you how to use a
\n
\
stack trace and/or the core file to produce a readable backtrace that may
\n
\
help in finding out why mysqld died
\n
"
,
sig
);
help in finding out why mysqld died
.
\n
"
,
sig
);
#if defined(HAVE_LINUXTHREADS)
#ifdef __i386__
trace_stack
();
...
...
@@ -1676,13 +1676,14 @@ int main(int argc, char **argv)
#ifdef EXTRA_DEBUG
case
1
:
sql_print_error
(
"\
Warning: one should set server-id to a non-0 value if log-bin is enabled.
\n
\
mysqld log updates to binary log, but will not accept connections from slaves."
);
Warning: You should set server-id to a non-0 value if log-bin is enabled.
\n
\
mysqld will log updates to the binary log, but will not accept connections
\n
\
from slaves."
);
break
;
#endif
case
2
:
sql_print_error
(
"\
Warning:
one
should set server-id to a non-0 value if master_host is set.
\n
\
Warning:
You
should set server-id to a non-0 value if master_host is set.
\n
\
The server will not act as a slave."
);
break
;
}
...
...
@@ -2019,7 +2020,7 @@ static void create_new_thread(THD *thd)
/* don't allow too many connections */
if
(
thread_count
-
delayed_insert_threads
>=
max_connections
+
1
||
abort_loop
)
{
DBUG_PRINT
(
"error"
,(
"
t
oo many connections"
));
DBUG_PRINT
(
"error"
,(
"
T
oo many connections"
));
close_connection
(
net
,
ER_CON_COUNT_ERROR
);
delete
thd
;
DBUG_VOID_RETURN
;
...
...
@@ -2372,43 +2373,48 @@ pthread_handler_decl(handle_connections_namedpipes,arg)
******************************************************************************/
enum
options
{
OPT_ISAM_LOG
=
256
,
OPT_SKIP_NEW
,
OPT_SKIP_GRANT
,
OPT_SKIP_LOCK
,
OPT_ENABLE_LOCK
,
OPT_USE_LOCKING
,
OPT_SOCKET
,
OPT_UPDATE_LOG
,
OPT_BIN_LOG
,
OPT_SKIP_RESOLVE
,
OPT_SKIP_NETWORKING
,
OPT_BIN_LOG_INDEX
,
OPT_BIND_ADDRESS
,
OPT_PID_FILE
,
OPT_SKIP_PRIOR
,
OPT_BIG_TABLES
,
OPT_STANDALONE
,
OPT_ONE_THREAD
,
OPT_CONSOLE
,
OPT_LOW_PRIORITY_UPDATES
,
OPT_SKIP_HOST_CACHE
,
OPT_LONG_FORMAT
,
OPT_FLUSH
,
OPT_SAFE
,
OPT_BOOTSTRAP
,
OPT_SKIP_SHOW_DB
,
OPT_TABLE_TYPE
,
OPT_INIT_FILE
,
OPT_DELAY_KEY_WRITE
,
OPT_SLOW_QUERY_LOG
,
OPT_SKIP_DELAY_KEY_WRITE
,
OPT_CHARSETS_DIR
,
OPT_BDB_HOME
,
OPT_BDB_LOG
,
OPT_BDB_TMP
,
OPT_BDB_NOSYNC
,
OPT_BDB_LOCK
,
OPT_BDB_SKIP
,
OPT_BDB_NO_RECOVER
,
OPT_BDB_SHARED
,
OPT_MASTER_HOST
,
OPT_MASTER_USER
,
OPT_MASTER_PASSWORD
,
OPT_MASTER_PORT
,
OPT_MASTER_INFO_FILE
,
OPT_MASTER_CONNECT_RETRY
,
OPT_SQL_BIN_UPDATE_SAME
,
OPT_REPLICATE_DO_DB
,
OPT_REPLICATE_IGNORE_DB
,
OPT_LOG_SLAVE_UPDATES
,
OPT_BINLOG_DO_DB
,
OPT_BINLOG_IGNORE_DB
,
OPT_WANT_CORE
,
OPT_SKIP_CONCURRENT_INSERT
,
OPT_MEMLOCK
,
OPT_MYISAM_RECOVER
,
OPT_REPLICATE_REWRITE_DB
,
OPT_SERVER_ID
,
OPT_SKIP_SLAVE_START
,
OPT_SKIP_INNOBASE
,
OPT_SAFEMALLOC_MEM_LIMIT
,
OPT_REPLICATE_DO_TABLE
,
OPT_REPLICATE_IGNORE_TABLE
,
OPT_REPLICATE_WILD_DO_TABLE
,
OPT_REPLICATE_WILD_IGNORE_TABLE
,
OPT_DISCONNECT_SLAVE_EVENT_COUNT
,
OPT_ABORT_SLAVE_EVENT_COUNT
,
OPT_INNOBASE_DATA_HOME_DIR
,
OPT_INNOBASE_DATA_FILE_PATH
,
OPT_INNOBASE_LOG_GROUP_HOME_DIR
,
OPT_INNOBASE_LOG_ARCH_DIR
,
OPT_INNOBASE_LOG_ARCHIVE
,
OPT_INNOBASE_FLUSH_LOG_AT_TRX_COMMIT
,
OPT_SAFE_SHOW_DB
,
OPT_ISAM_LOG
=
256
,
OPT_SKIP_NEW
,
OPT_SKIP_GRANT
,
OPT_SKIP_LOCK
,
OPT_ENABLE_LOCK
,
OPT_USE_LOCKING
,
OPT_SOCKET
,
OPT_UPDATE_LOG
,
OPT_BIN_LOG
,
OPT_SKIP_RESOLVE
,
OPT_SKIP_NETWORKING
,
OPT_BIN_LOG_INDEX
,
OPT_BIND_ADDRESS
,
OPT_PID_FILE
,
OPT_SKIP_PRIOR
,
OPT_BIG_TABLES
,
OPT_STANDALONE
,
OPT_ONE_THREAD
,
OPT_CONSOLE
,
OPT_LOW_PRIORITY_UPDATES
,
OPT_SKIP_HOST_CACHE
,
OPT_LONG_FORMAT
,
OPT_FLUSH
,
OPT_SAFE
,
OPT_BOOTSTRAP
,
OPT_SKIP_SHOW_DB
,
OPT_TABLE_TYPE
,
OPT_INIT_FILE
,
OPT_DELAY_KEY_WRITE
,
OPT_SLOW_QUERY_LOG
,
OPT_SKIP_DELAY_KEY_WRITE
,
OPT_CHARSETS_DIR
,
OPT_BDB_HOME
,
OPT_BDB_LOG
,
OPT_BDB_TMP
,
OPT_BDB_NOSYNC
,
OPT_BDB_LOCK
,
OPT_BDB_SKIP
,
OPT_BDB_NO_RECOVER
,
OPT_BDB_SHARED
,
OPT_MASTER_HOST
,
OPT_MASTER_USER
,
OPT_MASTER_PASSWORD
,
OPT_MASTER_PORT
,
OPT_MASTER_INFO_FILE
,
OPT_MASTER_CONNECT_RETRY
,
OPT_SQL_BIN_UPDATE_SAME
,
OPT_REPLICATE_DO_DB
,
OPT_REPLICATE_IGNORE_DB
,
OPT_LOG_SLAVE_UPDATES
,
OPT_BINLOG_DO_DB
,
OPT_BINLOG_IGNORE_DB
,
OPT_WANT_CORE
,
OPT_SKIP_CONCURRENT_INSERT
,
OPT_MEMLOCK
,
OPT_MYISAM_RECOVER
,
OPT_REPLICATE_REWRITE_DB
,
OPT_SERVER_ID
,
OPT_SKIP_SLAVE_START
,
OPT_SKIP_INNOBASE
,
OPT_SAFEMALLOC_MEM_LIMIT
,
OPT_REPLICATE_DO_TABLE
,
OPT_REPLICATE_IGNORE_TABLE
,
OPT_REPLICATE_WILD_DO_TABLE
,
OPT_REPLICATE_WILD_IGNORE_TABLE
,
OPT_DISCONNECT_SLAVE_EVENT_COUNT
,
OPT_ABORT_SLAVE_EVENT_COUNT
,
OPT_INNOBASE_DATA_HOME_DIR
,
OPT_INNOBASE_DATA_FILE_PATH
,
OPT_INNOBASE_LOG_GROUP_HOME_DIR
,
OPT_INNOBASE_LOG_ARCH_DIR
,
OPT_INNOBASE_LOG_ARCHIVE
,
OPT_INNOBASE_FLUSH_LOG_AT_TRX_COMMIT
,
OPT_SAFE_SHOW_DB
,
OPT_GEMINI_SKIP
,
OPT_INNOBASE_SKIP
,
OPT_TEMP_POOL
};
...
...
@@ -2527,7 +2533,7 @@ static struct option long_options[] = {
{
"skip-name-resolve"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_RESOLVE
},
{
"skip-new"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_NEW
},
{
"skip-show-database"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_SHOW_DB
},
{
"skip-slave-start"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_SLAVE_START
},
{
"skip-slave-start"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_SLAVE_START
},
{
"skip-networking"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_NETWORKING
},
{
"skip-thread-priority"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_PRIOR
},
{
"sql-bin-update-same"
,
no_argument
,
0
,
(
int
)
OPT_SQL_BIN_UPDATE_SAME
},
...
...
@@ -2560,11 +2566,11 @@ CHANGEABLE_VAR changeable_vars[] = {
{
"bdb_lock_max"
,
(
long
*
)
&
berkeley_max_lock
,
10000
,
0
,
(
long
)
~
0
,
0
,
1
},
#endif
{
"binlog_cache_size"
,
(
long
*
)
&
binlog_cache_size
,
{
"binlog_cache_size"
,
(
long
*
)
&
binlog_cache_size
,
32
*
1024L
,
IO_SIZE
,
~
0L
,
0
,
IO_SIZE
},
{
"connect_timeout"
,
(
long
*
)
&
connect_timeout
,
CONNECT_TIMEOUT
,
2
,
65535
,
0
,
1
},
{
"delayed_insert_timeout"
,
(
long
*
)
&
delayed_insert_timeout
,
{
"delayed_insert_timeout"
,
(
long
*
)
&
delayed_insert_timeout
,
DELAYED_WAIT_TIMEOUT
,
1
,
~
0L
,
0
,
1
},
{
"delayed_insert_limit"
,
(
long
*
)
&
delayed_insert_limit
,
DELAYED_LIMIT
,
1
,
~
0L
,
0
,
1
},
...
...
@@ -2609,7 +2615,7 @@ CHANGEABLE_VAR changeable_vars[] = {
1024
*
1024L
,
80
,
64
*
1024
*
1024L
,
MALLOC_OVERHEAD
,
1024
},
{
"max_binlog_cache_size"
,
(
long
*
)
&
max_binlog_cache_size
,
~
0L
,
IO_SIZE
,
~
0L
,
0
,
IO_SIZE
},
{
"max_binlog_size"
,
(
long
*
)
&
max_binlog_size
,
{
"max_binlog_size"
,
(
long
*
)
&
max_binlog_size
,
1024
*
1024L
*
1024L
,
1024
,
1024
*
1024L
*
1024L
,
0
,
1
},
{
"max_connections"
,
(
long
*
)
&
max_connections
,
100
,
1
,
16384
,
0
,
1
},
...
...
@@ -3180,7 +3186,7 @@ static void get_options(int argc,char **argv)
if
(
!
p
)
{
fprintf
(
stderr
,
"
bad syntax in replicate-rewrite-db - missing ->
\n
"
);
"
Bad syntax in replicate-rewrite-db - missing '->'!
\n
"
);
exit
(
1
);
}
val
=
p
--
;
...
...
@@ -3188,7 +3194,7 @@ static void get_options(int argc,char **argv)
if
(
p
==
optarg
)
{
fprintf
(
stderr
,
"
bad syntax in replicate-rewrite-db - empty FROM db
\n
"
);
"
Bad syntax in replicate-rewrite-db - empty FROM db!
\n
"
);
exit
(
1
);
}
*
val
=
0
;
...
...
@@ -3197,7 +3203,7 @@ static void get_options(int argc,char **argv)
if
(
!*
val
)
{
fprintf
(
stderr
,
"
bad syntax in replicate-rewrite-db - empty TO db
\n
"
);
"
Bad syntax in replicate-rewrite-db - empty TO db!
\n
"
);
exit
(
1
);
}
...
...
@@ -3224,7 +3230,7 @@ static void get_options(int argc,char **argv)
init_table_rule_hash
(
&
replicate_do_table
,
&
do_table_inited
);
if
(
add_table_rule
(
&
replicate_do_table
,
optarg
))
{
fprintf
(
stderr
,
"
could not add do table rule '%s'
\n
"
,
optarg
);
fprintf
(
stderr
,
"
Could not add do table rule '%s'!
\n
"
,
optarg
);
exit
(
1
);
}
table_rules_on
=
1
;
...
...
@@ -3237,7 +3243,7 @@ static void get_options(int argc,char **argv)
&
wild_do_table_inited
);
if
(
add_wild_table_rule
(
&
replicate_wild_do_table
,
optarg
))
{
fprintf
(
stderr
,
"
could not add do table rule '%s'
\n
"
,
optarg
);
fprintf
(
stderr
,
"
Could not add do table rule '%s'!
\n
"
,
optarg
);
exit
(
1
);
}
table_rules_on
=
1
;
...
...
@@ -3250,7 +3256,7 @@ static void get_options(int argc,char **argv)
&
wild_ignore_table_inited
);
if
(
add_wild_table_rule
(
&
replicate_wild_ignore_table
,
optarg
))
{
fprintf
(
stderr
,
"
could not add do table rule '%s'
\n
"
,
optarg
);
fprintf
(
stderr
,
"
Could not add ignore table rule '%s'!
\n
"
,
optarg
);
exit
(
1
);
}
table_rules_on
=
1
;
...
...
@@ -3262,7 +3268,7 @@ static void get_options(int argc,char **argv)
init_table_rule_hash
(
&
replicate_ignore_table
,
&
ignore_table_inited
);
if
(
add_table_rule
(
&
replicate_ignore_table
,
optarg
))
{
fprintf
(
stderr
,
"
could not add ignore table rule '%s'
\n
"
,
optarg
);
fprintf
(
stderr
,
"
Could not add ignore table rule '%s'!
\n
"
,
optarg
);
exit
(
1
);
}
table_rules_on
=
1
;
...
...
sql/slave.cc
View file @
4c675c92
...
...
@@ -379,7 +379,7 @@ static int create_table_from_dump(THD* thd, NET* net, const char* db,
check_opt
.
init
();
check_opt
.
flags
|=
T_VERY_SILENT
;
check_opt
.
quick
=
1
;
thd
->
proc_info
=
"
r
ebuilding the index on master dump table"
;
thd
->
proc_info
=
"
R
ebuilding the index on master dump table"
;
Vio
*
save_vio
=
thd
->
net
.
vio
;
// we do not want repair() to spam us with messages
// just send them to the error log, and report the failure in case of
...
...
@@ -1027,7 +1027,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
if
(
!
sql_error
)
sql_error
=
ER_UNKNOWN_ERROR
;
sql_print_error
(
"Slave:
e
rror '%s' running load data infile "
,
sql_print_error
(
"Slave:
E
rror '%s' running load data infile "
,
ER
(
sql_error
));
delete
ev
;
free_root
(
&
thd
->
mem_root
,
0
);
...
...
@@ -1106,8 +1106,10 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
}
else
{
sql_print_error
(
"Could not parse log event entry, check the master for binlog corruption
\n
\
This may also be a network problem, or just a bug in the master or slave code"
);
sql_print_error
(
"\
Could not parse log event entry, check the master for binlog corruption
\n
\
This may also be a network problem, or just a bug in the master or slave code.\
"
);
return
1
;
}
return
0
;
...
...
@@ -1173,7 +1175,7 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
goto
err
;
}
thd
->
proc_info
=
"
c
onnecting to master"
;
thd
->
proc_info
=
"
C
onnecting to master"
;
#ifndef DBUG_OFF
sql_print_error
(
"Slave thread initialized"
);
#endif
...
...
@@ -1189,14 +1191,14 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
while
(
!
slave_killed
(
thd
))
{
thd
->
proc_info
=
"
r
equesting binlog dump"
;
thd
->
proc_info
=
"
R
equesting binlog dump"
;
if
(
request_dump
(
mysql
,
&
glob_mi
))
{
sql_print_error
(
"Failed on request_dump()"
);
if
(
slave_killed
(
thd
))
goto
err
;
thd
->
proc_info
=
"
w
aiting to reconnect after a failed dump request"
;
thd
->
proc_info
=
"
W
aiting to reconnect after a failed dump request"
;
if
(
mysql
->
net
.
vio
)
vio_close
(
mysql
->
net
.
vio
);
// first time retry immediately, assuming that we can recover
...
...
@@ -1210,7 +1212,7 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
if
(
slave_killed
(
thd
))
goto
err
;
thd
->
proc_info
=
"
r
econnecting after a failed dump request"
;
thd
->
proc_info
=
"
R
econnecting after a failed dump request"
;
sql_print_error
(
"Slave: failed dump request, reconnecting to \
try again, log '%s' at postion %ld"
,
RPL_LOG_NAME
,
last_failed_pos
=
glob_mi
.
pos
);
...
...
@@ -1223,14 +1225,14 @@ try again, log '%s' at postion %ld", RPL_LOG_NAME,
while
(
!
slave_killed
(
thd
))
{
thd
->
proc_info
=
"
r
eading master update"
;
thd
->
proc_info
=
"
R
eading master update"
;
uint
event_len
=
read_event
(
mysql
,
&
glob_mi
);
if
(
slave_killed
(
thd
))
goto
err
;
if
(
event_len
==
packet_error
)
{
thd
->
proc_info
=
"
w
aiting to reconnect after a failed read"
;
thd
->
proc_info
=
"
W
aiting to reconnect after a failed read"
;
if
(
mysql
->
net
.
vio
)
vio_close
(
mysql
->
net
.
vio
);
if
(
retried_once
)
// punish repeat offender with sleep
...
...
@@ -1240,7 +1242,7 @@ try again, log '%s' at postion %ld", RPL_LOG_NAME,
if
(
slave_killed
(
thd
))
goto
err
;
thd
->
proc_info
=
"
r
econnecting after a failed read"
;
thd
->
proc_info
=
"
R
econnecting after a failed read"
;
sql_print_error
(
"Slave: Failed reading log event, \
reconnecting to retry, log '%s' position %ld"
,
RPL_LOG_NAME
,
last_failed_pos
=
glob_mi
.
pos
);
...
...
@@ -1249,7 +1251,7 @@ reconnecting to retry, log '%s' position %ld", RPL_LOG_NAME,
break
;
}
thd
->
proc_info
=
"
p
rocessing master log event"
;
thd
->
proc_info
=
"
P
rocessing master log event"
;
if
(
exec_event
(
thd
,
&
mysql
->
net
,
&
glob_mi
,
event_len
))
{
sql_print_error
(
"\
...
...
@@ -1303,7 +1305,7 @@ position %ld",
thd
->
query
=
thd
->
db
=
0
;
// extra safety
if
(
mysql
)
mc_mysql_close
(
mysql
);
thd
->
proc_info
=
"
w
aiting for slave mutex on exit"
;
thd
->
proc_info
=
"
W
aiting for slave mutex on exit"
;
pthread_mutex_lock
(
&
LOCK_slave
);
slave_running
=
0
;
abort_slave
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment