Commit f7acf09d authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

slave-skip-errors

added extra/mysql_install.c - will work on it in 4.0, but it does not hurt
to have it sit in 3.23 tree for now since it will eventually be backported 
to 3.23 anyway 
parent ab550295
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -23738,6 +23738,33 @@ Updates to a database with a different name than the original
Example: @code{replicate-rewrite-db=master_db_name->slave_db_name}.
@item @code{slave-skip-errors=err_code1,err_code2,..} @tab
Available only in 3.23.47 and later. Tells the slave thread to continue
replication when a query returns an error from the provided
list. Normally, replication will discontinue when an error is
encountered giving the user a chance to resolve the inconsistency in the
data manually. Do not use this option unless you fully understand why
you are getting the errors.  If there are no bugs in your 
replication setup and client programs, and no bugs in MySQL itself, you
should never get an abort with error.Indiscriminate use of this option
will result in slaves being hopelessly out of sync with the master and
you having no idea how the problem happened.
For error codes, you should use the numbers provided by the error message in
your slave error log and in the output of @code{SHOW SLAVE STATUS}. Full list
of error messages can be found in the source distribution in
@code{Docs/mysqld_error.txt}.
You can ( but should not) also use a very non-recommended value of @code{all}
which will ignore all error messages and keep barging along regardless.
Needless to say, if you use it, we make no promises regarding your data
integrity. Please do not complain if your data on the slave is not anywhere
close to what it is on the master in this case - you have been warned.
Example:
@code{slave-skip-errors=1062,1053} or @code{slave-skip-errors=all}
@item @code{skip-slave-start} @tab
Tells the slave server not to start the slave on the startup.  The user
can start it later with @code{SLAVE START}.
@@ -46839,17 +46866,21 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.47
@itemize @bullet
@item
Added @code{slave-skip-errors} option
@item
Fixed that @code{GROUP BY expr DESC} works.
@item
Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}.
@item
@code{mysqlconfig} now also work with binary (relocated) distributions.
@code{mysql_config} now also work with binary (relocated) distributions.
@end itemize
@node News-3.23.46, News-3.23.45, News-3.23.47, News-3.23.x
@appendixsubsec Changes in release 3.23.46
@itemize @bullet
@item
Fixed problem with aliased temporary tables replication
@item
InnoDB and BDB tables will now use index when doing an @code{ORDER BY}
on the whole table.
@item

extra/mysql_install.c

0 → 100644
+62 −0
Original line number Diff line number Diff line
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
   
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.
   
   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.
   
   You should have received a copy of the GNU Library General Public
   License along with this library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
   MA 02111-1307, USA */

/* Install or upgrade MySQL server. By Sasha Pachev <sasha@mysql.com>
 */

#define INSTALL_VERSION "1.0"

#define DONT_USE_RAID
#include <global.h>
#include <m_ctype.h>
#include <my_sys.h>
#include <m_string.h>
#include <mysql_version.h>
#include <errno.h>
#include <getopt.h>

struct option long_options[] =
{
  {"help", no_argument, 0, 'h'},
  {"version", no_argument, 0, 'V'},
  {0, 0,0,0}
};

static void print_version(void)
{
  printf("%s  Ver %s Distrib %s, for %s (%s)\n",my_progname,INSTALL_VERSION,
	 MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE);
}

static void usage()
{
  print_version();
  printf("MySQL AB, by Sasha Pachev\n");
  printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
  printf("Install or upgrade MySQL server.\n\n");
  printf("Usage: %s [OPTIONS] \n", my_progname);
  printf("\n\
  -?, --help               Display this help and exit.\n\
  -h, --host=...           Connect to host.\n\
  -V, --version            Output version information and exit.\n");
}





+2 −1
Original line number Diff line number Diff line
@@ -75,7 +75,8 @@ static void usage()
  printf("Usage: %s [OPTIONS] symbols-file [numeric-dump-file]\n", my_progname);
  printf("\n\
  -?, --help               Display this help and exit.\n\
  -h, --host=...           Connect to host.\n\
  -s, --symbols-file=...   Use specified symbols file.\n\
  -n, --numeric-dump-file=...  Read the dump from specified file.\n\
  -V, --version            Output version information and exit.\n");
  printf("\n\
The symbols-file should include the output from:  'nm --numeric-sort mysqld'.\n\
+10 −1
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@ typedef struct st_bitmap
{
  uchar *bitmap;
  uint bitmap_size;
  my_bool thread_safe; /* set if several threads access the bitmap */
  /* mutex will be acquired for the duration of each bitmap operation if
     thread_safe flag is set. Otherwise, we optimize by not acquiring the
     mutex
  */
#ifdef THREAD
  pthread_mutex_t mutex;
#endif
@@ -34,10 +39,14 @@ typedef struct st_bitmap
#ifdef	__cplusplus
extern "C" {
#endif
  extern my_bool bitmap_init(MY_BITMAP *bitmap, uint bitmap_size);
  extern my_bool bitmap_init(MY_BITMAP *bitmap, uint bitmap_size,
			     my_bool thread_safe);
  extern void bitmap_free(MY_BITMAP *bitmap);
  extern void bitmap_set_bit(MY_BITMAP *bitmap, uint bitmap_bit);
  extern uint bitmap_set_next(MY_BITMAP *bitmap);
  extern void bitmap_set_all(MY_BITMAP* bitmap);
  extern my_bool bitmap_is_set(MY_BITMAP* bitmap, uint bitmap_bit);
  extern void bitmap_clear_all(MY_BITMAP* bitmap);
  extern void bitmap_clear_bit(MY_BITMAP *bitmap, uint bitmap_bit);
#ifdef	__cplusplus
}
+2 −0
Original line number Diff line number Diff line
release_lock("lock")
0
get_lock("lock",3)
1
n
Loading