mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Merge work:/home/bk/mysql
into mysql.sashanet.com:/home/sasha/src/bk/mysql
This commit is contained in:
commit
0ee9e34a72
37 changed files with 281 additions and 63 deletions
|
@ -425,7 +425,7 @@ extern int my_printf_error _VARARGS((uint my_err, const char *format,
|
||||||
__attribute__ ((format (printf, 2, 4))));
|
__attribute__ ((format (printf, 2, 4))));
|
||||||
extern int my_vsnprintf( char *str, size_t n,
|
extern int my_vsnprintf( char *str, size_t n,
|
||||||
const char *format, va_list ap );
|
const char *format, va_list ap );
|
||||||
|
extern int my_snprintf(char* to, size_t n, const char* fmt, ...);
|
||||||
extern int my_message(uint my_err, const char *str,myf MyFlags);
|
extern int my_message(uint my_err, const char *str,myf MyFlags);
|
||||||
extern int my_message_no_curses(uint my_err, const char *str,myf MyFlags);
|
extern int my_message_no_curses(uint my_err, const char *str,myf MyFlags);
|
||||||
extern int my_message_curses(uint my_err, const char *str,myf MyFlags);
|
extern int my_message_curses(uint my_err, const char *str,myf MyFlags);
|
||||||
|
|
|
@ -198,4 +198,9 @@
|
||||||
#define ER_CRASHED_ON_REPAIR 1195
|
#define ER_CRASHED_ON_REPAIR 1195
|
||||||
#define ER_WARNING_NOT_COMPLETE_ROLLBACK 1196
|
#define ER_WARNING_NOT_COMPLETE_ROLLBACK 1196
|
||||||
#define ER_TRANS_CACHE_FULL 1197
|
#define ER_TRANS_CACHE_FULL 1197
|
||||||
#define ER_ERROR_MESSAGES 198
|
#define ER_SLAVE_MUST_STOP 1198
|
||||||
|
#define ER_SLAVE_NOT_RUNNING 1199
|
||||||
|
#define ER_BAD_SLAVE 1200
|
||||||
|
#define ER_MASTER_INFO 1201
|
||||||
|
#define ER_SLAVE_THREAD 1202
|
||||||
|
#define ER_ERROR_MESSAGES 203
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
File Position Binlog_do_db Binlog_ignore_db
|
File Position Binlog_do_db Binlog_ignore_db
|
||||||
master-bin.001 73
|
master-bin.001 73
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 1 master-bin.001 73 Yes
|
127.0.0.1 root 9306 1 master-bin.001 73 Yes 0 0
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 1 master-bin.001 73 No
|
127.0.0.1 root 9306 1 master-bin.001 73 No 0 0
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 1 master-bin.001 73 Yes
|
127.0.0.1 root 9306 1 master-bin.001 73 Yes 0 0
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 1 master-bin.001 173 Yes
|
127.0.0.1 root 9306 1 master-bin.001 173 Yes 0 0
|
||||||
File Position Binlog_do_db Binlog_ignore_db
|
File Position Binlog_do_db Binlog_ignore_db
|
||||||
master-bin.001 73
|
master-bin.001 73
|
||||||
n
|
n
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
File Position Binlog_do_db Binlog_ignore_db
|
File Position Binlog_do_db Binlog_ignore_db
|
||||||
master-bin.001 73
|
master-bin.001 73
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
0 0 0 No
|
0 0 0 No 0 0
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 test 3306 60 4 No
|
127.0.0.1 test 3306 60 4 No 0 0
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 60 4 No
|
127.0.0.1 root 9306 60 4 No 0 0
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 60 master-bin.001 73 Yes
|
127.0.0.1 root 9306 60 master-bin.001 73 Yes 0 0
|
||||||
n
|
n
|
||||||
10
|
10
|
||||||
45
|
45
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 60 master-bin.001 216 Yes
|
127.0.0.1 root 9306 60 master-bin.001 216 Yes 0 0
|
||||||
s
|
s
|
||||||
Could not break slave
|
Could not break slave
|
||||||
Tried hard
|
Tried hard
|
||||||
|
@ -7,12 +7,21 @@ Log_name
|
||||||
master-bin.001
|
master-bin.001
|
||||||
master-bin.002
|
master-bin.002
|
||||||
master-bin.003
|
master-bin.003
|
||||||
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
|
127.0.0.1 root 9306 60 master-bin.003 129 Yes 1062 error 'Duplicate entry '1234' for key 1' on query 'insert into t2 values(1234)' 0
|
||||||
Log_name
|
Log_name
|
||||||
master-bin.003
|
master-bin.003
|
||||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||||
127.0.0.1 root 9306 60 master-bin.003 128 Yes
|
127.0.0.1 root 9306 60 master-bin.003 184 Yes 0 0
|
||||||
m
|
m
|
||||||
34
|
34
|
||||||
|
65
|
||||||
67
|
67
|
||||||
123
|
123
|
||||||
65
|
1234
|
||||||
|
Log_name
|
||||||
|
master-bin.003
|
||||||
|
master-bin.004
|
||||||
|
master-bin.005
|
||||||
|
count(*)
|
||||||
|
100
|
||||||
|
|
1
mysql-test/t/rpl000016-master.opt
Normal file
1
mysql-test/t/rpl000016-master.opt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-O max_binlog_size=2048
|
|
@ -26,14 +26,33 @@ select * from t1;
|
||||||
connection master;
|
connection master;
|
||||||
flush logs;
|
flush logs;
|
||||||
drop table if exists t2;
|
drop table if exists t2;
|
||||||
create table t2(m int);
|
create table t2(m int not null primary key);
|
||||||
insert into t2 values (34),(67),(123);
|
insert into t2 values (34),(67),(123);
|
||||||
|
save_master_pos;
|
||||||
flush logs;
|
flush logs;
|
||||||
show master logs;
|
show master logs;
|
||||||
|
#now lets make some duplicate key mess and see if we can recover from it
|
||||||
|
#first insert a value on the slave
|
||||||
|
connection slave;
|
||||||
|
sync_with_master;
|
||||||
|
insert into t2 values(1234);
|
||||||
|
#same value on the master
|
||||||
|
connection master;
|
||||||
|
save_master_pos;
|
||||||
|
insert into t2 values(1234);
|
||||||
|
connection slave;
|
||||||
|
sync_with_master;
|
||||||
|
#the slave may have already stopped, so we ignore the error
|
||||||
|
!slave stop;
|
||||||
|
#restart slave skipping one event
|
||||||
|
set sql_slave_skip_counter=1;
|
||||||
|
slave start;
|
||||||
|
connection master;
|
||||||
save_master_pos;
|
save_master_pos;
|
||||||
#let slave catch up
|
#let slave catch up
|
||||||
connection slave;
|
connection slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
|
show slave status;
|
||||||
connection master;
|
connection master;
|
||||||
purge master logs to 'master-bin.003';
|
purge master logs to 'master-bin.003';
|
||||||
show master logs;
|
show master logs;
|
||||||
|
@ -43,6 +62,23 @@ connection slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
show slave status;
|
show slave status;
|
||||||
select * from t2;
|
select * from t2;
|
||||||
drop table if exists t1,t2;
|
|
||||||
connection master;
|
connection master;
|
||||||
drop table if exists t1,t2;
|
let $1=100;
|
||||||
|
drop table if exists t3;
|
||||||
|
create table t3 (n int);
|
||||||
|
while ($1)
|
||||||
|
{
|
||||||
|
insert into t3 values(4);
|
||||||
|
dec $1;
|
||||||
|
}
|
||||||
|
show master logs;
|
||||||
|
save_master_pos;
|
||||||
|
connection slave;
|
||||||
|
sync_with_master;
|
||||||
|
select count(*) from t3 where n = 4;
|
||||||
|
#clean up
|
||||||
|
connection master;
|
||||||
|
drop table if exists t1,t2,t3;
|
||||||
|
save_master_pos;
|
||||||
|
connection slave;
|
||||||
|
sync_with_master;
|
||||||
|
|
|
@ -21,6 +21,13 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <m_ctype.h>
|
#include <m_ctype.h>
|
||||||
|
|
||||||
|
int my_snprintf(char* to, size_t n, const char* fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start(args,fmt);
|
||||||
|
return my_vsnprintf(to, n, fmt, args);
|
||||||
|
}
|
||||||
|
|
||||||
int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
|
int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
|
||||||
{
|
{
|
||||||
char *start=to, *end=to+n-1;
|
char *start=to, *end=to+n-1;
|
||||||
|
|
|
@ -472,8 +472,8 @@ int main(int argc,char **argv)
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
MY_INIT(argv[0]);
|
MY_INIT(argv[0]);
|
||||||
start_value=4424889L; best_t1=3207460L; best_t2=481534L; best_type=0; /* mode=4451 add=8 type: 0 */
|
start_value=5315771L; best_t1=6916833L; best_t2=3813748L; best_type=3; /* mode=5839 add=5 type: 0 */
|
||||||
if (get_options(argc,(char **) argv))
|
if (get_options(argc,(char **) argv))
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
make_max_length_table();
|
make_max_length_table();
|
||||||
|
|
|
@ -283,6 +283,7 @@ static SYMBOL symbols[] = {
|
||||||
{ "SQL_QUOTE_SHOW_CREATE",SYM(SQL_QUOTE_SHOW_CREATE), 0, 0},
|
{ "SQL_QUOTE_SHOW_CREATE",SYM(SQL_QUOTE_SHOW_CREATE), 0, 0},
|
||||||
{ "SQL_SAFE_UPDATES", SYM(SQL_SAFE_UPDATES),0,0},
|
{ "SQL_SAFE_UPDATES", SYM(SQL_SAFE_UPDATES),0,0},
|
||||||
{ "SQL_SELECT_LIMIT", SYM(SQL_SELECT_LIMIT),0,0},
|
{ "SQL_SELECT_LIMIT", SYM(SQL_SELECT_LIMIT),0,0},
|
||||||
|
{ "SQL_SLAVE_SKIP_COUNTER", SYM(SQL_SLAVE_SKIP_COUNTER),0,0},
|
||||||
{ "SQL_SMALL_RESULT", SYM(SQL_SMALL_RESULT),0,0},
|
{ "SQL_SMALL_RESULT", SYM(SQL_SMALL_RESULT),0,0},
|
||||||
{ "SQL_WARNINGS", SYM(SQL_WARNINGS),0,0},
|
{ "SQL_WARNINGS", SYM(SQL_WARNINGS),0,0},
|
||||||
{ "STRAIGHT_JOIN", SYM(STRAIGHT_JOIN),0,0},
|
{ "STRAIGHT_JOIN", SYM(STRAIGHT_JOIN),0,0},
|
||||||
|
|
18
sql/log.cc
18
sql/log.cc
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
MYSQL_LOG mysql_log,mysql_update_log,mysql_slow_log,mysql_bin_log;
|
MYSQL_LOG mysql_log,mysql_update_log,mysql_slow_log,mysql_bin_log;
|
||||||
extern I_List<i_string> binlog_do_db, binlog_ignore_db;
|
extern I_List<i_string> binlog_do_db, binlog_ignore_db;
|
||||||
|
extern ulong max_binlog_size;
|
||||||
|
|
||||||
static bool test_if_number(const char *str,
|
static bool test_if_number(const char *str,
|
||||||
long *res, bool allow_wildcards);
|
long *res, bool allow_wildcards);
|
||||||
|
@ -609,6 +610,8 @@ bool MYSQL_LOG::write(Query_log_event* event_info)
|
||||||
{
|
{
|
||||||
/* In most cases this is only called if 'is_open()' is true */
|
/* In most cases this is only called if 'is_open()' is true */
|
||||||
bool error=0;
|
bool error=0;
|
||||||
|
bool should_rotate = 0;
|
||||||
|
|
||||||
if (!inited) // Can't use mutex if not init
|
if (!inited) // Can't use mutex if not init
|
||||||
return 0;
|
return 0;
|
||||||
VOID(pthread_mutex_lock(&LOCK_log));
|
VOID(pthread_mutex_lock(&LOCK_log));
|
||||||
|
@ -655,7 +658,7 @@ bool MYSQL_LOG::write(Query_log_event* event_info)
|
||||||
file == &log_file && flush_io_cache(file))
|
file == &log_file && flush_io_cache(file))
|
||||||
goto err;
|
goto err;
|
||||||
error=0;
|
error=0;
|
||||||
|
should_rotate = (file == &log_file && my_b_tell(file) >= max_binlog_size);
|
||||||
err:
|
err:
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
@ -669,6 +672,8 @@ err:
|
||||||
VOID(pthread_cond_broadcast(&COND_binlog_update));
|
VOID(pthread_cond_broadcast(&COND_binlog_update));
|
||||||
}
|
}
|
||||||
VOID(pthread_mutex_unlock(&LOCK_log));
|
VOID(pthread_mutex_unlock(&LOCK_log));
|
||||||
|
if(should_rotate)
|
||||||
|
new_file();
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -682,6 +687,7 @@ bool MYSQL_LOG::write(IO_CACHE *cache)
|
||||||
{
|
{
|
||||||
VOID(pthread_mutex_lock(&LOCK_log));
|
VOID(pthread_mutex_lock(&LOCK_log));
|
||||||
bool error=1;
|
bool error=1;
|
||||||
|
|
||||||
if (is_open())
|
if (is_open())
|
||||||
{
|
{
|
||||||
uint length;
|
uint length;
|
||||||
|
@ -722,7 +728,8 @@ err:
|
||||||
else
|
else
|
||||||
VOID(pthread_cond_broadcast(&COND_binlog_update));
|
VOID(pthread_cond_broadcast(&COND_binlog_update));
|
||||||
|
|
||||||
VOID(pthread_mutex_unlock(&LOCK_log));
|
VOID(pthread_mutex_unlock(&LOCK_log));
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -730,6 +737,8 @@ err:
|
||||||
bool MYSQL_LOG::write(Load_log_event* event_info)
|
bool MYSQL_LOG::write(Load_log_event* event_info)
|
||||||
{
|
{
|
||||||
bool error=0;
|
bool error=0;
|
||||||
|
bool should_rotate = 0;
|
||||||
|
|
||||||
if (inited)
|
if (inited)
|
||||||
{
|
{
|
||||||
VOID(pthread_mutex_lock(&LOCK_log));
|
VOID(pthread_mutex_lock(&LOCK_log));
|
||||||
|
@ -745,11 +754,16 @@ bool MYSQL_LOG::write(Load_log_event* event_info)
|
||||||
sql_print_error(ER(ER_ERROR_ON_WRITE), name, errno);
|
sql_print_error(ER(ER_ERROR_ON_WRITE), name, errno);
|
||||||
error=write_error=1;
|
error=write_error=1;
|
||||||
}
|
}
|
||||||
|
should_rotate = (my_b_tell(&log_file) >= max_binlog_size);
|
||||||
VOID(pthread_cond_broadcast(&COND_binlog_update));
|
VOID(pthread_cond_broadcast(&COND_binlog_update));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VOID(pthread_mutex_unlock(&LOCK_log));
|
VOID(pthread_mutex_unlock(&LOCK_log));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(should_rotate)
|
||||||
|
new_file();
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -238,7 +238,7 @@ ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
|
||||||
query_buff_size, lower_case_table_names, mysqld_net_retry_count,
|
query_buff_size, lower_case_table_names, mysqld_net_retry_count,
|
||||||
net_interactive_timeout, slow_launch_time = 2L,
|
net_interactive_timeout, slow_launch_time = 2L,
|
||||||
net_read_timeout,net_write_timeout,slave_open_temp_tables=0,
|
net_read_timeout,net_write_timeout,slave_open_temp_tables=0,
|
||||||
open_files_limit=0;
|
open_files_limit=0, max_binlog_size;
|
||||||
ulong thread_cache_size=0, binlog_cache_size=0, max_binlog_cache_size=0;
|
ulong thread_cache_size=0, binlog_cache_size=0, max_binlog_cache_size=0;
|
||||||
volatile ulong cached_thread_count=0;
|
volatile ulong cached_thread_count=0;
|
||||||
|
|
||||||
|
@ -2571,6 +2571,8 @@ CHANGEABLE_VAR changeable_vars[] = {
|
||||||
1024*1024L, 80, 64*1024*1024L, MALLOC_OVERHEAD, 1024 },
|
1024*1024L, 80, 64*1024*1024L, MALLOC_OVERHEAD, 1024 },
|
||||||
{ "max_binlog_cache_size", (long*) &max_binlog_cache_size,
|
{ "max_binlog_cache_size", (long*) &max_binlog_cache_size,
|
||||||
~0L, IO_SIZE, ~0L, 0, IO_SIZE },
|
~0L, IO_SIZE, ~0L, 0, IO_SIZE },
|
||||||
|
{ "max_binlog_size", (long*) &max_binlog_size,
|
||||||
|
1024*1024L*1024L, 1024, 1024*1024L*1024L, 0, 1 },
|
||||||
{ "max_connections", (long*) &max_connections,
|
{ "max_connections", (long*) &max_connections,
|
||||||
100, 1, 16384, 0, 1 },
|
100, 1, 16384, 0, 1 },
|
||||||
{ "max_connect_errors", (long*) &max_connect_errors,
|
{ "max_connect_errors", (long*) &max_connect_errors,
|
||||||
|
@ -2672,7 +2674,8 @@ struct show_var_st init_vars[]= {
|
||||||
{"low_priority_updates", (char*) &low_priority_updates, SHOW_BOOL},
|
{"low_priority_updates", (char*) &low_priority_updates, SHOW_BOOL},
|
||||||
{"lower_case_table_names", (char*) &lower_case_table_names, SHOW_LONG},
|
{"lower_case_table_names", (char*) &lower_case_table_names, SHOW_LONG},
|
||||||
{"max_allowed_packet", (char*) &max_allowed_packet, SHOW_LONG},
|
{"max_allowed_packet", (char*) &max_allowed_packet, SHOW_LONG},
|
||||||
{"max_binlog_cache_size", (char*) &max_binlog_cache_size, SHOW_LONG},
|
{"max_binlog_cache_size", (char*) &max_binlog_cache_size, SHOW_LONG},
|
||||||
|
{"max_binlog_size", (char*) &max_binlog_size, SHOW_LONG},
|
||||||
{"max_connections", (char*) &max_connections, SHOW_LONG},
|
{"max_connections", (char*) &max_connections, SHOW_LONG},
|
||||||
{"max_connect_errors", (char*) &max_connect_errors, SHOW_LONG},
|
{"max_connect_errors", (char*) &max_connect_errors, SHOW_LONG},
|
||||||
{"max_delayed_threads", (char*) &max_insert_delayed_threads, SHOW_LONG},
|
{"max_delayed_threads", (char*) &max_insert_delayed_threads, SHOW_LONG},
|
||||||
|
|
|
@ -208,3 +208,8 @@
|
||||||
"Tabulka '%-.64s' je ozna-Bèena jako poru¹ená a poslední (automatická?) oprava se nezdaøila",-A
|
"Tabulka '%-.64s' je ozna-Bèena jako poru¹ená a poslední (automatická?) oprava se nezdaøila",-A
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -202,3 +202,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -187,7 +187,7 @@
|
||||||
"Got error %d during CHECKPOINT",
|
"Got error %d during CHECKPOINT",
|
||||||
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)",
|
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)",
|
||||||
"The handler for the table does not support binary table dump",
|
"The handler for the table does not support binary table dump",
|
||||||
"Binlog closed while trying to FLUSH MASTER",
|
"Binlog closed, cannot RESET MASTER",
|
||||||
"Failed rebuilding the index of dumped table '%-.64s'",
|
"Failed rebuilding the index of dumped table '%-.64s'",
|
||||||
"Error from master: '%-.64s'",
|
"Error from master: '%-.64s'",
|
||||||
"Net error reading from master",
|
"Net error reading from master",
|
||||||
|
@ -199,3 +199,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -203,3 +203,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -202,3 +202,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -201,3 +201,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"La tabella '%-.64s' e' segnalata come rovinata e l'ultima ricostruzione (automatica?) e' fallita",
|
"La tabella '%-.64s' e' segnalata come rovinata e l'ultima ricostruzione (automatica?) e' fallita",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -201,3 +201,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -201,3 +201,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -201,3 +201,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -203,3 +203,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -203,3 +203,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -179,7 +179,7 @@
|
||||||
"Результат содержит больше одной строки",
|
"Результат содержит больше одной строки",
|
||||||
"Таблица этого типа обязана иметь PRIMARY KEY",
|
"Таблица этого типа обязана иметь PRIMARY KEY",
|
||||||
"Эта копия MySQL скомпилирована без поддержки RAID",
|
"Эта копия MySQL скомпилирована без поддержки RAID",
|
||||||
"You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
|
"MySQL работает в режиме защиты от дураков (safe_mode) - не могу UPDATE без WHERE с каким-небудь KEY",
|
||||||
"Индекс '%-.64s' не найден в таблице '%-.64s'",
|
"Индекс '%-.64s' не найден в таблице '%-.64s'",
|
||||||
"Не могу открыть таблицу",
|
"Не могу открыть таблицу",
|
||||||
"Данный тип таблиц не поддерживает check/repair",
|
"Данный тип таблиц не поддерживает check/repair",
|
||||||
|
@ -190,15 +190,20 @@
|
||||||
"Ошибка %d во время CHECKPOINT",
|
"Ошибка %d во время CHECKPOINT",
|
||||||
"Прерванное соединение %ld к базе данных: '%-.64s' пользователь: '%-.32s' хост: `%-.64s' (%-.64s)",
|
"Прерванное соединение %ld к базе данных: '%-.64s' пользователь: '%-.32s' хост: `%-.64s' (%-.64s)",
|
||||||
"Этот тип таблиц не поддерживает binary table dump",
|
"Этот тип таблиц не поддерживает binary table dump",
|
||||||
"Binlog closed while trying to FLUSH MASTER",
|
"Репликационный лог закрыт, не могу сделать RESET MASTER",
|
||||||
"Failed rebuilding the index of dumped table '%-.64s'",
|
"Ошибка при восстановлении индекса перекачанной таблицы '%-.64s'",
|
||||||
"Error from master: '%-.64s'",
|
"Ошибка на мастере: '%-.64s'",
|
||||||
"Net error reading from master",
|
"Сетевая ошибка при чтении с мастера",
|
||||||
"Net error writing to master",
|
"Сетевая ошибка при писании мастеру",
|
||||||
"FULLTEXT индекс, соответствующий заданному списку столбцов, не найден",
|
"FULLTEXT индекс, соответствующий заданному списку столбцов, не найден",
|
||||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
"Не могу выполнить комманду из-за активных locked таблиц или активной транзакции",
|
||||||
"Неизвестная системная переменная '%-.64'",
|
"Неизвестная системная переменная '%-.64'",
|
||||||
"Таблица '%-.64s' помечена как испорченная и должна быть исправлена",
|
"Таблица '%-.64s' помечена как испорченная и должна быть исправлена",
|
||||||
"Таблица '%-.64s' помечена как испорченная и последняя попытка исправления (автоматическая?) не удалась",
|
"Таблица '%-.64s' помечена как испорченная и последняя попытка исправления (автоматическая?) не удалась",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Предупреждение: некоторые нетранзакционные таблицы не подчиняются ROLLBACK",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Многозапросная транзакция требует увеличения 'max_binlog_cache_size' - увеличте эту переменную и попробуйте еще раз",
|
||||||
|
"Эта операция невозможна с активным slave, надо SLAVE STOP",
|
||||||
|
"Эта операция невозможна с пассивным slave, надо SLAVE START",
|
||||||
|
"Этот сервер не slave, исправьте в конфигурационном файле или коммандой CHANGE MASTER TO",
|
||||||
|
"Не получилось инициализировать структуру master info, проверте persmissions на файле master.info",
|
||||||
|
"Не могу создать процесс SLAVE, проверьте системные ресурсы",
|
||||||
|
|
|
@ -207,3 +207,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -200,3 +200,8 @@
|
||||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
|
@ -199,3 +199,8 @@
|
||||||
"Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades",
|
"Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades",
|
||||||
"Warning: Några icke transaktionella tabeller kunde inte återställas vid ROLLBACK",
|
"Warning: Några icke transaktionella tabeller kunde inte återställas vid ROLLBACK",
|
||||||
"Transaktionen krävde mera än 'max_binlog_cache_size' minne. Utöka denna mysqld variabel och försök på nytt",
|
"Transaktionen krävde mera än 'max_binlog_cache_size' minne. Utöka denna mysqld variabel och försök på nytt",
|
||||||
|
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||||
|
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||||
|
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||||
|
"Could not initialize master info structure, check permisions on master.info",
|
||||||
|
"Could not create slave thread, check system resources",
|
||||||
|
|
39
sql/slave.cc
39
sql/slave.cc
|
@ -34,10 +34,13 @@ DYNAMIC_ARRAY replicate_wild_do_table, replicate_wild_ignore_table;
|
||||||
bool do_table_inited = 0, ignore_table_inited = 0;
|
bool do_table_inited = 0, ignore_table_inited = 0;
|
||||||
bool wild_do_table_inited = 0, wild_ignore_table_inited = 0;
|
bool wild_do_table_inited = 0, wild_ignore_table_inited = 0;
|
||||||
bool table_rules_on = 0;
|
bool table_rules_on = 0;
|
||||||
|
uint32 slave_skip_counter = 0;
|
||||||
|
static TABLE* save_temporary_tables = 0;
|
||||||
// when slave thread exits, we need to remember the temporary tables so we
|
// when slave thread exits, we need to remember the temporary tables so we
|
||||||
// can re-use them on slave start
|
// can re-use them on slave start
|
||||||
static TABLE* save_temporary_tables = 0;
|
|
||||||
|
static int last_slave_errno = 0;
|
||||||
|
static char last_slave_error[1024] = "";
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
int disconnect_slave_event_count = 0, abort_slave_event_count = 0;
|
int disconnect_slave_event_count = 0, abort_slave_event_count = 0;
|
||||||
static int events_till_disconnect = -1, events_till_abort = -1;
|
static int events_till_disconnect = -1, events_till_abort = -1;
|
||||||
|
@ -570,6 +573,9 @@ int show_master_info(THD* thd)
|
||||||
field_list.push_back(new Item_empty_string("Slave_Running", 3));
|
field_list.push_back(new Item_empty_string("Slave_Running", 3));
|
||||||
field_list.push_back(new Item_empty_string("Replicate_do_db", 20));
|
field_list.push_back(new Item_empty_string("Replicate_do_db", 20));
|
||||||
field_list.push_back(new Item_empty_string("Replicate_ignore_db", 20));
|
field_list.push_back(new Item_empty_string("Replicate_ignore_db", 20));
|
||||||
|
field_list.push_back(new Item_empty_string("Last_errno", 4));
|
||||||
|
field_list.push_back(new Item_empty_string("Last_error", 20));
|
||||||
|
field_list.push_back(new Item_empty_string("Skip_counter", 12));
|
||||||
if(send_fields(thd, field_list, 1))
|
if(send_fields(thd, field_list, 1))
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
|
|
||||||
|
@ -589,6 +595,9 @@ int show_master_info(THD* thd)
|
||||||
pthread_mutex_unlock(&LOCK_slave);
|
pthread_mutex_unlock(&LOCK_slave);
|
||||||
net_store_data(packet, &replicate_do_db);
|
net_store_data(packet, &replicate_do_db);
|
||||||
net_store_data(packet, &replicate_ignore_db);
|
net_store_data(packet, &replicate_ignore_db);
|
||||||
|
net_store_data(packet, (uint32)last_slave_errno);
|
||||||
|
net_store_data(packet, last_slave_error);
|
||||||
|
net_store_data(packet, slave_skip_counter);
|
||||||
|
|
||||||
if (my_net_write(&thd->net, (char*)thd->packet.ptr(), packet->length()))
|
if (my_net_write(&thd->net, (char*)thd->packet.ptr(), packet->length()))
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
|
@ -833,13 +842,14 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
||||||
if (ev)
|
if (ev)
|
||||||
{
|
{
|
||||||
int type_code = ev->get_type_code();
|
int type_code = ev->get_type_code();
|
||||||
if (ev->server_id == ::server_id)
|
if (ev->server_id == ::server_id || slave_skip_counter)
|
||||||
{
|
{
|
||||||
if(type_code == LOAD_EVENT)
|
if(type_code == LOAD_EVENT)
|
||||||
skip_load_data_infile(net);
|
skip_load_data_infile(net);
|
||||||
|
|
||||||
mi->inc_pos(event_len);
|
mi->inc_pos(event_len);
|
||||||
flush_master_info(mi);
|
flush_master_info(mi);
|
||||||
|
--slave_skip_counter;
|
||||||
delete ev;
|
delete ev;
|
||||||
return 0; // avoid infinite update loops
|
return 0; // avoid infinite update loops
|
||||||
}
|
}
|
||||||
|
@ -853,6 +863,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
||||||
{
|
{
|
||||||
Query_log_event* qev = (Query_log_event*)ev;
|
Query_log_event* qev = (Query_log_event*)ev;
|
||||||
int q_len = qev->q_len;
|
int q_len = qev->q_len;
|
||||||
|
int expected_error,actual_error = 0;
|
||||||
init_sql_alloc(&thd->mem_root, 8192,0);
|
init_sql_alloc(&thd->mem_root, 8192,0);
|
||||||
thd->db = rewrite_db((char*)qev->db);
|
thd->db = rewrite_db((char*)qev->db);
|
||||||
if (db_ok(thd->db, replicate_do_db, replicate_ignore_db))
|
if (db_ok(thd->db, replicate_do_db, replicate_ignore_db))
|
||||||
|
@ -869,19 +880,22 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
||||||
thd->net.last_error[0] = 0;
|
thd->net.last_error[0] = 0;
|
||||||
thd->slave_proxy_id = qev->thread_id; // for temp tables
|
thd->slave_proxy_id = qev->thread_id; // for temp tables
|
||||||
mysql_parse(thd, thd->query, q_len);
|
mysql_parse(thd, thd->query, q_len);
|
||||||
int expected_error,actual_error;
|
|
||||||
if ((expected_error = qev->error_code) !=
|
if ((expected_error = qev->error_code) !=
|
||||||
(actual_error = thd->net.last_errno) && expected_error)
|
(actual_error = thd->net.last_errno) && expected_error)
|
||||||
{
|
{
|
||||||
sql_print_error("Slave: did not get the expected error\
|
const char* errmsg = "Slave: did not get the expected error\
|
||||||
running query from master - expected: '%s', got '%s'",
|
running query from master - expected: '%s', got '%s'";
|
||||||
ER(expected_error),
|
sql_print_error(errmsg, ER(expected_error),
|
||||||
actual_error ? ER(actual_error):"no error"
|
actual_error ? thd->net.last_error:"no error"
|
||||||
);
|
);
|
||||||
thd->query_error = 1;
|
thd->query_error = 1;
|
||||||
}
|
}
|
||||||
else if (expected_error == actual_error)
|
else if (expected_error == actual_error)
|
||||||
thd->query_error = 0;
|
{
|
||||||
|
thd->query_error = 0;
|
||||||
|
*last_slave_error = 0;
|
||||||
|
last_slave_errno = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
thd->db = 0; // prevent db from being freed
|
thd->db = 0; // prevent db from being freed
|
||||||
thd->query = 0; // just to be sure
|
thd->query = 0; // just to be sure
|
||||||
|
@ -893,6 +907,13 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
||||||
{
|
{
|
||||||
sql_print_error("Slave: error running query '%s' ",
|
sql_print_error("Slave: error running query '%s' ",
|
||||||
qev->query);
|
qev->query);
|
||||||
|
last_slave_errno = actual_error ? actual_error : -1;
|
||||||
|
my_snprintf(last_slave_error, sizeof(last_slave_error),
|
||||||
|
"error '%s' on query '%s'",
|
||||||
|
actual_error ? thd->net.last_error :
|
||||||
|
"unexpected success or fatal error",
|
||||||
|
qev->query
|
||||||
|
);
|
||||||
free_root(&thd->mem_root,0);
|
free_root(&thd->mem_root,0);
|
||||||
delete ev;
|
delete ev;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -93,6 +93,11 @@ extern bool opt_log_slave_updates ;
|
||||||
pthread_handler_decl(handle_slave,arg);
|
pthread_handler_decl(handle_slave,arg);
|
||||||
extern bool volatile abort_loop, abort_slave;
|
extern bool volatile abort_loop, abort_slave;
|
||||||
extern bool slave_running;
|
extern bool slave_running;
|
||||||
|
extern uint32 slave_skip_counter;
|
||||||
|
// needed for problems when slave stops and
|
||||||
|
// we want to restart it skipping one or more events in the master log that
|
||||||
|
// have caused errors, and have been manually applied by DBA already
|
||||||
|
|
||||||
extern pthread_t slave_real_id;
|
extern pthread_t slave_real_id;
|
||||||
extern MASTER_INFO glob_mi;
|
extern MASTER_INFO glob_mi;
|
||||||
extern HASH replicate_do_table, replicate_ignore_table;
|
extern HASH replicate_do_table, replicate_ignore_table;
|
||||||
|
|
|
@ -519,34 +519,34 @@ int start_slave(THD* thd , bool net_report)
|
||||||
{
|
{
|
||||||
if(!thd) thd = current_thd;
|
if(!thd) thd = current_thd;
|
||||||
NET* net = &thd->net;
|
NET* net = &thd->net;
|
||||||
const char* err = 0;
|
int slave_errno = 0;
|
||||||
if (check_access(thd, PROCESS_ACL, any_db))
|
if (check_access(thd, PROCESS_ACL, any_db))
|
||||||
return 1;
|
return 1;
|
||||||
pthread_mutex_lock(&LOCK_slave);
|
pthread_mutex_lock(&LOCK_slave);
|
||||||
if(!slave_running)
|
if(!slave_running)
|
||||||
{
|
{
|
||||||
if(init_master_info(&glob_mi))
|
if(init_master_info(&glob_mi))
|
||||||
err = "Could not initialize master info";
|
slave_errno = ER_MASTER_INFO;
|
||||||
else if(server_id_supplied && *glob_mi.host)
|
else if(server_id_supplied && *glob_mi.host)
|
||||||
{
|
{
|
||||||
pthread_t hThread;
|
pthread_t hThread;
|
||||||
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
|
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
|
||||||
{
|
{
|
||||||
err = "cannot create slave thread";
|
slave_errno = ER_SLAVE_THREAD;
|
||||||
}
|
}
|
||||||
while(!slave_running) // slave might already be running by now
|
while(!slave_running) // slave might already be running by now
|
||||||
pthread_cond_wait(&COND_slave_start, &LOCK_slave);
|
pthread_cond_wait(&COND_slave_start, &LOCK_slave);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = "Master host not set, or server id not configured";
|
slave_errno = ER_BAD_SLAVE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = "Slave already running";
|
slave_errno = ER_SLAVE_MUST_STOP;
|
||||||
|
|
||||||
pthread_mutex_unlock(&LOCK_slave);
|
pthread_mutex_unlock(&LOCK_slave);
|
||||||
if(err)
|
if(slave_errno)
|
||||||
{
|
{
|
||||||
if(net_report) send_error(net, 0, err);
|
if(net_report) send_error(net, slave_errno);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if(net_report)
|
else if(net_report)
|
||||||
|
@ -559,8 +559,8 @@ int stop_slave(THD* thd, bool net_report )
|
||||||
{
|
{
|
||||||
if(!thd) thd = current_thd;
|
if(!thd) thd = current_thd;
|
||||||
NET* net = &thd->net;
|
NET* net = &thd->net;
|
||||||
const char* err = 0;
|
int slave_errno = 0;
|
||||||
|
|
||||||
if (check_access(thd, PROCESS_ACL, any_db))
|
if (check_access(thd, PROCESS_ACL, any_db))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
@ -576,14 +576,14 @@ int stop_slave(THD* thd, bool net_report )
|
||||||
pthread_cond_wait(&COND_slave_stopped, &LOCK_slave);
|
pthread_cond_wait(&COND_slave_stopped, &LOCK_slave);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = "Slave is not running";
|
slave_errno = ER_SLAVE_NOT_RUNNING;
|
||||||
|
|
||||||
pthread_mutex_unlock(&LOCK_slave);
|
pthread_mutex_unlock(&LOCK_slave);
|
||||||
thd->proc_info = 0;
|
thd->proc_info = 0;
|
||||||
|
|
||||||
if(err)
|
if(slave_errno)
|
||||||
{
|
{
|
||||||
if(net_report) send_error(net, 0, err);
|
if(net_report) send_error(net, slave_errno);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if(net_report)
|
else if(net_report)
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#define YYMAXDEPTH 3200 /* Because of 64K stack */
|
#define YYMAXDEPTH 3200 /* Because of 64K stack */
|
||||||
#define Lex current_lex
|
#define Lex current_lex
|
||||||
#include "mysql_priv.h"
|
#include "mysql_priv.h"
|
||||||
|
#include "slave.h"
|
||||||
#include "sql_acl.h"
|
#include "sql_acl.h"
|
||||||
#include "lex_symbol.h"
|
#include "lex_symbol.h"
|
||||||
#include <myisam.h>
|
#include <myisam.h>
|
||||||
|
@ -408,6 +409,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
||||||
%token SQL_AUTO_IS_NULL
|
%token SQL_AUTO_IS_NULL
|
||||||
%token SQL_SAFE_UPDATES
|
%token SQL_SAFE_UPDATES
|
||||||
%token SQL_QUOTE_SHOW_CREATE
|
%token SQL_QUOTE_SHOW_CREATE
|
||||||
|
%token SQL_SLAVE_SKIP_COUNTER
|
||||||
|
|
||||||
%left SET_VAR
|
%left SET_VAR
|
||||||
%left OR_OR_CONCAT OR
|
%left OR_OR_CONCAT OR
|
||||||
|
@ -2662,6 +2664,15 @@ option_value:
|
||||||
if (item->fix_fields(current_thd,0) || item->update())
|
if (item->fix_fields(current_thd,0) || item->update())
|
||||||
YYABORT;
|
YYABORT;
|
||||||
}
|
}
|
||||||
|
| SQL_SLAVE_SKIP_COUNTER equal ULONG_NUM
|
||||||
|
{
|
||||||
|
pthread_mutex_lock(&LOCK_slave);
|
||||||
|
if(slave_running)
|
||||||
|
send_error(¤t_thd->net, ER_SLAVE_MUST_STOP);
|
||||||
|
else
|
||||||
|
slave_skip_counter = $3;
|
||||||
|
pthread_mutex_unlock(&LOCK_slave);
|
||||||
|
}
|
||||||
|
|
||||||
text_or_password:
|
text_or_password:
|
||||||
TEXT_STRING { $$=$1.str;}
|
TEXT_STRING { $$=$1.str;}
|
||||||
|
|
Loading…
Add table
Reference in a new issue