summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <msvensson@pilot.blaudden>2007-04-23 17:01:02 +0200
committerunknown <msvensson@pilot.blaudden>2007-04-23 17:01:02 +0200
commit0d5a18b53bd30af029b27e39579b52f05b8f7115 (patch)
tree8cc026fffb64b3233d53f89373b5f930e8ed9a49
parent2c4ad7372c0737d49812f1e22a108dc841b4ba74 (diff)
parente4a8fd700ef4078cdd7ea11cd57e7d2bc9c11253 (diff)
downloadmariadb-git-0d5a18b53bd30af029b27e39579b52f05b8f7115.tar.gz
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.1
into pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint BitKeeper/etc/ignore: auto-union client/Makefile.am: Auto merged client/mysql.cc: Auto merged configure.in: Auto merged client/mysqltest.c: Auto merged libmysqld/Makefile.am: Auto merged sql/Makefile.am: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged
-rw-r--r--.bzrignore6
-rw-r--r--CMakeLists.txt1
-rw-r--r--Makefile.am46
-rw-r--r--client/CMakeLists.txt1
-rw-r--r--client/Makefile.am5
-rw-r--r--client/client_priv.h11
-rw-r--r--client/mysql.cc4
-rw-r--r--client/mysql_upgrade.c1153
-rw-r--r--client/mysqltest.c350
-rw-r--r--configure.in17
-rw-r--r--debian/Makefile.am118
-rw-r--r--debian/README.Maintainer99
-rw-r--r--debian/additions/my.cnf134
-rw-r--r--debian/additions/mysql-server.lintian-overrides2
-rw-r--r--debian/additions/ndb_mgmd.cnf35
-rw-r--r--debian/changelog3281
-rw-r--r--debian/compat1
-rw-r--r--debian/control.in353
-rw-r--r--debian/copyright139
-rw-r--r--debian/copyright.more60
-rw-r--r--debian/defs.mk.in14
-rw-r--r--debian/libmysqlclientSLIB-dev.README.Maintainer.in4
-rw-r--r--debian/libmysqlclientSLIB-dev.dirs.in2
-rw-r--r--debian/libmysqlclientSLIB-dev.docs.in1
-rw-r--r--debian/libmysqlclientSLIB-dev.examples.in1
-rw-r--r--debian/libmysqlclientSLIB-dev.files.in6
-rw-r--r--debian/libmysqlclientSLIB-dev.links.in2
-rw-r--r--debian/libmysqlclientSLIBoff.README.Debian.in30
-rw-r--r--debian/libmysqlclientSLIBoff.dirs.in1
-rw-r--r--debian/libmysqlclientSLIBoff.docs.in1
-rw-r--r--debian/libmysqlclientSLIBoff.files.in1
-rw-r--r--debian/libmysqlclientSLIBoff.postinst.in12
-rw-r--r--debian/libndbclientNLIB-dev.dirs.in3
-rw-r--r--debian/libndbclientNLIB-dev.files.in3
-rw-r--r--debian/libndbclientNLIB-dev.links.in1
-rw-r--r--debian/libndbclientNLIB.README.Debian.in30
-rw-r--r--debian/libndbclientNLIB.dirs.in1
-rw-r--r--debian/libndbclientNLIB.files.in1
-rw-r--r--debian/libndbclientNLIB.postinst.in12
-rw-r--r--debian/mysql-client-BASE.NEWS.in6
-rw-r--r--debian/mysql-client-BASE.README.Debian.in4
-rw-r--r--debian/mysql-client-BASE.dirs.in2
-rw-r--r--debian/mysql-client-BASE.docs.in2
-rw-r--r--debian/mysql-client-BASE.files.in17
-rw-r--r--debian/mysql-client-BASE.lintian-overrides.in1
-rw-r--r--debian/mysql-common.README.Debian.in20
-rw-r--r--debian/mysql-common.dirs.in1
-rw-r--r--debian/mysql-common.files.in2
-rw-r--r--debian/mysql-common.postrm.in7
-rw-r--r--debian/mysql-common.preinst.in215
-rw-r--r--debian/mysql-extra-BASE.dirs.in1
-rw-r--r--debian/mysql-extra-BASE.files.in3
-rw-r--r--debian/mysql-management-BASE.dirs.in1
-rw-r--r--debian/mysql-management-BASE.files.in1
-rw-r--r--debian/mysql-management-BASE.mysql-management.init.in86
-rw-r--r--debian/mysql-server-BASE.NEWS.in10
-rw-r--r--debian/mysql-server-BASE.README.Debian.in125
-rw-r--r--debian/mysql-server-BASE.config.in39
-rw-r--r--debian/mysql-server-BASE.dirs.in13
-rw-r--r--debian/mysql-server-BASE.docs.in2
-rw-r--r--debian/mysql-server-BASE.files.in47
-rw-r--r--debian/mysql-server-BASE.links.in1
-rw-r--r--debian/mysql-server-BASE.lintian-overrides.in4
-rw-r--r--debian/mysql-server-BASE.logcheck.ignore.paranoid.in10
-rw-r--r--debian/mysql-server-BASE.logcheck.ignore.server.in31
-rw-r--r--debian/mysql-server-BASE.logcheck.ignore.workstation.in31
-rw-r--r--debian/mysql-server-BASE.mysql-server.logrotate.in28
-rw-r--r--debian/mysql-server-BASE.postinst.in276
-rw-r--r--debian/mysql-server-BASE.postrm.in92
-rw-r--r--debian/mysql-server-BASE.preinst.in167
-rw-r--r--debian/mysql-server-BASE.prerm.in8
-rw-r--r--debian/mysql-server-BASE.templates.in71
-rw-r--r--debian/mysql-server-PREV.preinst.in191
-rw-r--r--debian/mysql-server.preinst.in191
-rw-r--r--debian/mysql-storage-BASE.dirs.in1
-rw-r--r--debian/mysql-storage-BASE.files.in1
-rw-r--r--debian/mysql-storage-BASE.mysql-storage.init.in85
-rw-r--r--debian/mysql-test-BASE.dirs.in2
-rw-r--r--debian/mysql-test-BASE.files.in2
-rw-r--r--debian/mysql-tools-BASE.dirs.in2
-rw-r--r--debian/mysql-tools-BASE.files.in13
-rw-r--r--debian/po/POTFILES.in.in1
-rw-r--r--debian/po/ca.po290
-rw-r--r--debian/po/cs.po259
-rw-r--r--debian/po/da.po283
-rw-r--r--debian/po/de.po195
-rw-r--r--debian/po/es.po288
-rw-r--r--debian/po/eu.po163
-rw-r--r--debian/po/fr.po204
-rw-r--r--debian/po/gl.po279
-rw-r--r--debian/po/it.po184
-rw-r--r--debian/po/ja.po278
-rw-r--r--debian/po/nb.po179
-rw-r--r--debian/po/nl.po187
-rw-r--r--debian/po/pt.po198
-rw-r--r--debian/po/pt_BR.po339
-rw-r--r--debian/po/ro.po193
-rw-r--r--debian/po/ru.po172
-rw-r--r--debian/po/sv.po225
-rw-r--r--debian/po/templates.pot155
-rw-r--r--debian/po/tr.po290
-rwxr-xr-xdebian/rules405
-rw-r--r--debian/source.lintian-overrides.in6
-rw-r--r--debian/watch3
-rw-r--r--extra/yassl/taocrypt/src/misc.cpp37
-rw-r--r--include/Makefile.am5
-rw-r--r--include/abi_check0
-rw-r--r--include/my_global.h7
-rw-r--r--libmysql/Makefile.am1
-rw-r--r--libmysql/Makefile.shared8
-rw-r--r--libmysqld/Makefile.am15
-rw-r--r--libmysqld/examples/Makefile.am5
-rw-r--r--mysql-test/include/mix1.inc32
-rw-r--r--mysql-test/lib/mtr_cases.pl7
-rw-r--r--mysql-test/lib/mtr_process.pl7
-rw-r--r--mysql-test/lib/mtr_report.pl12
-rwxr-xr-xmysql-test/mysql-test-run.pl19
-rw-r--r--mysql-test/r/fix_priv_tabs.result0
-rw-r--r--mysql-test/r/innodb.result25
-rw-r--r--mysql-test/r/innodb_mysql.result26
-rw-r--r--mysql-test/r/mysql.result2
-rw-r--r--mysql-test/r/mysql_upgrade.result117
-rw-r--r--mysql-test/r/mysqltest.result34
-rw-r--r--mysql-test/r/ndb_dd_alter.result130
-rw-r--r--mysql-test/r/ndb_single_user.result64
-rw-r--r--mysql-test/r/openssl_1.result108
-rw-r--r--mysql-test/r/strict.result6
-rw-r--r--mysql-test/r/variables-big.result20
-rw-r--r--mysql-test/t/fix_priv_tables.test7
-rw-r--r--mysql-test/t/innodb.test20
-rw-r--r--mysql-test/t/mysql.test9
-rw-r--r--mysql-test/t/mysql_upgrade.test44
-rw-r--r--mysql-test/t/mysqltest.test33
-rw-r--r--mysql-test/t/ndb_dd_alter.test24
-rw-r--r--mysql-test/t/ndb_single_user.test61
-rw-r--r--mysql-test/t/openssl_1.test48
-rw-r--r--mysql-test/t/strict.test8
-rw-r--r--mysql-test/t/system_mysql_db_fix30020.test9
-rw-r--r--mysql-test/t/system_mysql_db_fix40123.test7
-rw-r--r--mysql-test/t/variables-big.test20
-rw-r--r--mysys/charset.c8
-rw-r--r--mysys/my_alloc.c4
-rw-r--r--mysys/my_thr_init.c5
-rw-r--r--netware/Makefile.am6
-rwxr-xr-xscripts/CMakeLists.txt32
-rw-r--r--scripts/Makefile.am23
-rw-r--r--scripts/comp_sql.c125
-rwxr-xr-xscripts/make_win_bin_dist2
-rw-r--r--scripts/mysql_install_db.sh11
-rw-r--r--scripts/mysql_system_tables.sql21
-rw-r--r--scripts/mysql_system_tables_data.sql22
-rw-r--r--scripts/mysql_system_tables_fix.sql39
-rw-r--r--sql/Makefile.am28
-rw-r--r--sql/ha_ndbcluster.cc46
-rw-r--r--sql/item_cmpfunc.cc3
-rw-r--r--sql/mysql_priv.h2
-rw-r--r--sql/mysqld.cc1
-rw-r--r--sql/sql_parse.cc5
-rw-r--r--storage/innobase/handler/ha_innodb.cc14
-rw-r--r--storage/innobase/handler/ha_innodb.h1
-rw-r--r--storage/innobase/os/os0file.c211
-rw-r--r--storage/innobase/plug.in2
-rw-r--r--storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp6
-rw-r--r--storage/ndb/include/kernel/signaldata/DropFilegroup.hpp6
-rw-r--r--storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp459
-rw-r--r--storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp4
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp2
-rw-r--r--storage/ndb/src/mgmapi/Makefile.am7
-rw-r--r--storage/ndb/src/mgmapi/mgmapi_configuration.cpp14
-rw-r--r--storage/ndb/src/mgmsrv/ConfigInfo.cpp11
-rw-r--r--storage/ndb/src/mgmsrv/ConfigInfo.hpp6
-rw-r--r--storage/ndb/src/mgmsrv/ParamInfo.cpp2088
-rw-r--r--storage/ndb/src/mgmsrv/ParamInfo.hpp59
-rw-r--r--storage/ndb/test/include/NdbMixRestarter.hpp74
-rw-r--r--storage/ndb/test/ndbapi/testDict.cpp452
-rw-r--r--storage/ndb/test/ndbapi/testSRBank.cpp318
-rw-r--r--storage/ndb/test/run-test/daily-basic-tests.txt8
-rw-r--r--storage/ndb/test/src/Makefile.am2
-rw-r--r--storage/ndb/test/src/NDBT_Test.cpp4
-rw-r--r--storage/ndb/test/src/NdbMixRestarter.cpp312
-rw-r--r--support-files/mysql.server.sh52
-rw-r--r--tests/mysql_client_test.c14
-rw-r--r--vio/viosslfactories.c9
184 files changed, 14262 insertions, 3765 deletions
diff --git a/.bzrignore b/.bzrignore
index 45cd1bdf674..2e6193b6368 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -352,6 +352,7 @@ client/.libs/mysqltest
client/completion_hash.cpp
client/decimal.c
client/insert_test
+client/link_sources
client/log_event.cc
client/log_event.h
client/log_event_old.cc
@@ -579,6 +580,7 @@ help
help.c
help.h
include/check_abi
+include/link_sources
include/my_config.h
include/my_global.h
include/mysql_h.ic
@@ -754,6 +756,7 @@ libmysql/.libs/libmysqlclient.so.15.0.0
libmysql/conf_to_src
libmysql/debug/libmysql.exp
libmysql/libmysql.ver
+libmysql/link_sources
libmysql/my_static.h
libmysql/my_time.c
libmysql/mysys_priv.h
@@ -1089,6 +1092,7 @@ libmysqld/item_uniq.cc
libmysqld/key.cc
libmysqld/lib_sql.cpp
libmysqld/libmysql.c
+libmysqld/link_sources
libmysqld/lock.cc
libmysqld/log.cc
libmysqld/log_event.cc
@@ -1813,6 +1817,7 @@ repl-tests/test-repl/sum-wlen-slave.master.re
repl-tests/test-repl/sum-wlen-slave.master.reje
replace/*.ds?
replace/*.vcproj
+scripts/comp_sql
scripts/fill_func_tables
scripts/fill_func_tables.sql
scripts/fill_help_tables
@@ -1830,6 +1835,7 @@ scripts/mysql_find_rows
scripts/mysql_fix_extensions
scripts/mysql_fix_privilege_tables
scripts/mysql_fix_privilege_tables.sql
+scripts/mysql_fix_privilege_tables_sql.c
scripts/mysql_install_db
scripts/mysql_secure_installation
scripts/mysql_setpermission
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 09915c65e6f..a46022566d3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -139,6 +139,7 @@ ADD_SUBDIRECTORY(dbug)
ADD_SUBDIRECTORY(strings)
ADD_SUBDIRECTORY(regex)
ADD_SUBDIRECTORY(mysys)
+ADD_SUBDIRECTORY(scripts)
ADD_SUBDIRECTORY(zlib)
ADD_SUBDIRECTORY(extra/yassl)
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
diff --git a/Makefile.am b/Makefile.am
index c4a4a040a40..c9f86f76058 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,58 +21,18 @@ AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
README COPYING EXCEPTIONS-CLIENT CMakeLists.txt
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
- @readline_topdir@ sql-common \
+ @readline_topdir@ sql-common scripts \
@thread_dirs@ pstack \
@sql_union_dirs@ unittest storage plugin \
- @sql_server@ scripts @man_dirs@ tests \
+ @sql_server@ @man_dirs@ tests \
netware @libmysqld_dirs@ \
mysql-test support-files sql-bench @tools_dirs@ \
win
-DIST_SUBDIRS = $(SUBDIRS) BUILD
+DIST_SUBDIRS = $(SUBDIRS) BUILD debian
-# Run these targets before any others, also make part of clean target,
-# to make sure we create new links after a clean.
-BUILT_SOURCES = linked_client_sources linked_server_sources \
- @linked_client_targets@ \
- @linked_libmysqld_targets@ \
- linked_include_sources @linked_netware_sources@
-
-CLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = ac_available_languages_fragment
-linked_include_sources:
- cd include; $(MAKE) link_sources
- echo timestamp > linked_include_sources
-
-linked_client_sources: @linked_client_targets@
- cd client; $(MAKE) link_sources
- echo timestamp > linked_client_sources
-
-linked_libmysql_sources:
- cd libmysql; $(MAKE) link_sources
- echo timestamp > linked_libmysql_sources
-
-linked_libmysql_r_sources: linked_libmysql_sources
- cd libmysql_r; $(MAKE) link_sources
- echo timestamp > linked_libmysql_r_sources
-
-linked_libmysqld_sources:
- cd libmysqld; $(MAKE) link_sources
- echo timestamp > linked_libmysqld_sources
-
-linked_libmysqldex_sources:
- cd libmysqld/examples; $(MAKE) link_sources
- echo timestamp > linked_libmysqldex_sources
-
-linked_netware_sources:
- cd @netware_dir@; $(MAKE) link_sources
- echo timestamp > linked_netware_sources
-
-linked_server_sources:
- cd sql; $(MAKE) link_sources
- echo timestamp > linked_server_sources
-
# Create permission databases
init-db: all
$(top_builddir)/scripts/mysql_install_db
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
index ea9e7547354..4c41dc263b0 100644
--- a/client/CMakeLists.txt
+++ b/client/CMakeLists.txt
@@ -82,6 +82,7 @@ TARGET_LINK_LIBRARIES(mysqlimport mysqlclient mysys dbug yassl taocrypt zlib wso
ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c ../mysys/my_getpagesize.c)
TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient dbug yassl taocrypt zlib wsock32)
+ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs)
ADD_EXECUTABLE(mysqlshow mysqlshow.c)
TARGET_LINK_LIBRARIES(mysqlshow mysqlclient mysys dbug yassl taocrypt zlib wsock32)
diff --git a/client/Makefile.am b/client/Makefile.am
index f5b8ee6690b..d482512e411 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -36,6 +36,10 @@ noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
EXTRA_DIST = get_password.c CMakeLists.txt echo.c
+BUILT_SOURCES = link_sources
+
+CLEANFILES = $(BUILT_SOURCES)
+
bin_PROGRAMS = mysql \
mysqladmin \
mysqlbinlog \
@@ -112,6 +116,7 @@ link_sources:
done; \
rm -f $(srcdir)/my_user.c; \
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c;
+ echo timestamp > link_sources;
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/client/client_priv.h b/client/client_priv.h
index ddc0e50b723..25241cc8c59 100644
--- a/client/client_priv.h
+++ b/client/client_priv.h
@@ -23,6 +23,14 @@
#include <errmsg.h>
#include <my_getopt.h>
+#ifndef WEXITSTATUS
+# ifdef __WIN__
+# define WEXITSTATUS(stat_val) (stat_val)
+# else
+# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+# endif
+#endif
+
enum options_client
{
OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
@@ -67,5 +75,6 @@ enum options_client
OPT_SLAP_POST_QUERY,
OPT_MYSQL_REPLACE_INTO, OPT_BASE64_OUTPUT, OPT_SERVER_ID,
OPT_FIX_TABLE_NAMES, OPT_FIX_DB_NAMES, OPT_SSL_VERIFY_SERVER_CERT,
- OPT_DEBUG_INFO, OPT_COLUMN_TYPES, OPT_ERROR_LOG_FILE, OPT_WRITE_BINLOG
+ OPT_DEBUG_INFO, OPT_COLUMN_TYPES, OPT_ERROR_LOG_FILE, OPT_WRITE_BINLOG,
+ OPT_MAX_CLIENT_OPTION
};
diff --git a/client/mysql.cc b/client/mysql.cc
index 95b05f7f309..49d5ae4f449 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -818,7 +818,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break;
#endif
case OPT_CHARSETS_DIR:
- strmov(mysql_charsets_dir, argument);
+ strmake(mysql_charsets_dir, argument, sizeof(mysql_charsets_dir) - 1);
charsets_dir = mysql_charsets_dir;
break;
case OPT_DEFAULT_CHARSET:
@@ -871,7 +871,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
if (argument && strlen(argument))
{
default_pager_set= 1;
- strmov(pager, argument);
+ strmake(pager, argument, sizeof(pager) - 1);
strmov(default_pager, pager);
}
else if (default_pager_set)
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
index e6870c23129..64de3d19882 100644
--- a/client/mysql_upgrade.c
+++ b/client/mysql_upgrade.c
@@ -14,57 +14,51 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "client_priv.h"
-#include <my_dir.h>
-#include <my_list.h>
#include <sslopt-vars.h>
+#include "../scripts/mysql_fix_privilege_tables_sql.c"
-#define UPGRADE_DEFAULTS_NAME "mysql_upgrade_defaults"
-#define MYSQL_UPGRADE_INFO_NAME "mysql_upgrade_info"
-#define MYSQL_FIX_PRIV_TABLES_NAME "mysql_fix_privilege_tables.sql"
-
-#define MY_PARENT (1 << 0)
-#define MY_ISDIR (1 << 1)
-#define MY_SEARCH_SELF (1 << 2)
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
-#ifdef __WIN__
-const char *mysqlcheck_name= "mysqlcheck.exe";
-const char *mysql_name= "mysql.exe";
-const char *mysqld_name= "mysqld.exe";
-#define EXTRA_CLIENT_PATHS "client/release", "client/debug"
-#else
-const char *mysqlcheck_name= "mysqlcheck";
-const char *mysql_name= "mysql";
-const char *mysqld_name= "mysqld";
-#define EXTRA_CLIENT_PATHS "client"
-#endif /*__WIN__*/
-
-extern TYPELIB sql_protocol_typelib;
-
-static my_bool opt_force= 0, opt_verbose= 0, opt_compress= 0;
-static char *user= (char*) "root", *basedir= 0, *datadir= 0, *opt_password= 0;
-static char *current_host= 0;
-static char *opt_default_charset= 0, *opt_charsets_dir= 0;
-#ifdef HAVE_SMEM
-static char *shared_memory_base_name= 0;
+#ifndef WEXITSTATUS
+# ifdef __WIN__
+# define WEXITSTATUS(stat_val) (stat_val)
+# else
+# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+# endif
#endif
-static char *opt_protocol= 0;
-static my_string opt_mysql_port= 0, opt_mysql_unix_port= 0;
+
+static char mysql_path[FN_REFLEN];
+static char mysqlcheck_path[FN_REFLEN];
+
+static my_bool opt_force, opt_verbose;
+static char *opt_user= (char*)"root";
+
+static DYNAMIC_STRING ds_args;
+
+static char *opt_password= 0;
+static my_bool tty_password= 0;
+
#ifndef DBUG_OFF
static char *default_dbug_option= (char*) "d:t:O,/tmp/mysql_upgrade.trace";
#endif
-static my_bool info_flag= 0, tty_password= 0;
static char **defaults_argv;
+static my_bool not_used; /* Can't use GET_BOOL without a value pointer */
+
+#include <help_start.h>
+
static struct my_option my_long_options[]=
{
{"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
- {"basedir", 'b', "Specifies the directory where MySQL is installed",
- (gptr*) &basedir,
- (gptr*) &basedir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"datadir", 'd', "Specifies the data directory", (gptr*) &datadir,
- (gptr*) &datadir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"basedir", 'b', "Not used by mysql_upgrade. Only for backward compatibilty",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"datadir", 'd',
+ "Not used by mysql_upgrade. Only for backward compatibilty",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifdef DBUG_OFF
{"debug", '#', "This is a non-debug version. Catch this and exit",
0, 0, 0, GET_DISABLED, OPT_ARG, 0, 0, 0, 0, 0, 0},
@@ -72,629 +66,720 @@ static struct my_option my_long_options[]=
{"debug", '#', "Output debug log", (gptr *) & default_dbug_option,
(gptr *) & default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"debug-info", 'T', "Print some debug info at exit.", (gptr *) & info_flag,
- (gptr *) & info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"default-character-set", OPT_DEFAULT_CHARSET,
- "Set the default character set.", (gptr*) &opt_default_charset,
- (gptr*) &opt_default_charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"force", 'f', "Force execution of mysqlcheck even if mysql_upgrade "
- "has already been executed for the current version of MySQL.",
- (gptr*) &opt_force, (gptr*) &opt_force, 0, GET_BOOL, NO_ARG, 0, 0,
- 0, 0, 0, 0},
+ "Set the default character set.", 0,
+ 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"character-sets-dir", OPT_CHARSETS_DIR,
- "Directory where character sets are.", (gptr*) &opt_charsets_dir,
- (gptr*) &opt_charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ "Directory where character sets are.", 0,
+ 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"compress", OPT_COMPRESS, "Use compression in server/client protocol.",
- (gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
- 0, 0, 0},
- {"host",'h', "Connect to host.", (gptr*) &current_host,
- (gptr*) &current_host, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*)&not_used, (gptr*)&not_used, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"force", 'f', "Force execution of mysqlcheck even if mysql_upgrade "
+ "has already been executed for the current version of MySQL.",
+ (gptr*)&opt_force, (gptr*)&opt_force, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"host",'h', "Connect to host.", 0,
+ 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"password", 'p',
"Password to use when connecting to server. If password is not given"
- " it's solicited on the tty.", 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ " it's solicited on the tty.", (gptr*) &opt_password,(gptr*) &opt_password,
+ 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
#ifdef __WIN__
- {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0,
+ {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
- (gptr*) &opt_mysql_port, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", 0,
+ 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"protocol", OPT_MYSQL_PROTOCOL,
"The protocol of connection (tcp,socket,pipe,memory).",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifdef HAVE_SMEM
{"shared-memory-base-name", OPT_SHARED_MEMORY_BASE_NAME,
- "Base name of shared memory.", (gptr*) &shared_memory_base_name,
- (gptr*) &shared_memory_base_name, 0,
- GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ "Base name of shared memory.", 0,
+ 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"socket", 'S', "Socket file to use for connection.",
- (gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0,
- GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"user", 'u', "User for login if not current user.", (gptr*) &user,
- (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "User for login if not current user.", (gptr*) &opt_user,
+ (gptr*) &opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#include <sslopt-longopts.h>
- {"verbose", 'v', "Display more output about the process",
- (gptr*) &opt_verbose, (gptr*) &opt_verbose, 0,
- GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Display more output about the process",
+ (gptr*) &opt_verbose, (gptr*) &opt_verbose, 0,
+ GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
-static const char *load_default_groups[]=
+#include <help_end.h>
+
+
+static void free_used_memory(void)
{
- "mysql_upgrade", 0
-};
+ /* Free memory allocated by 'load_defaults' */
+ free_defaults(defaults_argv);
-#include <help_end.h>
+ dynstr_free(&ds_args);
+}
-static LIST *extra_defaults= NULL;
-typedef struct _extra_default
+static void die(const char *fmt, ...)
{
- int id;
- const char *name;
- int n_len;
- const char *value;
- int v_len;
-} extra_default_t;
-
-static inline
-void set_extra_default(int id, const struct my_option *opt)
+ va_list args;
+ DBUG_ENTER("die");
+
+ /* Print the error message */
+ va_start(args, fmt);
+ if (fmt)
+ {
+ fprintf(stderr, "FATAL ERROR: ");
+ vfprintf(stderr, fmt, args);
+ fprintf(stderr, "\n");
+ fflush(stderr);
+ }
+ va_end(args);
+
+ free_used_memory();
+ my_end(MY_CHECK_ERROR);
+ exit(1);
+}
+
+
+static void verbose(const char *fmt, ...)
{
- switch (id) {
- case 'b': case 'd': /* these are ours */
- case 'f': /* --force is ours */
- case 'u': /* --user passed on cmdline */
- case 'T': /* --debug-info is not accepted by mysqlcheck */
- case 'p': /* --password may change yet */
- /* so, do nothing */
- break;
- default:
- {
- LIST *l;
- extra_default_t *d;
-
- /*
- Remove any earlier duplicates: they can
- refer to invalid memory addresses (stale pointers)
- */
- l= extra_defaults;
- while (l)
- {
- LIST *n= l->next;
-
- d= l->data;
- if (d->id == id)
- {
- extra_defaults= list_delete(extra_defaults, l);
- my_free((gptr)l, MYF(0));
- my_free((gptr)d, MYF(0));
- }
- l= n;
- }
+ va_list args;
- d= (extra_default_t *)my_malloc(sizeof(extra_default_t),
- MYF(MY_FAE|MY_ZEROFILL));
- d->id= id;
- d->name= opt->name;
- d->n_len= strlen(opt->name);
- if (opt->arg_type != NO_ARG && opt->value)
- switch (opt->var_type & GET_TYPE_MASK) {
- case GET_BOOL:
- if (*((int *)opt->value))
- {
- d->value= "true";
- d->v_len= 4;
- }
- break;
- case GET_STR:
- case GET_STR_ALLOC:
- d->value= *opt->value;
- d->v_len= strlen(d->value);
- break;
- default:
- my_printf_error(0, "Error: internal error at %s:%d", MYF(0),
- __FILE__, __LINE__);
- exit(1);
- }
- list_push(extra_defaults, d);
+ if (!opt_verbose)
+ return;
+
+ /* Print the verbose message */
+ va_start(args, fmt);
+ if (fmt)
+ {
+ vfprintf(stdout, fmt, args);
+ fprintf(stdout, "\n");
+ fflush(stdout);
+ }
+ va_end(args);
+}
+
+
+/*
+ Add one option - passed to mysql_upgrade on command line
+ or by defaults file(my.cnf) - to a dynamic string, in
+ this way we pass the same arguments on to mysql and mysql_check
+*/
+
+static void add_one_option(DYNAMIC_STRING* ds,
+ const struct my_option *opt,
+ const char* argument)
+
+{
+ const char* eq= NullS;
+ const char* arg= NullS;
+ if (opt->arg_type != NO_ARG)
+ {
+ eq= "=";
+ switch (opt->var_type & GET_TYPE_MASK) {
+ case GET_STR:
+ arg= argument;
+ break;
+ default:
+ die("internal error at %s: %d",__FILE__, __LINE__);
}
}
+ dynstr_append_os_quoted(ds, "--", opt->name, eq, arg, NullS);
+ dynstr_append(&ds_args, " ");
}
static my_bool
-get_one_option(int optid, const struct my_option *opt __attribute__ ((unused)),
+get_one_option(int optid, const struct my_option *opt,
char *argument)
{
+ my_bool add_option= TRUE;
+
switch (optid) {
+
case '?':
- puts
- ("MySQL utility to upgrade database to the current server version");
- puts("");
+ printf("MySQL utility for upgrading database to MySQL version %s\n",
+ MYSQL_SERVER_VERSION);
my_print_help(my_long_options);
exit(0);
+ break;
+
case '#':
DBUG_PUSH(argument ? argument : default_dbug_option);
+ add_option= FALSE;
break;
+
case 'p':
tty_password= 1;
+ add_option= FALSE;
if (argument)
{
- char *start= argument;
- my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
- opt_password= my_strdup(argument, MYF(MY_FAE));
+ /* Add password to ds_args before overwriting the arg with x's */
+ add_one_option(&ds_args, opt, argument);
while (*argument)
*argument++= 'x'; /* Destroy argument */
- if (*start)
- start[1]= 0; /* Cut length of argument */
tty_password= 0;
}
break;
-#ifdef __WIN__
- case 'W':
- my_free(opt_protocol, MYF(MY_ALLOW_ZERO_PTR));
- opt_protocol= my_strdup("pipe", MYF(MY_FAE));
+
+ case 'b': /* --basedir */
+ case 'v': /* --verbose */
+ case 'd': /* --datadir */
+ case 'f': /* --force */
+ add_option= FALSE;
break;
-#endif
- case OPT_MYSQL_PROTOCOL:
- if (find_type(argument, &sql_protocol_typelib, 0) > 0)
+ }
+
+ if (add_option)
+ {
+ /*
+ This is an option that is accpted by mysql_upgrade just so
+ it can be passed on to "mysql" and "mysqlcheck"
+ Save it in the ds_args string
+ */
+ add_one_option(&ds_args, opt, argument);
+ }
+ return 0;
+}
+
+
+static int run_command(char* cmd,
+ DYNAMIC_STRING *ds_res)
+{
+ char buf[512]= {0};
+ FILE *res_file;
+ int error;
+
+ if (!(res_file= popen(cmd, "r")))
+ die("popen(\"%s\", \"r\") failed", cmd);
+
+ while (fgets(buf, sizeof(buf), res_file))
+ {
+ DBUG_PRINT("info", ("buf: %s", buf));
+ if(ds_res)
{
- my_free(opt_protocol, MYF(MY_ALLOW_ZERO_PTR));
- opt_protocol= my_strdup(argument, MYF(MY_FAE));
+ /* Save the output of this command in the supplied string */
+ dynstr_append(ds_res, buf);
}
- else
+ else
{
- fprintf(stderr, "Unknown option to protocol: %s\n", argument);
- exit(1);
+ /* Print it directly on screen */
+ fprintf(stdout, "%s", buf);
}
- break;
-#include <sslopt-case.h>
- default:;
}
- set_extra_default(opt->id, opt);
- return 0;
+
+ error= pclose(res_file);
+ return WEXITSTATUS(error);
}
-static int create_check_file(const char *path)
+static int run_tool(char *tool_path, DYNAMIC_STRING *ds_res, ...)
{
int ret;
- File fd;
-
- fd= my_open(path, O_CREAT | O_WRONLY, MYF(MY_FAE | MY_WME));
- if (fd < 0) {
- ret= 1;
- goto error;
+ const char* arg;
+ va_list args;
+ DYNAMIC_STRING ds_cmdline;
+
+ DBUG_ENTER("run_tool");
+ DBUG_PRINT("enter", ("tool_path: %s", tool_path));
+
+ if (init_dynamic_string(&ds_cmdline, IF_WIN("\"", ""), FN_REFLEN, FN_REFLEN))
+ die("Out of memory");
+
+ dynstr_append_os_quoted(&ds_cmdline, tool_path, NullS);
+ dynstr_append(&ds_cmdline, " ");
+
+ va_start(args, ds_res);
+
+ while ((arg= va_arg(args, char *)))
+ {
+ /* Options should be os quoted */
+ if (strncmp(arg, "--", 2) == 0)
+ dynstr_append_os_quoted(&ds_cmdline, arg, NullS);
+ else
+ dynstr_append(&ds_cmdline, arg);
+ dynstr_append(&ds_cmdline, " ");
}
- ret= my_write(fd, MYSQL_SERVER_VERSION,
- sizeof(MYSQL_SERVER_VERSION) - 1,
- MYF(MY_WME | MY_FNABP));
- ret|= my_close(fd, MYF(MY_FAE | MY_WME));
-error:
- return ret;
+
+ va_end(args);
+
+#ifdef __WIN__
+ dynstr_append(&ds_cmdline, "\"");
+#endif
+
+ DBUG_PRINT("info", ("Running: %s", ds_cmdline.str));
+ ret= run_command(ds_cmdline.str, ds_res);
+ DBUG_PRINT("exit", ("ret: %d", ret));
+ dynstr_free(&ds_cmdline);
+ DBUG_RETURN(ret);
}
-static int create_defaults_file(const char *path, const char *forced_path)
+/*
+ Try to get the full path to this exceutable
+
+ Return 0 if path found
+
+*/
+
+static my_bool get_full_path_to_executable(char* path)
{
- int ret;
- uint cnt;
- File forced_file, defaults_file;
-
- DYNAMIC_STRING buf;
- extra_default_t *d;
-
- DBUG_ENTER("create_defaults_file");
- DBUG_PRINT("enter", ("path: %s, forced_path: %s", path, forced_path));
-
- /* Delete any previous defaults file generated by mysql_upgrade */
- my_delete(path, MYF(0));
-
- defaults_file= my_open(path, O_BINARY | O_CREAT | O_WRONLY | O_EXCL,
- MYF(MY_FAE | MY_WME));
- if (defaults_file < 0)
- {
- ret= 1;
- goto out;
- }
+ my_bool ret;
+ DBUG_ENTER("get_full_path_to_executable");
+#ifdef __WIN__
+ ret= (GetModuleFileName(NULL, path, FN_REFLEN) == 0);
+#else
+ /* my_readlink returns 0 if a symlink was read */
+ ret= (my_readlink(path, "/proc/self/exe", MYF(0)) != 0);
+ /* Might also want to try with /proc/$$/exe if the above fails */
+#endif
+ DBUG_PRINT("exit", ("path: %s", path));
+ DBUG_RETURN(ret);
+}
- if (init_dynamic_string(&buf, NULL, my_getpagesize(), FN_REFLEN))
- {
- ret= 1;
- goto error;
- }
- /* Copy forced_path file into the defaults_file being generated */
- if (forced_path)
- {
- forced_file= my_open(forced_path, O_RDONLY, MYF(MY_FAE | MY_WME));
- if (forced_file < 0)
- {
- ret= 1;
- goto error;
- }
- DBUG_PRINT("info", ("Copying from %s to %s", forced_path, path));
- do
- {
- cnt= my_read(forced_file, buf.str, buf.max_length, MYF(MY_WME));
- if ((cnt == MY_FILE_ERROR)
- || my_write(defaults_file, buf.str, cnt, MYF(MY_FNABP | MY_WME)))
- {
- ret= 1;
- my_close(forced_file, MYF(0));
- goto error;
- }
- DBUG_PRINT("info", ("%s", buf.str));
- } while (cnt == buf.max_length);
- my_close(forced_file, MYF(0));
- }
+/*
+ Look for the tool in the same directory as mysql_upgrade.
+
+ When running in a not yet installed build the the program
+ will exist but it need to be invoked via it's libtool wrapper.
+ Check if the found tool can executed and if not look in the
+ directory one step higher up where the libtool wrapper normally
+ is found
+*/
- /* Write all extra_default options into the [client] section */
- dynstr_set(&buf, "\n[client]");
- if (opt_password)
+static void find_tool(char *tool_path, const char *tool_name)
+{
+ char path[FN_REFLEN];
+ DYNAMIC_STRING ds_tmp;
+ DBUG_ENTER("find_tool");
+ DBUG_PRINT("enter", ("progname: %s", my_progname));
+
+ if (init_dynamic_string(&ds_tmp, "", 32, 32))
+ die("Out of memory");
+
+ /* Initialize path with the full path to this program */
+ if (get_full_path_to_executable(path))
{
- if (dynstr_append(&buf, "\npassword=")
- || dynstr_append(&buf, opt_password))
+ /*
+ Easy way to get full executable path failed, try
+ other methods
+ */
+ if (my_progname[0] == FN_LIBCHAR)
{
- ret = 1;
- goto error;
+ /* 1. my_progname contains full path */
+ strmake(path, my_progname, FN_REFLEN);
}
- }
- DBUG_PRINT("info", ("Writing extra_defaults to file"));
- while (extra_defaults)
- {
- int len;
-
- d= extra_defaults->data;
- len= d->n_len + d->v_len + 1;
- if (buf.length + len >= buf.max_length) /* to avoid realloc() */
+ else if (my_progname[0] == '.')
{
-
- if (my_write(defaults_file, buf.str, buf.length, MYF(MY_FNABP | MY_WME)))
- {
- ret= 1;
- goto error;
- }
- dynstr_set(&buf, NULL);
+ /* 2. my_progname contains relative path, prepend wd */
+ char buf[FN_REFLEN];
+ my_getwd(buf, FN_REFLEN, MYF(0));
+ my_snprintf(path, FN_REFLEN, "%s%s", buf, my_progname);
}
- if (dynstr_append_mem(&buf, "\n", 1) ||
- dynstr_append_mem(&buf, d->name, d->n_len) ||
- (d->v_len && (dynstr_append_mem(&buf, "=", 1) ||
- dynstr_append_mem(&buf, d->value, d->v_len))))
+ else
{
- ret= 1;
- goto error;
+ /* 3. Just go for it and hope tool is in path */
+ path[0]= 0;
}
- DBUG_PRINT("info", ("%s", buf.str));
- my_free((gptr)d, MYF(0));
- list_pop(extra_defaults); /* pop off the head */
}
- if (my_write(defaults_file, buf.str, buf.length, MYF(MY_FNABP | MY_WME)))
+ do
{
- ret= 1;
- goto error;
+ DBUG_PRINT("enter", ("path: %s", path));
+
+ /* Chop off last char(since it might be a /) */
+ path[max((strlen(path)-1), 0)]= 0;
+
+ /* Chop off last dir part */
+ dirname_part(path, path);
+
+ /* Format name of the tool to search for */
+ fn_format(tool_path, tool_name,
+ path, "", MYF(MY_REPLACE_DIR));
+
+ verbose("Looking for '%s' in: %s", tool_name, tool_path);
+
+ /* Make sure the tool exists */
+ if (my_access(tool_path, F_OK) != 0)
+ die("Can't find '%s'", tool_path);
+
+ /*
+ Make sure it can be executed, otherwise try again
+ in higher level directory
+ */
}
- /* everything's all right */
- ret= 0;
-error:
- dynstr_free(&buf);
-
- if (defaults_file >= 0)
- ret|= my_close(defaults_file, MYF(MY_WME));
-
- if (ret)
- my_delete(path, MYF(0));
-
-out:
+ while(run_tool(tool_path,
+ &ds_tmp, /* Get output from command, discard*/
+ "--help",
+ "2>&1",
+ IF_WIN("> NUL", "> /dev/null"),
+ NULL));
+
+ dynstr_free(&ds_tmp);
+
+ DBUG_VOID_RETURN;
+}
+
+
+/*
+ Run query using "mysql"
+*/
+
+static int run_query(const char *query, DYNAMIC_STRING *ds_res,
+ my_bool force)
+{
+ int ret;
+ File fd;
+ char query_file_path[FN_REFLEN];
+ DBUG_ENTER("run_query");
+ DBUG_PRINT("enter", ("query: %s", query));
+ if ((fd= create_temp_file(query_file_path, NULL,
+ "sql", O_CREAT | O_SHARE | O_RDWR,
+ MYF(MY_WME))) < 0)
+ die("Failed to create temporary file for defaults");
+
+ if (my_write(fd, query, strlen(query),
+ MYF(MY_FNABP | MY_WME)))
+ die("Failed to write to '%s'", query_file_path);
+
+ ret= run_tool(mysql_path,
+ ds_res,
+ ds_args.str,
+ "--database=mysql",
+ "--batch", /* Turns off pager etc. */
+ force ? "--force": "--skip-force",
+ ds_res ? "--silent": "",
+ "<",
+ query_file_path,
+ "2>&1",
+ NULL);
+
+ my_close(fd, MYF(0));
+
DBUG_RETURN(ret);
}
-/* Compare filenames */
-static int comp_names(struct fileinfo *a, struct fileinfo *b)
+/*
+ Extract the value returned from result of "show variable like ..."
+*/
+
+static int extract_variable_from_show(DYNAMIC_STRING* ds, char* value)
{
- return (strcmp(a->name,b->name));
+ char *value_start, *value_end;
+ /*
+ The query returns "datadir\t<datadir>\n", skip past
+ the tab
+ */
+ if ((value_start= strchr(ds->str, '\t')) == NULL)
+ return 1; /* Unexpected result */
+ value_start++;
+
+ /* Don't copy the ending newline */
+ if ((value_end= strchr(value_start, '\n')) == NULL)
+ return 1; /* Unexpected result */
+
+ strncpy(value, value_start, min(FN_REFLEN, value_end-value_start));
+ return 0;
}
-static int find_file(const char *name, const char *root,
- uint flags, char *result, size_t len, ...)
+static int get_upgrade_info_file_name(char* name)
{
- int ret= 1;
- va_list va;
- const char *subdir;
- char *cp;
- FILEINFO key;
-
- /* Init key with name of the file to look for */
- key.name= (char*)name;
-
- DBUG_ASSERT(root != NULL);
-
- cp= strmake(result, root, len);
- if (cp[-1] != FN_LIBCHAR)
- *cp++= FN_LIBCHAR;
-
- va_start(va, len);
- subdir= (!(flags & MY_SEARCH_SELF)) ? va_arg(va, char *) : "";
- while (subdir)
+ DYNAMIC_STRING ds_datadir;
+ DBUG_ENTER("get_upgrade_info_file_name");
+
+ if (init_dynamic_string(&ds_datadir, NULL, 32, 32))
+ die("Out of memory");
+
+ if (run_query("show variables like 'datadir'",
+ &ds_datadir, FALSE) ||
+ extract_variable_from_show(&ds_datadir, name))
{
- MY_DIR *dir;
- FILEINFO *match;
- char *cp1;
-
- cp1= strnmov(cp, subdir, len - (cp - result) - 1);
-
- dir= my_dir(result, (flags & MY_ISDIR) ? MY_WANT_STAT : MYF(0));
- if (dir)
- {
- match= bsearch(&key, dir->dir_entry, dir->number_off_files,
- sizeof(FILEINFO), (qsort_cmp)comp_names);
- if (match)
- {
- ret= (flags & MY_ISDIR) ? !MY_S_ISDIR(match->mystat->st_mode) : 0;
- if (!ret)
- {
- if (cp1[-1] != FN_LIBCHAR)
- *cp1++= FN_LIBCHAR;
-
- if (!(flags & MY_PARENT))
- strnmov(cp1, name, len - (cp1 - result));
- else
- *cp1= '\0';
-
- my_dirend(dir);
- break;
- }
- }
- my_dirend(dir);
- }
- subdir= va_arg(va, char *);
+ dynstr_free(&ds_datadir);
+ DBUG_RETURN(1); /* Query failed */
}
- va_end(va);
- return ret;
+
+ dynstr_free(&ds_datadir);
+
+ fn_format(name, "mysql_upgrade_info", name, "", MYF(0));
+ DBUG_PRINT("exit", ("name: %s", name));
+ DBUG_RETURN(0);
}
-int main(int argc, char **argv)
+/*
+ Read the content of mysql_upgrade_info file and
+ compare the version number form file against
+ version number wich mysql_upgrade was compiled for
+
+ NOTE
+ This is an optimization to avoid running mysql_upgrade
+ when it's already been performed for the particular
+ version of MySQL.
+
+ In case the MySQL server can't return the upgrade info
+ file it's always better to report that the upgrade hasn't
+ been performed.
+
+*/
+
+static int upgrade_already_done(void)
{
- int ret;
-
- char *forced_defaults_file;
- char *forced_extra_defaults;
- char *local_defaults_group_suffix;
+ FILE *in;
+ char upgrade_info_file[FN_REFLEN]= {0};
+ char buf[sizeof(MYSQL_SERVER_VERSION)+1];
- char path[FN_REFLEN], upgrade_defaults_path[FN_REFLEN];
- DYNAMIC_STRING cmdline;
+ if (get_upgrade_info_file_name(upgrade_info_file))
+ return 0; /* Could not get filename => not sure */
- MY_INIT(argv[0]);
-#ifdef __NETWARE__
- setscreenmode(SCR_AUTOCLOSE_ON_EXIT);
-#endif
+ if (!(in= my_fopen(upgrade_info_file, O_RDONLY, MYF(0))))
+ return 0; /* Could not open file => not sure */
- /* Check if we are forced to use specific defaults */
- get_defaults_options(argc, argv,
- &forced_defaults_file, &forced_extra_defaults,
- &local_defaults_group_suffix);
-
- load_defaults("my", load_default_groups, &argc, &argv);
- defaults_argv= argv;
-
- /*
- Must init_dynamic_string before handle_options because string is freed
- at error label.
- */
- if (init_dynamic_string(&cmdline, NULL, 2 * FN_REFLEN + 128, FN_REFLEN) ||
- handle_options(&argc, &argv, my_long_options, get_one_option))
- {
- ret= 1;
- goto error;
- }
- if (tty_password)
- opt_password= get_tty_password(NullS);
+ /*
+ Read from file, don't care if it fails since it
+ will be detected by the strncmp
+ */
+ bzero(buf, sizeof(buf));
+ fgets(buf, sizeof(buf), in);
- if (!basedir)
- {
- my_getwd(path, sizeof(path), MYF(0));
- basedir= my_strdup(path, MYF(0));
- if (find_file("errmsg.sys", basedir, MYF(0), path, sizeof(path),
- "share/mysql/english", NullS)
- || find_file(mysqld_name, basedir, MYF(0), path, sizeof(path),
- "bin", "libexec", NullS))
- {
- my_free((gptr)basedir, MYF(0));
- basedir= (char *)DEFAULT_MYSQL_HOME;
- }
- }
+ my_fclose(in, MYF(0));
- if (!datadir)
- {
- if (!find_file("mysql", basedir, MYF(MY_ISDIR|MY_PARENT),
- path, sizeof(path),
- "data", "var", NullS))
- datadir= my_strdup(path, MYF(0));
- else
- datadir= (char *)DATADIR;
- }
- if (find_file("user.frm", datadir, MYF(0), path, sizeof(path),
- "mysql", NullS))
+ return (strncmp(buf, MYSQL_SERVER_VERSION,
+ sizeof(MYSQL_SERVER_VERSION)-1)==0);
+}
+
+
+/*
+ Write mysql_upgrade_info file in servers data dir indicating that
+ upgrade has been done for this version
+
+ NOTE
+ This might very well fail but since it's just an optimization
+ to run mysql_upgrade only when necessary the error can be
+ ignored.
+
+*/
+
+static void create_mysql_upgrade_info_file(void)
+{
+ FILE *out;
+ char upgrade_info_file[FN_REFLEN]= {0};
+
+ if (get_upgrade_info_file_name(upgrade_info_file))
+ return; /* Could not get filename => skip */
+
+ if (!(out= my_fopen(upgrade_info_file, O_TRUNC | O_WRONLY, MYF(0))))
{
- ret= 1;
fprintf(stderr,
- "Can't find data directory. Please restart with"
- " --datadir=path-to-writable-data-dir");
- goto error;
+ "Could not create the upgrade info file '%s' in "
+ "the MySQL Servers datadir, errno: %d\n",
+ upgrade_info_file, errno);
+ return;
}
- /*
- Create the modified defaults file to be used by mysqlcheck
- and mysql command line client
- */
- fn_format(upgrade_defaults_path, UPGRADE_DEFAULTS_NAME, datadir, "", MYF(0));
- create_defaults_file(upgrade_defaults_path, forced_extra_defaults);
-
+ /* Write new version to file */
+ fputs(MYSQL_SERVER_VERSION, out);
+ my_fclose(out, MYF(0));
/*
- Read the mysql_upgrade_info file to check if mysql_upgrade
- already has been done
- Maybe this could be done a little earlier?
+ Check if the upgrad_info_file was properly created/updated
+ It's not a fatal error -> just print a message if it fails
*/
- if (!find_file(MYSQL_UPGRADE_INFO_NAME, datadir, MY_SEARCH_SELF,
- path, sizeof(path), NULL, NullS)
- && !opt_force)
- {
- char buf[sizeof(MYSQL_SERVER_VERSION)];
- int fd, cnt;
-
- fd= my_open(path, O_RDONLY, MYF(0));
- cnt= my_read(fd, buf, sizeof(buf) - 1, MYF(0));
- my_close(fd, MYF(0));
- buf[cnt]= 0;
- if (!strcmp(buf, MYSQL_SERVER_VERSION))
- {
- if (opt_verbose)
- puts("mysql_upgrade has already been done for this version");
- goto fix_priv_tables;
- }
- }
+ if (!upgrade_already_done())
+ fprintf(stderr,
+ "Could not write to the upgrade info file '%s' in "
+ "the MySQL Servers datadir, errno: %d\n",
+ upgrade_info_file, errno);
+ return;
+}
- /* Find mysqlcheck */
- if (find_file(mysqlcheck_name, basedir, MYF(0), path, sizeof(path),
- "bin", EXTRA_CLIENT_PATHS, NullS))
- {
- ret= 1;
- fprintf(stderr,
- "Can't find program '%s'\n"
- "Please restart with --basedir=mysql-install-directory",
- mysqlcheck_name);
- goto error;
- }
- else
+/*
+ Check and upgrade(if neccessary) all tables
+ in the server using "mysqlcheck --check-upgrade .."
+*/
+
+static int run_mysqlcheck_upgrade(void)
+{
+ verbose("Running 'mysqlcheck'...");
+ return run_tool(mysqlcheck_path,
+ NULL, /* Send output from mysqlcheck directly to screen */
+ ds_args.str,
+ "--check-upgrade",
+ "--all-databases",
+ "--auto-repair",
+ NULL);
+}
+
+
+static const char *expected_errors[]=
+{
+ "ERROR 1060", /* Duplicate column name */
+ "ERROR 1061", /* Duplicate key name */
+ "ERROR 1054", /* Unknown column */
+ 0
+};
+
+
+static my_bool is_expected_error(const char* line)
+{
+ const char** error= expected_errors;
+ while (*error)
{
-#ifdef __WIN__
- /* Windows requires an extra pair of quotes around the entire string. */
- dynstr_set(&cmdline, "\"");
-#else
- dynstr_set(&cmdline, "");
-#endif /* __WIN__ */
- dynstr_append_os_quoted(&cmdline, path, NullS);
+ /*
+ Check if lines starting with ERROR
+ are in the list of expected errors
+ */
+ if (strncmp(line, "ERROR", 5) != 0 ||
+ strncmp(line, *error, strlen(*error)) == 0)
+ return 1; /* Found expected error */
+ error++;
}
+ return 0;
+}
- /*
- All settings have been written to the "upgrade_defaults_path"
- instruct mysqlcheck to only read options from that file
- */
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--defaults-file=",
- upgrade_defaults_path, NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--check-upgrade", NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--all-databases", NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--auto-repair", NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--user=", user, NullS);
-#ifdef __WIN__
- dynstr_append(&cmdline, "\"");
-#endif /* __WIN__ */
-
- /* Execute mysqlcheck */
- if (opt_verbose)
- printf("Running %s\n", cmdline.str);
- DBUG_PRINT("info", ("Running: %s", cmdline.str));
- ret= system(cmdline.str);
- if (ret)
+
+static char* get_line(char* line)
+{
+ while (*line && *line != '\n')
+ line++;
+ if (*line)
+ line++;
+ return line;
+}
+
+
+/* Print the current line to stderr */
+static void print_line(char* line)
+{
+ while (*line && *line != '\n')
{
- fprintf(stderr, "Error executing '%s'\n", cmdline.str);
- goto error;
+ fputc(*line, stderr);
+ line++;
}
+ fputc('\n', stderr);
+}
- fn_format(path, MYSQL_UPGRADE_INFO_NAME, datadir, "", MYF(0));
- ret= create_check_file(path);
- if (ret)
- goto error;
-fix_priv_tables:
- /* Find mysql */
- if (find_file(mysql_name, basedir, MYF(0), path, sizeof(path),
- "bin", EXTRA_CLIENT_PATHS, NullS))
+/*
+ Update all system tables in MySQL Server to current
+ version using "mysql" to execute all the SQL commands
+ compiled into the mysql_fix_privilege_tables array
+*/
+
+static int run_sql_fix_privilege_tables(void)
+{
+ int found_real_errors= 0;
+ DYNAMIC_STRING ds_result;
+ DBUG_ENTER("run_sql_fix_privilege_tables");
+
+ if (init_dynamic_string(&ds_result, "", 512, 512))
+ die("Out of memory");
+
+ verbose("Running 'mysql_fix_privilege_tables'...");
+ run_query(mysql_fix_privilege_tables,
+ &ds_result, /* Collect result */
+ TRUE);
+
{
- ret= 1;
- fprintf(stderr,
- "Could not find MySQL command-line client (mysql).\n"
- "Please use --basedir to specify the directory"
- " where MySQL is installed.");
- goto error;
+ /*
+ Scan each line of the result for real errors
+ and ignore the expected one(s) like "Duplicate column name",
+ "Unknown column" and "Duplicate key name" since they just
+ indicate the system tables are already up to date
+ */
+ char *line= ds_result.str;
+ do
+ {
+ if (!is_expected_error(line))
+ {
+ /* Something unexpected failed, dump error line to screen */
+ found_real_errors++;
+ print_line(line);
+ }
+ } while ((line= get_line(line)) && *line);
}
- else
+
+ dynstr_free(&ds_result);
+ return found_real_errors;
+}
+
+
+static const char *load_default_groups[]=
+{
+ "client", /* Read settings how to connect to server */
+ "mysql_upgrade", /* Read special settings for mysql_upgrade*/
+ 0
+};
+
+
+int main(int argc, char **argv)
+{
+ MY_INIT(argv[0]);
+#ifdef __NETWARE__
+ setscreenmode(SCR_AUTOCLOSE_ON_EXIT);
+#endif
+
+ if (init_dynamic_string(&ds_args, "", 512, 256))
+ die("Out of memory");
+
+ load_defaults("my", load_default_groups, &argc, &argv);
+ defaults_argv= argv; /* Must be freed by 'free_defaults' */
+
+ if (handle_options(&argc, &argv, my_long_options, get_one_option))
+ die(NULL);
+
+ if (tty_password)
{
-#ifdef __WIN__
- /* Windows requires an extra pair of quotes around the entire string. */
- dynstr_set(&cmdline, "\"");
-#else
- dynstr_set(&cmdline, "");
-#endif /* __WIN__ */
- dynstr_append_os_quoted(&cmdline, path, NullS);
+ opt_password= get_tty_password(NullS);
+ /* add password to defaults file */
+ dynstr_append_os_quoted(&ds_args, "--password=", opt_password, NullS);
+ dynstr_append(&ds_args, " ");
}
+ /* add user to defaults file */
+ dynstr_append_os_quoted(&ds_args, "--user=", opt_user, NullS);
+ dynstr_append(&ds_args, " ");
+
+ /* Find mysql */
+ find_tool(mysql_path, IF_WIN("mysql.exe", "mysql"));
- /* Find mysql_fix_privililege_tables.sql */
- if (find_file(MYSQL_FIX_PRIV_TABLES_NAME, basedir, MYF(0),
- path, sizeof(path),
- "support_files", "share", "share/mysql", "scripts",
- NullS)
- && find_file(MYSQL_FIX_PRIV_TABLES_NAME, "/usr/local/mysql", MYF(0),
- path, sizeof(path),
- "share/mysql", NullS))
+ /* Find mysqlcheck */
+ find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"));
+
+ /*
+ Read the mysql_upgrade_info file to check if mysql_upgrade
+ already has been run for this installation of MySQL
+ */
+ if (!opt_force && upgrade_already_done())
{
- ret= 1;
- fprintf(stderr,
- "Could not find file " MYSQL_FIX_PRIV_TABLES_NAME "\n"
- "Please use --basedir to specify the directory"
- " where MySQL is installed");
- goto error;
+ printf("This installation of MySQL is already upgraded to %s, "
+ "use --force if you still need to run mysql_upgrade\n",
+ MYSQL_SERVER_VERSION);
+ die(NULL);
}
/*
- All settings have been written to the "upgrade_defaults_path",
- instruct mysql to only read options from that file
+ Run "mysqlcheck" and "mysql_fix_privilege_tables.sql"
*/
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--defaults-file=",
- upgrade_defaults_path, NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--force", NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--no-auto-rehash", NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--batch", NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--user=", user, NullS);
- dynstr_append(&cmdline, " ");
- dynstr_append_os_quoted(&cmdline, "--database=mysql", NullS);
- dynstr_append(&cmdline, " < ");
- dynstr_append_os_quoted(&cmdline, path, NullS);
-#ifdef __WIN__
- dynstr_append(&cmdline, "\"");
-#endif /* __WIN__ */
-
- /* Execute "mysql --force < mysql_fix_privilege_tables.sql" */
- if (opt_verbose)
- printf("Running %s\n", cmdline.str);
- DBUG_PRINT("info", ("Running: %s", cmdline.str));
- ret= system(cmdline.str);
- if (ret)
- fprintf(stderr, "Error executing '%s'\n", cmdline.str);
-
-error:
- dynstr_free(&cmdline);
+ if (run_mysqlcheck_upgrade() ||
+ run_sql_fix_privilege_tables())
+ {
+ /*
+ The upgrade failed to complete in some way or another,
+ significant error message should have been printed to the screen
+ */
+ die("Upgrade failed" );
+ }
+ verbose("OK");
- /* Delete the generated defaults file */
- my_delete(upgrade_defaults_path, MYF(0));
+ /* Create a file indicating upgrade has been performed */
+ create_mysql_upgrade_info_file();
- free_defaults(defaults_argv);
- my_end(info_flag ? MY_CHECK_ERROR : 0);
- return ret;
+ free_used_memory();
+ my_end(MY_CHECK_ERROR);
+ exit(0);
}
diff --git a/client/mysqltest.c b/client/mysqltest.c
index 12047856b82..8dc70249f60 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -33,18 +33,12 @@
#define MTEST_VERSION "3.2"
-#include <my_global.h>
-#include <mysql_embed.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <mysql.h>
+#include "client_priv.h"
#include <mysql_version.h>
#include <mysqld_error.h>
-#include <errmsg.h>
#include <m_ctype.h>
#include <my_dir.h>
#include <hash.h>
-#include <my_getopt.h>
#include <stdarg.h>
#include <violite.h>
#include "my_regex.h" /* Our own version of regex */
@@ -52,14 +46,6 @@
#include <sys/wait.h>
#endif
-#ifndef WEXITSTATUS
-# ifdef __WIN__
-# define WEXITSTATUS(stat_val) (stat_val)
-# else
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-# endif
-#endif
-
/* Use cygwin for --exec and --system before 5.0 */
#if MYSQL_VERSION_ID < 50000
#define USE_CYGWIN
@@ -81,11 +67,9 @@
};
enum {
- OPT_SKIP_SAFEMALLOC=256, OPT_SSL_SSL, OPT_SSL_KEY, OPT_SSL_CERT,
- OPT_SSL_CA, OPT_SSL_CAPATH, OPT_SSL_CIPHER, OPT_PS_PROTOCOL,
- OPT_SP_PROTOCOL, OPT_CURSOR_PROTOCOL, OPT_VIEW_PROTOCOL,
- OPT_SSL_VERIFY_SERVER_CERT, OPT_MAX_CONNECT_RETRIES,
- OPT_MARK_PROGRESS, OPT_CHARSETS_DIR, OPT_LOG_DIR, OPT_DEBUG_INFO
+ OPT_SKIP_SAFEMALLOC=OPT_MAX_CLIENT_OPTION,
+ OPT_PS_PROTOCOL, OPT_SP_PROTOCOL, OPT_CURSOR_PROTOCOL, OPT_VIEW_PROTOCOL,
+ OPT_MAX_CONNECT_RETRIES, OPT_MARK_PROGRESS, OPT_LOG_DIR
};
static int record= 0, opt_sleep= -1;
@@ -103,8 +87,8 @@ static my_bool sp_protocol= 0, sp_protocol_enabled= 0;
static my_bool view_protocol= 0, view_protocol_enabled= 0;
static my_bool cursor_protocol= 0, cursor_protocol_enabled= 0;
static my_bool parsing_disabled= 0;
-static my_bool info_flag;
-static my_bool display_result_vertically= FALSE, display_metadata= FALSE;
+static my_bool display_result_vertically= FALSE,
+ display_metadata= FALSE, display_result_sorted= FALSE;
static my_bool disable_query_log= 0, disable_result_log= 0;
static my_bool disable_warnings= 0;
static my_bool disable_info= 1;
@@ -271,14 +255,14 @@ enum enum_commands {
Q_EXEC, Q_DELIMITER,
Q_DISABLE_ABORT_ON_ERROR, Q_ENABLE_ABORT_ON_ERROR,
Q_DISPLAY_VERTICAL_RESULTS, Q_DISPLAY_HORIZONTAL_RESULTS,
- Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL,
+ Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL, Q_QUERY_SORTED,
Q_START_TIMER, Q_END_TIMER,
Q_CHARACTER_SET, Q_DISABLE_PS_PROTOCOL, Q_ENABLE_PS_PROTOCOL,
Q_DISABLE_RECONNECT, Q_ENABLE_RECONNECT,
Q_IF,
Q_DISABLE_PARSING, Q_ENABLE_PARSING,
Q_REPLACE_REGEX, Q_REMOVE_FILE, Q_FILE_EXIST,
- Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_EXIT,
+ Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_EXIT, Q_SKIP,
Q_CHMOD_FILE, Q_APPEND_FILE, Q_CAT_FILE, Q_DIFF_FILES,
Q_UNKNOWN, /* Unknown command. */
@@ -341,6 +325,7 @@ const char *command_names[]=
"horizontal_results",
"query_vertical",
"query_horizontal",
+ "query_sorted",
"start_timer",
"end_timer",
"character_set",
@@ -358,8 +343,10 @@ const char *command_names[]=
"copy_file",
"perl",
"die",
+
/* Don't execute any more commands, compare result */
"exit",
+ "skip",
"chmod",
"append_file",
"cat_file",
@@ -412,12 +399,10 @@ struct st_command
TYPELIB command_typelib= {array_elements(command_names),"",
command_names, 0};
-static DYNAMIC_STRING ds_res, ds_progress, ds_warning_messages;
-static DYNAMIC_STRING global_ds_warnings, global_eval_query;
+DYNAMIC_STRING ds_res, ds_progress, ds_warning_messages;
char builtin_echo[FN_REFLEN];
-
void die(const char *fmt, ...)
ATTRIBUTE_FORMAT(printf, 1, 2);
void abort_not_supported_test(const char *fmt, ...)
@@ -487,6 +472,7 @@ void replace_dynstr_append_mem(DYNAMIC_STRING *ds, const char *val,
int len);
void replace_dynstr_append(DYNAMIC_STRING *ds, const char *val);
void replace_dynstr_append_uint(DYNAMIC_STRING *ds, uint val);
+void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING* ds_input);
void handle_error(struct st_command*,
unsigned int err_errno, const char *err_error,
@@ -794,9 +780,6 @@ void free_used_memory()
dynstr_free(&ds_res);
dynstr_free(&ds_progress);
dynstr_free(&ds_warning_messages);
- dynstr_free(&global_ds_warnings);
- dynstr_free(&global_eval_query);
-
free_all_replace();
my_free(opt_pass,MYF(MY_ALLOW_ZERO_PTR));
free_defaults(default_argv);
@@ -815,27 +798,66 @@ void free_used_memory()
}
+static void cleanup_and_exit(int exit_code)
+{
+ free_used_memory();
+ my_end(MY_CHECK_ERROR);
+
+ if (!silent)
+ {
+ switch (exit_code)
+ {
+ case 1:
+ printf("not ok\n");
+ break;
+ case 0:
+ printf("ok\n");
+ break;
+ case 62:
+ printf("skipped\n");
+ break;
+ default:
+ printf("unknown exit code: %d\n", exit_code);
+ DBUG_ASSERT(0);
+ }
+ }
+
+ exit(exit_code);
+}
+
void die(const char *fmt, ...)
{
+ static int dying= 0;
va_list args;
DBUG_ENTER("die");
DBUG_PRINT("enter", ("start_lineno: %d", start_lineno));
+ /*
+ Protect against dying twice
+ first time 'die' is called, try to write log files
+ second time, just exit
+ */
+ if (dying)
+ cleanup_and_exit(1);
+ dying= 1;
+
/* Print the error message */
- va_start(args, fmt);
+ fprintf(stderr, "mysqltest: ");
+ if (cur_file && cur_file != file_stack)
+ fprintf(stderr, "In included file \"%s\": ",
+ cur_file->file_name);
+ if (start_lineno > 0)
+ fprintf(stderr, "At line %u: ", start_lineno);
if (fmt)
{
- fprintf(stderr, "mysqltest: ");
- if (cur_file && cur_file != file_stack)
- fprintf(stderr, "In included file \"%s\": ",
- cur_file->file_name);
- if (start_lineno > 0)
- fprintf(stderr, "At line %u: ", start_lineno);
+ va_start(args, fmt);
vfprintf(stderr, fmt, args);
- fprintf(stderr, "\n");
- fflush(stderr);
+ va_end(args);
}
- va_end(args);
+ else
+ fprintf(stderr, "unknown error");
+ fprintf(stderr, "\n");
+ fflush(stderr);
/* Dump the result that has been accumulated so far to .log file */
if (result_file_name && ds_res.length)
@@ -845,14 +867,7 @@ void die(const char *fmt, ...)
if (result_file_name && ds_warning_messages.length)
dump_warning_messages();
- /* Clean up and exit */
- free_used_memory();
- my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
-
- if (!silent)
- printf("not ok\n");
-
- exit(1);
+ cleanup_and_exit(1);
}
@@ -885,14 +900,7 @@ void abort_not_supported_test(const char *fmt, ...)
}
va_end(args);
- /* Clean up and exit */
- free_used_memory();
- my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
-
- if (!silent)
- printf("skipped\n");
-
- exit(62);
+ cleanup_and_exit(62);
}
@@ -1305,23 +1313,31 @@ void var_set(const char *var_name, const char *var_name_end,
DBUG_VOID_RETURN;
}
+
+void var_set_string(const char* name, const char* value)
+{
+ var_set(name, name + strlen(name), value, value + strlen(value));
+}
+
+
+void var_set_int(const char* name, int value)
+{
+ char buf[21];
+ my_snprintf(buf, sizeof(buf), "%d", value);
+ var_set_string(name, buf);
+}
+
+
/*
Store an integer (typically the returncode of the last SQL)
- statement in the mysqltest builtin variable $mysql_errno, by
- simulating of a user statement "let $mysql_errno= <integer>"
+ statement in the mysqltest builtin variable $mysql_errno
*/
void var_set_errno(int sql_errno)
{
- /* TODO MASV make easier */
- const char *var_name= "$mysql_errno";
- char var_val[21];
- uint length= my_sprintf(var_val, (var_val, "%d", sql_errno));
- var_set(var_name, var_name + 12, var_val, var_val + length);
- return;
+ var_set_int("$mysql_errno", sql_errno);
}
-
/*
Set variable from the result of a query
@@ -1352,6 +1368,7 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
MYSQL_RES *res;
MYSQL_ROW row;
MYSQL* mysql = &cur_con->mysql;
+ DYNAMIC_STRING ds_query;
DBUG_ENTER("var_query_set");
LINT_INIT(res);
@@ -1361,13 +1378,17 @@ void var_query_set(VAR *var, const char *query, const char** query_end)
die("Syntax error in query, missing '`'");
++query;
- if (mysql_real_query(mysql, query, (int)(end - query)) ||
+ /* Eval the query, thus replacing all environment variables */
+ init_dynamic_string(&ds_query, 0, (end - query) + 32, 256);
+ do_eval(&ds_query, query, end, FALSE);
+
+ if (mysql_real_query(mysql, ds_query.str, ds_query.length) ||
!(res = mysql_store_result(mysql)))
{
- *end = 0;
- die("Error running query '%s': %d %s", query,
+ die("Error running query '%s': %d %s", ds_query.str,
mysql_errno(mysql), mysql_error(mysql));
}
+ dynstr_free(&ds_query);
if ((row = mysql_fetch_row(res)) && row[0])
{
@@ -4236,8 +4257,6 @@ static struct my_option my_long_options[] =
{"debug", '#', "Output debug log. Often this is 'd:t:o,filename'.",
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"debug-info", OPT_DEBUG_INFO, "Print some debug info at exit.", (gptr*) &info_flag,
- (gptr*) &info_flag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"host", 'h', "Connect to host.", (gptr*) &opt_host, (gptr*) &opt_host, 0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"include", 'i', "Include SQL before each test case.", (gptr*) &opt_include,
@@ -4245,7 +4264,7 @@ static struct my_option my_long_options[] =
{"logdir", OPT_LOG_DIR, "Directory for log files", (gptr*) &opt_logdir,
(gptr*) &opt_logdir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"mark-progress", OPT_MARK_PROGRESS,
- "Write linenumber and elapsed time to <testname>.progress",
+ "Write linenumber and elapsed time to <testname>.progress ",
(gptr*) &opt_mark_progress, (gptr*) &opt_mark_progress, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"max-connect-retries", OPT_MAX_CONNECT_RETRIES,
@@ -4547,17 +4566,18 @@ void dump_result_to_log_file(char *buf, int size)
{
char log_file[FN_REFLEN];
str_to_file(fn_format(log_file, result_file_name, opt_logdir, ".log",
- *opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT:
+ *opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT :
MY_REPLACE_EXT),
buf, size);
}
void dump_progress(void)
{
- char log_file[FN_REFLEN];
- str_to_file(fn_format(log_file, result_file_name, opt_logdir, ".progress",
- *opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT:
- MY_REPLACE_EXT),
+ char progress_file[FN_REFLEN];
+ str_to_file(fn_format(progress_file, result_file_name,
+ opt_logdir, ".progress",
+ *opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT :
+ MY_REPLACE_EXT),
ds_progress.str, ds_progress.length);
}
@@ -4565,7 +4585,8 @@ void dump_warning_messages(void)
{
char warn_file[FN_REFLEN];
- str_to_file(fn_format(warn_file, result_file_name, "", ".warnings",
+ str_to_file(fn_format(warn_file, result_file_name, opt_logdir, ".warnings",
+ *opt_logdir ? MY_REPLACE_DIR | MY_REPLACE_EXT :
MY_REPLACE_EXT),
ds_warning_messages.str, ds_warning_messages.length);
}
@@ -5518,7 +5539,11 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
{
MYSQL *mysql= &cn->mysql;
DYNAMIC_STRING *ds;
+ DYNAMIC_STRING *save_ds= NULL;
DYNAMIC_STRING ds_result;
+ DYNAMIC_STRING ds_sorted;
+ DYNAMIC_STRING ds_warnings;
+ DYNAMIC_STRING eval_query;
char *query;
int query_len;
my_bool view_created= 0, sp_created= 0;
@@ -5526,7 +5551,7 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
(flags & QUERY_REAP_FLAG));
DBUG_ENTER("run_query");
- init_dynamic_string(&global_ds_warnings, NULL, 0, 256);
+ init_dynamic_string(&ds_warnings, NULL, 0, 256);
/* Scan for warning before sendign to server */
scan_command_for_warnings(command);
@@ -5536,10 +5561,10 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
*/
if (command->type == Q_EVAL)
{
- init_dynamic_string(&global_eval_query, "", command->query_len+256, 1024);
- do_eval(&global_eval_query, command->query, command->end, FALSE);
- query = global_eval_query.str;
- query_len = global_eval_query.length;
+ init_dynamic_string(&eval_query, "", command->query_len+256, 1024);
+ do_eval(&eval_query, command->query, command->end, FALSE);
+ query = eval_query.str;
+ query_len = eval_query.length;
}
else
{
@@ -5611,7 +5636,7 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
Collect warnings from create of the view that should otherwise
have been produced when the SELECT was executed
*/
- append_warnings(&global_ds_warnings, cur_con->util_mysql);
+ append_warnings(&ds_warnings, cur_con->util_mysql);
}
dynstr_free(&query_str);
@@ -5658,6 +5683,18 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
dynstr_free(&query_str);
}
+ if (display_result_sorted)
+ {
+ /*
+ Collect the query output in a separate string
+ that can be sorted before it's added to the
+ global result string
+ */
+ init_dynamic_string(&ds_sorted, "", 1024, 1024);
+ save_ds= ds; /* Remember original ds */
+ ds= &ds_sorted;
+ }
+
/*
Find out how to run this query
@@ -5670,10 +5707,18 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
if (ps_protocol_enabled &&
complete_query &&
match_re(&ps_re, query))
- run_query_stmt(mysql, command, query, query_len, ds, &global_ds_warnings);
+ run_query_stmt(mysql, command, query, query_len, ds, &ds_warnings);
else
run_query_normal(cn, command, flags, query, query_len,
- ds, &global_ds_warnings);
+ ds, &ds_warnings);
+
+ if (display_result_sorted)
+ {
+ /* Sort the result set and append it to result */
+ dynstr_append_sorted(save_ds, &ds_sorted);
+ ds= save_ds;
+ dynstr_free(&ds_sorted);
+ }
if (sp_created)
{
@@ -5697,11 +5742,11 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
check_require(ds, command->require_file);
}
- dynstr_free(&global_ds_warnings);
+ dynstr_free(&ds_warnings);
if (ds == &ds_result)
dynstr_free(&ds_result);
if (command->type == Q_EVAL)
- dynstr_free(&global_eval_query);
+ dynstr_free(&eval_query);
DBUG_VOID_RETURN;
}
@@ -5962,6 +6007,8 @@ int main(int argc, char **argv)
1024, 0, 0, get_var_key, var_free, MYF(0)))
die("Variable hash initialization failed");
+ var_set_string("$MYSQL_SERVER_VERSION", MYSQL_SERVER_VERSION);
+
memset(&master_pos, 0, sizeof(master_pos));
parser.current_line= parser.read_lines= 0;
@@ -6121,37 +6168,24 @@ int main(int argc, char **argv)
case Q_EVAL_RESULT:
eval_result = 1; break;
case Q_EVAL:
+ case Q_QUERY_VERTICAL:
+ case Q_QUERY_HORIZONTAL:
+ case Q_QUERY_SORTED:
if (command->query == command->query_buf)
{
+ /* Skip the first part of command, i.e query_xxx */
command->query= command->first_argument;
command->first_word_len= 0;
}
/* fall through */
- case Q_QUERY_VERTICAL:
- case Q_QUERY_HORIZONTAL:
- {
- my_bool old_display_result_vertically= display_result_vertically;
-
- /* Remove "query_*" if this is first iteration */
- if (command->query == command->query_buf)
- command->query= command->first_argument;
-
- display_result_vertically= (command->type == Q_QUERY_VERTICAL);
- if (save_file[0])
- {
- strmake(command->require_file, save_file, sizeof(save_file));
- save_file[0]= 0;
- }
- run_query(cur_con, command, QUERY_REAP_FLAG|QUERY_SEND_FLAG);
- display_result_vertically= old_display_result_vertically;
- command->last_argument= command->end;
- command_executed++;
- break;
- }
case Q_QUERY:
case Q_REAP:
{
- int flags;
+ my_bool old_display_result_vertically= display_result_vertically;
+ my_bool old_display_result_sorted= display_result_sorted;
+ /* Default is full query, both reap and send */
+ int flags= QUERY_REAP_FLAG | QUERY_SEND_FLAG;
+
if (q_send_flag)
{
/* Last command was an empty 'send' */
@@ -6162,11 +6196,10 @@ int main(int argc, char **argv)
{
flags= QUERY_REAP_FLAG;
}
- else
- {
- /* full query, both reap and send */
- flags= QUERY_REAP_FLAG | QUERY_SEND_FLAG;
- }
+
+ /* Check for special property for this query */
+ display_result_vertically|= (command->type == Q_QUERY_VERTICAL);
+ display_result_sorted= (command->type == Q_QUERY_SORTED);
if (save_file[0])
{
@@ -6176,6 +6209,11 @@ int main(int argc, char **argv)
run_query(cur_con, command, flags);
command_executed++;
command->last_argument= command->end;
+
+ /* Restore settings */
+ display_result_vertically= old_display_result_vertically;
+ display_result_sorted= old_display_result_sorted;
+
break;
}
case Q_SEND:
@@ -6291,6 +6329,9 @@ int main(int argc, char **argv)
/* Stop processing any more commands */
abort_flag= 1;
break;
+ case Q_SKIP:
+ abort_not_supported_test("%s", command->first_argument);
+ break;
case Q_RESULT:
die("result, deprecated command");
@@ -6402,14 +6443,9 @@ int main(int argc, char **argv)
dump_warning_messages();
timer_output();
- free_used_memory();
- my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR);
-
/* Yes, if we got this far the test has suceeded! Sakila smiles */
- if (!silent)
- printf("ok\n");
- exit(0);
- return 0; /* Keep compiler happy */
+ cleanup_and_exit(0);
+ return 0; /* Keep compiler happy too */
}
@@ -7063,7 +7099,7 @@ int reg_replace(char** buf_p, int* buf_len_p, char *pattern,
if (back_ref_num >= 0 && back_ref_num <= (int)r.re_nsub)
{
regoff_t start_off, end_off;
- if ((start_off= subs[back_ref_num].rm_so) > -1 &&
+ if ((start_off=subs[back_ref_num].rm_so) > -1 &&
(end_off=subs[back_ref_num].rm_eo) > -1)
{
int block_len= (int) (end_off - start_off);
@@ -7788,3 +7824,73 @@ void replace_dynstr_append_uint(DYNAMIC_STRING *ds, uint val)
char *end= longlong10_to_str(val, buff, 10);
replace_dynstr_append_mem(ds, buff, end - buff);
}
+
+
+
+/*
+ Build a list of pointer to each line in ds_input, sort
+ the list and use the sorted list to append the strings
+ sorted to the output ds
+
+ SYNOPSIS
+ dynstr_append_sorted
+ ds - string where the sorted output will be appended
+ ds_input - string to be sorted
+
+*/
+
+static int comp_lines(const char **a, const char **b)
+{
+ return (strcmp(*a,*b));
+}
+
+void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input)
+{
+ unsigned i;
+ char *start= ds_input->str;
+ DYNAMIC_ARRAY lines;
+ DBUG_ENTER("dynstr_append_sorted");
+
+ if (!*start)
+ DBUG_VOID_RETURN; /* No input */
+
+ my_init_dynamic_array(&lines, sizeof(const char*), 32, 32);
+
+ /* First line is result header, skip past it */
+ while (*start && *start != '\n')
+ start++;
+ start++; /* Skip past \n */
+ dynstr_append_mem(ds, ds_input->str, start - ds_input->str);
+
+ /* Insert line(s) in array */
+ while (*start)
+ {
+ char* line_end= (char*)start;
+
+ /* Find end of line */
+ while (*line_end && *line_end != '\n')
+ line_end++;
+ *line_end= 0;
+
+ /* Insert pointer to the line in array */
+ if (insert_dynamic(&lines, (gptr) &start))
+ die("Out of memory inserting lines to sort");
+
+ start= line_end+1;
+ }
+
+ /* Sort array */
+ qsort(lines.buffer, lines.elements,
+ sizeof(char**), (qsort_cmp)comp_lines);
+
+ /* Create new result */
+ for (i= 0; i < lines.elements ; i++)
+ {
+ const char **line= dynamic_element(&lines, i, const char**);
+ dynstr_append(ds, *line);
+ dynstr_append(ds, "\n");
+ }
+
+ delete_dynamic(&lines);
+ DBUG_VOID_RETURN;
+}
diff --git a/configure.in b/configure.in
index 51c4ba19ee0..aecbe87ff8f 100644
--- a/configure.in
+++ b/configure.in
@@ -26,6 +26,9 @@ MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"`
MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"`
MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION | sed -e 's|[[^0-9.]].*$||;s|$|.|' | sed -e 's/[[^0-9.]]//g; s/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'`
+# Add previous major version for debian package upgrade path
+MYSQL_PREVIOUS_BASE_VERSION=5.0
+
# The port should be constant for a LONG time
MYSQL_TCP_PORT_DEFAULT=3306
MYSQL_UNIX_ADDR_DEFAULT="/tmp/mysql.sock"
@@ -55,6 +58,7 @@ romanian russian serbian slovak spanish swedish ukrainian"
AC_SUBST(MYSQL_NO_DASH_VERSION)
AC_SUBST(MYSQL_BASE_VERSION)
AC_SUBST(MYSQL_VERSION_ID)
+AC_SUBST(MYSQL_PREVIOUS_BASE_VERSION)
AC_SUBST(PROTOCOL_VERSION)
AC_DEFINE_UNQUOTED([PROTOCOL_VERSION], [$PROTOCOL_VERSION],
[mysql client protocol version])
@@ -2261,11 +2265,10 @@ AC_SUBST(tools_dirs)
#MYSQL_CHECK_CPU
libmysqld_dirs=
-linked_libmysqld_targets=
if test "$with_embedded_server" = "yes"
then
libmysqld_dirs=libmysqld
- linked_libmysqld_targets="linked_libmysqld_sources linked_libmysqldex_sources"
+
AC_CONFIG_FILES(libmysqld/Makefile libmysqld/examples/Makefile)
# We can't build embedded library without building the server, because
# we depend on libmysys, libmystrings, libmyisam, etc.
@@ -2275,7 +2278,6 @@ fi
# mysql_config --libmysqld-libs will print out something like
# -L/path/to/lib/mysql -lmysqld -lmyisam -lmysys -lmystrings -ldbug ...
AC_SUBST([libmysqld_dirs])
-AC_SUBST([linked_libmysqld_targets])
# Shall we build the docs?
AC_ARG_WITH(docs,
@@ -2456,7 +2458,6 @@ thread_dirs=
dnl This probably should be cleaned up more - for now the threaded
dnl client is just using plain-old libs.
sql_client_dirs=
-linked_client_targets="linked_libmysql_sources"
AM_CONDITIONAL(THREAD_SAFE_CLIENT, test "$THREAD_SAFE_CLIENT" != "no")
@@ -2465,7 +2466,6 @@ then
sql_client_dirs="strings regex mysys dbug extra libmysql client"
else
sql_client_dirs="strings regex mysys dbug extra libmysql libmysql_r client"
- linked_client_targets="$linked_client_targets linked_libmysql_r_sources"
AC_CONFIG_FILES(libmysql_r/Makefile)
AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should the client be thread safe])
fi
@@ -2477,18 +2477,14 @@ AC_SUBST(CLIENT_THREAD_LIBS)
AC_SUBST(NON_THREADED_LIBS)
AC_SUBST(STATIC_NSS_FLAGS)
AC_SUBST(sql_client_dirs)
-AC_SUBST(linked_client_targets)
-# If configuring for NetWare, set up to link sources from and build the netware directory
+# If configuring for NetWare, build the netware directory
netware_dir=
-linked_netware_sources=
if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null
then
netware_dir="netware"
- linked_netware_sources="linked_netware_sources"
fi
AC_SUBST(netware_dir)
-AC_SUBST(linked_netware_sources)
AM_CONDITIONAL(HAVE_NETWARE, test "$netware_dir" = "netware")
if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no"
@@ -2559,6 +2555,7 @@ AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
tests/Makefile Docs/Makefile support-files/Makefile dnl
support-files/MacOSX/Makefile support-files/RHEL4-SElinux/Makefile dnl
mysql-test/Makefile dnl
+ debian/Makefile debian/defs.mk debian/control dnl
mysql-test/ndb/Makefile netware/Makefile sql-bench/Makefile dnl
include/mysql_version.h plugin/Makefile win/Makefile)
diff --git a/debian/Makefile.am b/debian/Makefile.am
new file mode 100644
index 00000000000..14035865371
--- /dev/null
+++ b/debian/Makefile.am
@@ -0,0 +1,118 @@
+# Copyright (C) 2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+## Process this file with automake to create Makefile.in
+EXTRA_DIST = \
+ mysql-test-BASE.files.in \
+ libndbclientNLIB-dev.files.in \
+ mysql-server-BASE.config.in \
+ libndbclientNLIB.README.Debian.in \
+ mysql-server-BASE.postrm.in \
+ mysql-server-BASE.NEWS.in \
+ libndbclientNLIB.postinst.in \
+ mysql-server-BASE.links.in \
+ libndbclientNLIB.files.in \
+ source.lintian-overrides.in \
+ mysql-server-BASE.docs.in \
+ libmysqlclientSLIBoff.files.in \
+ mysql-server-BASE.files.in \
+ libndbclientNLIB-dev.links.in \
+ libmysqlclientSLIBoff.postinst.in \
+ mysql-extra-BASE.dirs.in \
+ libmysqlclientSLIB-dev.links.in \
+ mysql-server-BASE.dirs.in \
+ libmysqlclientSLIB-dev.examples.in \
+ mysql-client-BASE.lintian-overrides.in \
+ copyright.more \
+ libndbclientNLIB-dev.dirs.in \
+ mysql-server-BASE.README.Debian.in \
+ libmysqlclientSLIBoff.docs.in \
+ compat \
+ mysql-test-BASE.dirs.in \
+ libmysqlclientSLIB-dev.files.in \
+ libmysqlclientSLIBoff.dirs.in \
+ mysql-server-BASE.logcheck.ignore.server.in \
+ mysql-storage-BASE.mysql-storage.init.in \
+ libmysqlclientSLIBoff.README.Debian.in \
+ mysql-client-BASE.README.Debian.in \
+ Makefile.am \
+ mysql-server-BASE.prerm.in \
+ mysql-common.dirs.in \
+ defs.mk \
+ defs.mk.in \
+ mysql-server-BASE.mysql-server.logrotate.in \
+ mysql-common.README.Debian.in \
+ copyright \
+ mysql-storage-BASE.dirs.in \
+ mysql-common.preinst.in \
+ mysql-client-BASE.files.in \
+ mysql-server-BASE.templates.in \
+ mysql-tools-BASE.dirs.in \
+ mysql-management-BASE.mysql-management.init.in \
+ watch \
+ mysql-common.postrm.in \
+ mysql-server-BASE.preinst.in \
+ README.Maintainer \
+ mysql-tools-BASE.files.in \
+ mysql-client-BASE.NEWS.in \
+ mysql-server-BASE.lintian-overrides.in \
+ changelog \
+ mysql-server-BASE.logcheck.ignore.paranoid.in \
+ mysql-common.files.in \
+ mysql-server-BASE.logcheck.ignore.workstation.in \
+ mysql-extra-BASE.files.in \
+ mysql-management-BASE.files.in \
+ mysql-client-BASE.docs.in \
+ libmysqlclientSLIB-dev.README.Maintainer.in \
+ mysql-storage-BASE.files.in \
+ additions \
+ additions/ndb_mgmd.cnf \
+ additions/mysql-server.lintian-overrides \
+ additions/my.cnf \
+ mysql-server-BASE.postinst.in \
+ libndbclientNLIB.dirs.in \
+ po \
+ po/fr.po \
+ po/sv.po \
+ po/da.po \
+ po/es.po \
+ po/ja.po \
+ po/tr.po \
+ po/nb.po \
+ po/POTFILES.in.in \
+ po/cs.po \
+ po/pt.po \
+ po/gl.po \
+ po/pt_BR.po \
+ po/nl.po \
+ po/templates.pot \
+ po/de.po \
+ po/eu.po \
+ po/ro.po \
+ po/ru.po \
+ po/it.po \
+ po/ca.po \
+ mysql-client-BASE.dirs.in \
+ control.in \
+ libmysqlclientSLIB-dev.dirs.in \
+ mysql-server-PREV.preinst.in \
+ mysql-server.preinst.in \
+ mysql-management-BASE.dirs.in \
+ rules \
+ libmysqlclientSLIB-dev.docs.in
+
+# Don't update the files from bitkeeper
+%::SCCS/s.%
+
diff --git a/debian/README.Maintainer b/debian/README.Maintainer
new file mode 100644
index 00000000000..80b484d7a6c
--- /dev/null
+++ b/debian/README.Maintainer
@@ -0,0 +1,99 @@
+###########################################################################
+# Here are some information that are only of interest to the Debiani #
+# maintainers of MySQL. #
+###########################################################################
+
+#
+# Remarks to dependencies
+#
+libwrap0-dev (>= 7.6-8.3)
+ According to bug report 114582 where where build problems on
+ IA-64/sid with at least two prior versions.
+psmisc
+ /usr/bin/killall in the initscript
+
+zlib1g in libmysqlclient-dev:
+ "mysql_config --libs" adds "-lz"
+
+Build-Dep:
+
+debhelper (>=4.1.16):
+ See po-debconf(7).
+
+autoconf (>= 2.13-20), automake1.7
+ Try to get rid of them.
+
+doxygen, tetex-bin, tetex-extra, gs
+ for ndb/docs/*tex
+
+mysql-server-5.0: Pre-Depends: mysql-common
+ This was necessary as mysql-server-5.0.preinst checks for unmodified
+ conffiles from mysql-server-4.1 and copies 5.0 ones over them to avoid
+ unnecessary dpkg questions. As mysql-server-5.0 is not unpacked at its
+ pre-inst stage, it had to copy those files from a package that is
+ definetly already unpacked which does not have to be the case with Depends.
+
+#
+# Remarks to the start scripts
+#
+
+## initscripts rely on mysqladmin from a different package
+We have the problem that "/etc/init.d/mysql stop" relies on mysqladmin which
+is in another package (mysql-client) and a passwordless access that's maybe
+only available if the user configured his /root/.my.cnf. Can this be a problem?
+* normal mode: not because the user is required to have it. Else:
+* purge/remove: not, same as normal mode
+* upgrade: not, same as normal mode
+* first install: not, it depends on mysql-client which at least is unpacked
+ so mysqladmin is there (to ping). It is not yet configured
+ passwordles but if there's a server running then there's a
+ /root/.my.cnf. Anyways, we simply kill anything that's mysqld.
+
+## Passwordless access for the maintainer scripts
+Another issue is that the scripts needs passwordless access. To ensure this
+a debian-sys-maint user is configured which has process and shutdown privs.
+The file with the randomly (that's important!) generated password must be
+present as long as the databases remain installed because else a new install
+would have no access. This file should be used like:
+ mysqladmin --defaults-file=/etc/mysql/debian.cnf restart
+to avoid providing the password in plaintext on a commandline where it would
+be visible to any user via the "ps" command.
+
+## When to start the daemon?
+We aim to give the admin full control on when MySQL is running.
+Issues to be faced here:
+OLD:
+ 1. Debconf asks whether MySQL should be started on boot so update-rc.d is
+ only run if the answer has been yes. The admin is likely to forget
+ this decision but update-rc.d checks for an existing line in
+ /etc/runlevel.conf and leaves it intact.
+ 2. On initial install, if the answer is yes, the daemon has to be started.
+ 3. On upgrades it should only be started if it was already running, everything
+ else is confusing. Especiall relying on an debconf decision made month ago
+ is considered suboptimal. See bug #274264
+ Implementation so far:
+ prerm (called on upgrade before stopping the server):
+ check for a running server and set flag if necessary
+ preinst (called on initial install and before unpacking when upgrading):
+ check for the debconf variable and set flag if necessary
+ postinst (called on initial install and after each upgrade after unpacking):
+ call update-rc.d if debconf says yes
+ call invoce-rc.d if the flag has been set
+ Problems remaining:
+ dpkg-reconfigure and setting mysql start on boot to yes did not start mysql
+ (ok "start on boot" literally does not mean "start now" so that might have been ok)
+NEW:
+ 1. --- no debconf anymore for the sake of simplicity. We have runlevel.conf,
+ the admin should use it
+ 2. On initial install the server is started.
+ 3. On upgrades the server is started exactly if it was running before so the
+ runlevel configuration is irrelevant. It will be preserved by the mean of
+ update-rc.d's builtin check.
+ Implementation:
+ prerm (called on upgrade before stopping the server):
+ check for a running server and set flag if necessary
+ preinst (called on initial install and before unpacking when upgrading):
+ check for $1 beeing (initial) "install" and set flag
+ postinst (called on initial install and after each upgrade after unpacking):
+ call update-rc.d
+ call invoce-rc.d if the flag has been set
diff --git a/debian/additions/my.cnf b/debian/additions/my.cnf
new file mode 100644
index 00000000000..a569c041401
--- /dev/null
+++ b/debian/additions/my.cnf
@@ -0,0 +1,134 @@
+#
+# The MySQL database server configuration file.
+#
+# You can copy this to one of:
+# - "/etc/mysql/my.cnf" to set global options,
+# - "~/.my.cnf" to set user-specific options.
+#
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+#
+# For explanations see
+# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
+
+# This will be passed to all mysql clients
+# It has been reported that passwords should be enclosed with ticks/quotes
+# escpecially if they contain "#" chars...
+# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
+[client]
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+
+# Here is entries for some specific programs
+# The following values assume you have at least 32M ram
+
+# This was formally known as [safe_mysqld]. Both versions are currently parsed.
+[mysqld_safe]
+socket = /var/run/mysqld/mysqld.sock
+nice = 0
+
+[mysqld]
+#
+# * Basic Settings
+#
+user = mysql
+pid-file = /var/run/mysqld/mysqld.pid
+socket = /var/run/mysqld/mysqld.sock
+port = 3306
+basedir = /usr
+datadir = /var/lib/mysql
+tmpdir = /tmp
+language = /usr/share/mysql/english
+skip-external-locking
+#
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+bind-address = 127.0.0.1
+#
+# * Fine Tuning
+#
+key_buffer = 16M
+max_allowed_packet = 16M
+thread_stack = 128K
+thread_cache_size = 8
+#
+# * Query Cache Configuration
+#
+query_cache_limit = 1048576
+query_cache_size = 16777216
+query_cache_type = 1
+#
+# * Logging and Replication
+#
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+#log = /var/log/mysql/mysql.log
+#
+# Error logging goes to syslog. This is a Debian improvement :)
+#
+# Here you can see queries with especially long duration
+#log_slow_queries = /var/log/mysql/mysql-slow.log
+#
+# The following can be used as easy to replay backup logs or for replication.
+#server-id = 1
+log_bin = /var/log/mysql/mysql-bin.log
+# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
+expire_logs_days = 10
+max_binlog_size = 100M
+#binlog_do_db = include_database_name
+#binlog_ignore_db = include_database_name
+#
+# * BerkeleyDB
+#
+# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
+skip-bdb
+#
+# * InnoDB
+#
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
+#skip-innodb
+#
+# * Security Features
+#
+# Read the manual, too, if you want chroot!
+# chroot = /var/lib/mysql/
+#
+# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
+#
+# ssl-ca=/etc/mysql/cacert.pem
+# ssl-cert=/etc/mysql/server-cert.pem
+# ssl-key=/etc/mysql/server-key.pem
+
+
+
+[mysqldump]
+quick
+quote-names
+max_allowed_packet = 16M
+
+[mysql]
+#no-auto-rehash # faster start of mysql but no tab completition
+
+[isamchk]
+key_buffer = 16M
+
+#
+# * NDB Cluster
+#
+# See /usr/share/doc/mysql-server-*/README.Debian for more information.
+#
+# The following configuration is read by the NDB Data Nodes (ndbd processes)
+# not from the NDB Management Nodes (ndb_mgmd processes).
+#
+# [MYSQL_CLUSTER]
+# ndb-connectstring=127.0.0.1
+
+
+#
+# * IMPORTANT: Additional settings that can override those from this file!
+#
+!includedir /etc/mysql/conf.d/
+
diff --git a/debian/additions/mysql-server.lintian-overrides b/debian/additions/mysql-server.lintian-overrides
new file mode 100644
index 00000000000..9d741cf16e9
--- /dev/null
+++ b/debian/additions/mysql-server.lintian-overrides
@@ -0,0 +1,2 @@
+W: mysql-dfsg source: maintainer-script-lacks-debhelper-token debian/mysql-server.postinst
+W: mysql-server: possible-bashism-in-maintainer-script postinst:68 'p{("a".."z","A".."Z",0..9)[int(rand(62))]}'
diff --git a/debian/additions/ndb_mgmd.cnf b/debian/additions/ndb_mgmd.cnf
new file mode 100644
index 00000000000..d94a28ff705
--- /dev/null
+++ b/debian/additions/ndb_mgmd.cnf
@@ -0,0 +1,35 @@
+[NDBD DEFAULT]
+NoOfReplicas=2
+DataMemory=10MB
+IndexMemory=25MB
+MaxNoOfTables=256
+MaxNoOfOrderedIndexes=256
+MaxNoOfUniqueHashIndexes=128
+
+[MYSQLD DEFAULT]
+
+[NDB_MGMD DEFAULT]
+
+[TCP DEFAULT]
+
+[NDB_MGMD]
+Id=1 # the NDB Management Node (this one)
+HostName=127.0.0.1
+
+[NDBD]
+Id=2 # the first NDB Data Node
+HostName=127.0.0.1
+DataDir= /var/lib/mysql-cluster
+
+[NDBD]
+Id=3 # the second NDB Data Node
+HostName=127.0.0.1
+DataDir=/var/lib/mysql-cluster
+
+[MYSQLD]
+Id=4 # the first SQL node
+HostName=127.0.0.1
+
+# [MYSQLD]
+# Id=5 # the second SQL node
+# HostName=127.0.0.10
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 00000000000..2c1418746cc
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,3281 @@
+mysql-5.1 (5.1.18) UNRELEASED; urgency=low
+
+ * Branched for 5.1.
+
+ -- Monty Taylor <mtaylor@mysql.com> Fri, 20 Apr 2007 14:46:51 -0700
+
+mysql-5.0 (5.0.42) UNRELEASED; urgency=low
+
+ * Upgraded to 5.0.42 branch.
+
+ -- Monty Taylor <mtaylor@mysql.com> Thu, 19 Apr 2007 22:18:02 +0200
+
+mysql-5.0 (5.0.38) UNRELEASED; urgency=low
+
+ * Imported packaging work from Debian.
+ * Removed debian-start, mysqlreport and echo_stderr to align with official
+ packages.
+
+ -- Monty Taylor <mtaylor@mysql.com> Wed, 7 Mar 2007 07:52:55 +0800
+
+mysql-dfsg-5.0 (5.0.32-3etch1) testing-proposed-updates; urgency=high
+
+ * Backported upstream patch for a bug that crashed the server when using
+ certain join/group/limit combinations.
+ Users of the Joomla CMS seemed to be affected by this. Closes: #403721
+ * The debian-start script that runs on every server start now first upgrades
+ the system tables (if neccessary) and then check them as it sometimes did
+ not work the other way around (e.g. for MediaWiki). The script now uses
+ mysql_update instead of mysql_update_script as recommended. Closes: 409780
+ * The old_passwords setting that is set according to a Debconf question is
+ now written to /etc/mysql/conf.d/old_passwords.cnf instead directly to the
+ conffile /etc/mysql/my.cnf which would be fobidden by policy (thanks to
+ Robert Bihlmeyer). Closes: #409750
+ * Added bison to build dependencies.
+ * Synced Debconf translations with 5.0.32-7.
+
+ -- Christian Hammers <ch@debian.org> Sun, 18 Feb 2007 22:33:05 +0100
+
+mysql-dfsg-5.0 (5.0.32-3) unstable; urgency=high
+
+ * mysql-server-5.0 pre-depends on adduser now and has --disabled-login
+ explicitly added to be on the safe side (thanks to the puiparts team).
+ Closes: #408362
+ * Corrections the terminology regarding NDB in the comments of all config
+ files and init scripts (thanks to Geert Vanderkelen of MySQL).
+ * Updated Swedish Debconf translation (thanks to Andreas Henriksson).
+ Closes: #407859
+ * Updated Czech Debconf translation (thanks to Miroslav Kure).
+ Closes: #407809
+
+ -- Christian Hammers <ch@debian.org> Thu, 11 Jan 2007 11:18:47 +0100
+
+mysql-dfsg-5.0 (5.0.32-2) unstable; urgency=high
+
+ * The last upload suffered from a regression that made NDB totally
+ unusable and caused a dependency to libmysqlclient15-dev in the
+ mysql-server-5.0 package. The relevant 85_* patch was re-added again.
+ Closes: #406435
+ * Added lintian-overrides for an error that does not affect our packages.
+ There are now only warnings and not errors left.
+
+ -- Christian Hammers <ch@debian.org> Tue, 9 Jan 2007 23:55:10 +0100
+
+mysql-dfsg-5.0 (5.0.32-1) unstable; urgency=high
+
+ * New upstream version.
+ * SECURITY: mysql_fix_privilege_tables.sql altered the
+ table_privs.table_priv column to contain too few privileges, causing
+ loss of the CREATE VIEW and SHOW VIEW privileges. (MySQL Bug#20589)
+ * SECURITY (DoS): ALTER TABLE statements that performed both RENAME TO
+ and {ENABLE|DISABLE} KEYS operations caused a server crash. (MySQL
+ Bug#24089)
+ * SECURITY (DoS): LAST_DAY('0000-00-00') could cause a server crash.
+ (MySQL Bug#23653)
+ * SECURITY (DoS): Using EXPLAIN caused a server crash for queries that
+ selected from INFORMATION_SCHEMA in a subquery in the FROM clause.
+ (MySQL Bug#22413)
+ * SECURITY (DoS): Invalidating the query cache (e.g. when using stored procedures)
+ caused a server crash for INSERT INTO ... SELECT statements that
+ selected from a view. (MySQL Bug#20045)
+ * Using mysql_upgrade with a password crashed the server. Closes: #406229
+ * yaSSL crashed on pre-Pentium Intel and Cyrix CPUs. (MySQL Bug#21765)
+ Closes: #383759
+ * Lots of small fixes to the NDB cluster storage engine.
+ * Updated Japanese Debconf template (thanks to Hideki Yamane).
+ Closes: #405793
+ * Fixed comment regarding "mycheck" in debian-start (thanks to
+ Enrico Zini). Closes: #405787
+
+ -- Christian Hammers <ch@debian.org> Sat, 6 Jan 2007 14:26:20 +0100
+
+mysql-dfsg-5.0 (5.0.30-3) unstable; urgency=low
+
+ * Updated Brazilian Debconf translation (thanks to Andre Luis Lopes).
+ Closes: #403821
+ * Added Romanian Debconf translation (thanks to Stan Ioan-Eugen).
+ Closes: #403943
+ * Updated Spanish Debconf translation (thanks to Javier Fernandez-Sanguino
+ Pena). Closes: #404084
+ * Updated Galician Debconf translation (thanks to Jacobo Tarrio).
+ Closes: #404318
+ * Updated Dutch Debconf translation (thanks to Vincent Zweije).
+ Closes: #404566
+ * Updated Danish Debconf translation (thanks to Claus Hindsgaul).
+ Closes: #405018
+
+ -- Christian Hammers <ch@debian.org> Thu, 21 Dec 2006 21:35:09 +0100
+
+mysql-dfsg-5.0 (5.0.30-2) unstable; urgency=high
+
+ * Fixed upstream regression in header files that lead to FTBFS for
+ mysql-admin, mysql-query-browser and probably other pacakges.
+ (thanks to Andreas Henriksson). Closes: #403081, #403082
+ * Fixed some upstream scripts by replacing /etc by /etc/mysql (thanks to
+ Julien Antony). Closes: #401083
+ * Updated French Debconf translation (thanks to Christian Perrier).
+ Closes: #401434
+ * Added Spanish Debconf translation (thanks to Javier Fernandez-Sanguino
+ Pena). Closes: #401953
+ * Marked a Debconf question that is just a dummy and only internally
+ used as not-needing-translation. Closes: #403163
+ * Fixed mysqlslowdump patch to not remove the usage() function (thanks
+ to Monty Tailor).
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Dec 2006 19:20:10 +0100
+
+mysql-dfsg-5.0 (5.0.30-1) unstable; urgency=low
+
+ * New upstream version (switch to the MySQL Enterprise branch).
+ * Upstream bugfix for the Innodb performance bug:
+ "Very poor performance with multiple queries running
+ concurrently (Bug#15815)".
+ * Upstream bugfix for a possible server crash:
+ "Selecting from a MERGE table could result in a server crash if the
+ underlying tables had fewer indexes than the MERGE table itself
+ (Bug#22937)"
+ * Upstream bugfies for *lot* of NDB problems.
+ * Upstream bugfix for Innodb optimizer bug. Closes: #397597
+ * Updated Italian Debconf translation (thanks to Luca Monducci).
+ Closes: #401305
+ * Updated debian/watch file to MySQL Enterprise branch.
+
+ -- Christian Hammers <ch@debian.org> Sat, 2 Dec 2006 16:36:38 +0100
+
+mysql-dfsg-5.0 (5.0.27-2) unstable; urgency=medium
+
+ * Disabled YaSSL x86 assembler as it was reported to crash applications
+ like pam-mysql or proftpd-mysql which are linked against libmysqlclient
+ on i486 and Cyrix (i586) CPUs. Closes: #385147
+ * Adjusted mysql-server-4.1 priority to extra and section to oldlibs
+ according to the ftp masters overrides.
+ * Updated German Debconf translation (thanks to Alwin Meschede).
+ Closes: #400809
+
+ -- Christian Hammers <ch@debian.org> Wed, 22 Nov 2006 13:36:31 +0100
+
+mysql-dfsg-5.0 (5.0.27-1) unstable; urgency=medium
+
+ * New upstream version (but no codechange, the only difference to 5.0.26
+ was a patch to the ABI change which Debian already included.
+ * When dist-upgrading from mysql-server-4.1/sarge dpkg does not longer
+ ask unnecessary "config file has changed" questions regarding
+ /etc/init.d/mysql, /etc/logrotate.d/mysql-server and
+ /etc/mysql/debian-start just because these files previously belonged
+ to mysql-server-4.1 and not to mysql-server-5.0.
+ To archive this mysql-server-5.0 now pre-depends on mysql-common which
+ provides current versions of those files.
+ * The automatic run mysql_upgrade now works with non-standard datadir
+ settings, too (thanks to Benjami Villoslada). Closes: #394607
+ * Debconf now asks if the old_passwords option is really needed.
+ * Improved explanations of the old_passwords variable in my.cnf.
+ * Removed possibly leftover cron script from MySQL-4.1 (thanks to
+ Mario Oyorzabal Salgado). Closes: #390889
+ * Postrm ignores failed "userdel mysql".
+ * Updated Danish Debconf translation (thanks to Claus Hindsgaul).
+ Closes: #398784
+ * Added Euskarian Debconf translation (thanks to Piarres Beobide).
+ Closes: #399045
+ * Updated Japanese Debconf translation (thanks to Hideki Yamane).
+ Closes: #399074
+ * Updated German Debconf translation (thanks to Alwin Meschede).
+ Closes: #399087
+ * New Portuguese debconf translations from Miguel Figueiredo.
+ Closes: #398186
+
+ -- Christian Hammers <ch@debian.org> Tue, 7 Nov 2006 21:26:25 +0100
+
+mysql-dfsg-5.0 (5.0.26-3) unstable; urgency=high
+
+ [sean finney]
+ * Fix for the deadly ISAM trap. Now during upgrades we will do our
+ very best to convert pre-existing ISAM format tables using the
+ binaries from the previous package. Success is not guaranteed, but
+ this is probably as good as it gets. Note that this also necessitates
+ re-introducing an (empty transitional) mysql-server-4.1 package.
+ Closes: #354544, #354850
+ * Remove a couple spurious and wrongly placed WARNING statements from
+ 45_warn-CLI-passwords.dpatch. thanks to Dan Jacobsen for pointing these
+ out. Closes: #394262
+
+ -- sean finney <seanius@debian.org> Fri, 03 Nov 2006 18:34:46 +0100
+
+mysql-dfsg-5.0 (5.0.26-2) unstable; urgency=high
+
+ * Fixed FTBFS for Alpha by applying an upstream patch (thanks to Falk
+ Hueffner). Closes: #395921
+
+ -- Christian Hammers <ch@debian.org> Sat, 28 Oct 2006 20:13:46 +0200
+
+mysql-dfsg-5.0 (5.0.26-1) unstable; urgency=high
+
+ * SECURITY:
+ This combined release of 5.0.25 and 5.0.26 fixes lot of possible server
+ crashs so it should get into Etch. Quoting the changelog (bug numbers are
+ bugs.mysql.com ones):
+ - character_set_results can be NULL to signify no conversion, but some
+ code did not check for NULL, resulting in a server crash. (Bug#21913)
+ - Using cursors with READ COMMITTED isolation level could cause InnoDB to
+ crash. (Bug#19834)
+ - Some prepared statements caused a server crash when executed a second
+ time. (Bug#21166)
+ - When DROP DATABASE or SHOW OPEN TABLES was issued while concurrently
+ issuing DROP TABLE (or RENAME TABLE, CREATE TABLE LIKE or any other
+ statement that required a name lock) in another connection, the server
+ crashed. (Bug#21216)
+ - Use of zero-length variable names caused a server crash. (Bug#20908)
+ - For InnoDB tables, the server could crash when executing NOT IN ()
+ subqueries. (Bug#21077)
+ - Repeated DROP TABLE statements in a stored procedure could sometimes
+ cause the server to crash. (Bug#19399)
+ - Performing an INSERT on a view that was defined using a SELECT that
+ specified a collation and a column alias caused the server to crash
+ (Bug#21086).
+ - A query of the form shown here caused the server to crash. (Bug#21007)
+ - NDB Cluster: Some queries involving joins on very large NDB tables could
+ crash the MySQL server. (Bug#21059)
+ - The character set was not being properly initialized for CAST() with a
+ type like CHAR(2) BINARY, which resulted in incorrect results or even a
+ server crash. (Bug#17903)
+ - For certain queries, the server incorrectly resolved a reference to an
+ aggregate function and crashed. (Bug#20868)
+ - The server crashed when using the range access method to execut a
+ subquery with a ORDER BY DESC clause. (Bug#20869)
+ - Triggers on tables in the mysql database caused a server crash. Triggers
+ for tables in this database now are disallowed. (Bug#18361)
+ - Using SELECT on a corrupt MyISAM table using the dynamic record format
+ could cause a server crash. (Bug#19835)
+ - Use of MIN() or MAX() with GROUP BY on a ucs2 column could cause a
+ server crash. (Bug#20076)
+ - Selecting from a MERGE table could result in a server crash if the
+ underlying tables had fewer indexes than the MERGE table itself.
+ (Bug#21617, Bug#22937)
+
+ * New upstream release.
+ - This bug would cause trouble for Sarge->Etch upgrades, it was supposed to
+ have been fixed in 5.0.16 but that apparently did not fix the whole
+ problem:
+ Using tables from MySQL 4.x in MySQL 5.x, in particular those with VARCHAR
+ fields and using INSERT DELAYED to update data in the table would result in
+ either data corruption or a server crash. (Bug#16611, Bug#16218, Bug#17294)
+ Closes: #386337
+ - Fixes data corruption as an automatic client reconnect used to set
+ the wrong character set. Closes: #365050
+ - Fixes an undefined ulong type in an include file. Closes: #389102
+ - Fixes wrong output format when using Unicode characters. Closes: #355302
+ - Fixes mysql_upgrade when using a password. Closes: #371841
+
+ [Christian Hammers]
+ * Removed --sysconfdir from debian/rules as it puts /etc/mysql/ at the
+ end of the my.cnf search patch thus overriding $HOME/my.cnf
+ (thanks to Christoph Biedl). Closes: #394992
+ * The provided patch from bug #385947 was wrong, the variable is called
+ BLOCKSIZE not BLOCK_SIZE according to "strings `which df`" (thanks to
+ Bruno Muller). Closes: #385947
+
+ [sean finney]
+ * new dutch debconf translations from Vincent Zweije (closes: #392809).
+ * new japanese debconf translations from Hideki Yamane (closes: #391625).
+ * new italian debconf translations from Luca Monducci (closes: #391741).
+ * new french debconf translations from Christian Perrier (closes: #393334).
+ * ran debconf-updatepo to merge the fuzzies into svn.
+ * massage the following patches so they continue to apply cleanly:
+ - 44_scripts__mysql_config__libs.dpatch to cleanly apply.
+ - 45_warn-CLI-passwords.dpatch
+ - 96_TEMP__libmysqlclient_ssl_symbols.dpatch (note, this patch might
+ no longer be needed, but is retained "just in case" after massaging it)
+ * the following patches have been incorporated upstream:
+ - 70_kfreebsd.dpatch
+ - 80_hurd_mach.dpatch
+ - 87_ps_Hurd.dpatch
+ - 90_TEMP__client__mysql_upgrade__O_EXEC.dpatch
+ - 91_TEMP__client__mysql_upgrade__password.dpatch
+ - 92_TEMP__client__mysql_upgrade__defaultgroups.dpatch
+ - 94_TEMP__CVE-2006-4227.dpatch
+ - 95_TEMP__CVE-2006-4226.dpatch
+ * the udf_example.cc has disappeared from the source code, but there's
+ a udf_example.c which seems to be a good example to use instead :)
+ * update documentation in the configuration to no longer reference
+ using my.cnf in the DATADIR, as it's never been the recommended
+ method for debian systems and hasn't worked since 5.0 was released
+ anyway (closes: #393868).
+
+ -- Christian Hammers <ch@debian.org> Wed, 25 Oct 2006 19:54:04 +0200
+
+mysql-dfsg-5.0 (5.0.24a-9) unstable; urgency=medium
+
+ * Having expire_logs_days enabled but log-bin not crashes the server. Using
+ both or none of those options is safe. To prevent this happening during the
+ nightly log rotation via /etc/logrotate.d/mysql the initscript checks for
+ malicious combination of options. See: #368547
+ * The Sarge package "mysql-server" which used to include the mysqld daemon
+ may still be in unselected-configured state (i.e. after a remove but not
+ purge) in which case its now obsolete cronscript has to be moved away
+ (thanks to Charles Lepple). Closes: #385669
+ * Updated Danish Debconf translation (thanks to Claus Hindsgaul).
+ Closes: #390315
+ * Updated Frensh Debconf translation (thanks to Christian Perrier).
+ Closes: #390980
+
+ -- Christian Hammers <ch@debian.org> Tue, 3 Oct 2006 14:55:31 +0200
+
+mysql-dfsg-5.0 (5.0.24a-8) unstable; urgency=low
+
+ * (broken upload)
+
+ -- Christian Hammers <ch@debian.org> Tue, 3 Oct 2006 14:55:31 +0200
+
+mysql-dfsg-5.0 (5.0.24a-7) unstable; urgency=low
+
+ * Stopped mysql_config from announcing unnecessary library dependencies
+ which until now cause "NEEDED" dependencies in the "readelf -d" output
+ of libraries who only depend on libmysqlclient.so (thanks to Michal
+ Cihar). Closes: #390692
+
+ -- Christian Hammers <ch@debian.org> Sun, 1 Oct 2006 23:59:43 +0200
+
+mysql-dfsg-5.0 (5.0.24a-6) unstable; urgency=low
+
+ [sean finney]
+ * finally add support for setting a root password at install.
+ while this is not a random password as requested in one bug
+ report, we believe it is the best solution and provides a
+ means to set a random password via preseeding if it's really
+ desired (Closes: #316127, #298295).
+
+ -- sean finney <seanius@debian.org> Sun, 01 Oct 2006 23:34:30 +0200
+
+mysql-dfsg-5.0 (5.0.24a-5) unstable; urgency=low
+
+ * Added ${shlibs:Depends} to debian/control section libmysqlclient-dev as it
+ contains the experimental /usr/lib/mysql/libndbclient.so.0.0.0.
+ * Bumped standards version to 3.7.2.
+ * Added LSB info section to init scripts.
+ * Rephrased Debconf templates as suggested by lintian.
+ * Added benchmark suite in /usr/share/mysql/sql-bench/.
+ * The mysql.timezone* tables are now filled by the postinst script (thanks
+ to Mark Sheppard). Closes: #388491
+ * Moved Debconf install notes to README.Debian. Displaying them with
+ medium priority was a bug anyway. Closes: #388941
+ * Replaced /usr/bin/mysql_upgrade by /usr/bin/mysql_upgrade_shell in
+ /etc/mysql/debian-start.sh as it works without errors (thanks to Javier
+ Kohen). Closes: #389443
+
+ -- Christian Hammers <ch@debian.org> Wed, 20 Sep 2006 15:01:42 +0200
+
+mysql-dfsg-5.0 (5.0.24a-4) unstable; urgency=high
+
+ * libmysqlclient.so.15 from 5.0.24 accidentaly exports some symbols that are
+ historically exported by OpenSSL's libcrypto.so. This bug was supposed to
+ be fixed in 5.0.24a bug according to the mysql bug tracking system will
+ only be fixed in 5.0.25 so I backported the patch. People already reported
+ crashing apps due to this (thanks to Duncan Simpson). See also: #385348
+ Closes: #388262
+ * Fixed BLOCKSIZE to BLOCK_SIZE in initscript (thanks to Bruno Muller).
+ Closes: #385947
+ * Added hint to "--extended-insert=0" to mysqldump manpage (thanks to Martin
+ Schulze).
+ * Documented the meaning of "NDB" in README.Debian (thanks to Dan Jacobson).
+ Closes: #386274
+ * Added patch to build on hurd-i386 (thanks to Cyril Brulebois). Closes: #387369
+ * Fixed debian-start script to work together with the recend LSB modifications in
+ the initscript (thanks to wens). Closes: #387481
+ * Reverted tmpdir change in my.cnf back to /tmp to comply with FHS (thanks
+ to Alessandro Valente). Closes: #382778
+ * Added logcheck filter rule (thanks to Paul Wise). Closes: #381043
+ * I will definetly not disable InnoDB but added a note to the default my.cnf
+ that disabling it saves about 100MB virtual memory (thanks to Olivier
+ Berger). Closes: #384399
+ * Added thread_cache_size=8 to default my.cnf as this variable seems to have
+ a negligible memory footprint but can improve performance when lots of
+ threads connect simultaneously as often seen on web servers.
+
+ -- Christian Hammers <ch@debian.org> Mon, 4 Sep 2006 00:21:50 +0200
+
+mysql-dfsg-5.0 (5.0.24a-3) unstable; urgency=low
+
+ * Fixed potential tempfile problem in the newly added mysqlreport script.
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Sep 2006 23:17:24 +0200
+
+mysql-dfsg-5.0 (5.0.24a-2) unstable; urgency=low
+
+ * Added "mysqlreport" (GPL'ed) from hackmysql.com.
+ * Temporarily disabled expire_days option as it causes the server
+ to crash. See #368547
+ * Made output of init scripts LSB compliant (thanks to David Haerdeman).
+ Closes: #385874
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Sep 2006 19:06:53 +0200
+
+mysql-dfsg-5.0 (5.0.24a-1) unstable; urgency=high
+
+ * New upstream version.
+ * The shared library in the 5.0.24 upstream release accidently exported
+ some symbols that are also exported by the OpenSSL libraries (notably
+ BN_bin2bn) causing unexpected behaviour in applications using these
+ functions (thanks to Peter Cernak). Closes: #385348
+ * Added note about possible crash on certain i486 clone CPUs.
+ * Made recipient address of startup mysqlcheck output configurable
+ (thanks to Mattias Guns). Closes: #385119
+
+ -- Christian Hammers <ch@debian.org> Mon, 28 Aug 2006 01:22:12 +0200
+
+mysql-dfsg-5.0 (5.0.24-3) unstable; urgency=high
+
+ * SECURITY:
+ CVE-2006-4226:
+ When run on case-sensitive filesystems, MySQL allows remote
+ authenticated users to create or access a database when the database
+ name differs only in case from a database for which they have
+ permissions.
+ CVE-2006-4227:
+ MySQL evaluates arguments of suid routines in the security context of
+ the routine's definer instead of the routine's caller, which allows
+ remote authenticated users to gain privileges through a routine that
+ has been made available using GRANT EXECUTE.
+ Thanks to Stefan Fritsch for reporting. Closes: #384798
+
+ -- Christian Hammers <ch@debian.org> Sat, 26 Aug 2006 04:55:17 +0200
+
+mysql-dfsg-5.0 (5.0.24-2) unstable; urgency=high
+
+ * 5.0.24-1 introduced an ABI incompatibility, which this patch reverts.
+ Programs compiled against 5.0.24-1 are not compatible with any other
+ version and needs a rebuild.
+ This bug already caused a lot of segfaults and crashes in various
+ programs. Thanks to Chad MILLER from MySQL for quickly providing a patch.
+ The shlibdeps version has been increased to 5.0.24-2.
+ Closes: #384047, #384221, #383700
+
+ -- Christian Hammers <ch@debian.org> Fri, 25 Aug 2006 21:47:35 +0200
+
+mysql-dfsg-5.0 (5.0.24-1) unstable; urgency=high
+
+ * SECURITY: Upstream fixes a security bug which allows a user to continue
+ accessing a table using a MERGE TABLE after the right to direct access to
+ the database has been revoked (CVE-2006-4031, MySQL bug #15195).
+ (Well they did not exactly fixed it, they documented the behaviour and
+ allow the admin to disable merge table alltogether...). Closes: #380271
+ * SECURITY: Applied patch that fixes a possibly insecure filehandling
+ in the recently added mysql_upgrade binary file (MySQL bug #10320).
+ * New upstream version.
+ - Fixes nasty MySQL bug #19618 that leads to crashes when using
+ "SELECT ... WHERE ... not in (1, -1)" (e.g. vbulletin was affected).
+ - Fixes upstream bug #16803 so that linking ~/.mysql_history to /dev/null
+ now has the desired effect of having no history.
+ * Really fixed the runlevels. Closes: #377651
+ * Added patch for broken upstream handling of "host=" to mysql_upgrade.c.
+ * Adjusted /etc/mysql/debian-start to new mysql_upgrade.c
+
+ -- Christian Hammers <ch@debian.org> Tue, 8 Aug 2006 00:44:13 +0200
+
+mysql-dfsg-5.0 (5.0.22-5) unstable; urgency=low
+
+ * Added further line to the logcheck ignore files (thanks to Paul Wise).
+ Closes: #381038
+
+ -- Christian Hammers <ch@debian.org> Wed, 2 Aug 2006 00:28:50 +0200
+
+mysql-dfsg-5.0 (5.0.22-4) unstable; urgency=low
+
+ * Upstream fixes a bug in the (never released) version 5.0.23 which could
+ maybe used to crash the server if the mysqlmanager daemon is in use
+ which is not yet the default in Debian. (CVE-2006-3486 *DISPUTED*)
+ * Changed runlevel priority of mysqld from 20 to 19 so that it gets started
+ before apache and proftpd etc. which might depend on an already running
+ database server (thanks to Martin Gruner). Closes: #377651
+ * Added patch which sets PATH_MAX in ndb (thanks to Cyril Brulebois).
+ Closes: #378949
+ * Activated YaSSL as licence issues are settled according to:
+ http://bugs.mysql.com/?id=16755. This also closes the FTBFS bug
+ regarding OpenSSL as it is discouraged to use now. Closes: #368639
+ * Removed SSL-MINI-HOWTO as the official documentation is good enough now.
+ * mysql_upgrade no longer gives --password on the commandline which would
+ be insecure (thanks to Dean Gaudet). Closes: #379199
+ * Adjusted debian/patches/45* to make consecutive builds in the same source
+ tree possible (thanks to Bob Tanner). Closes: #368661
+ * mysql-server-5.0 is now suggesting tinyca as yaSSL is enabled and tinyca
+ was found to be really cool :)
+ * Moved tempdir from /tmp to /var/tmp as it will more likely have enough
+ free space as /tmp is often on the root partition and /var or at least
+ /var/tmp is on a bigger one.
+
+ -- Christian Hammers <ch@debian.org> Mon, 10 Jul 2006 23:30:26 +0200
+
+mysql-dfsg-5.0 (5.0.22-3) unstable; urgency=low
+
+ * Added patch for MySQL bug #19618: "select x from x
+ where x not in(1,-1)" may crash the server" (thanks to
+ Ruben Puettmann).
+
+ -- Christian Hammers <ch@debian.org> Fri, 9 Jun 2006 01:41:44 +0200
+
+mysql-dfsg-5.0 (5.0.22-2) unstable; urgency=high
+
+ * Fixed debian-sys-maint related bug in postinst (thanks to
+ Jean-Christophe Dubacq). Closes: #369970
+ * The last upload was a security patch (which I did not know as I
+ uploaded before the announcement came). I now added the CVE id for
+ reference and set urgency to high as the last entry did not.
+
+ -- Christian Hammers <ch@debian.org> Wed, 31 May 2006 01:04:11 +0200
+
+mysql-dfsg-5.0 (5.0.22-1) unstable; urgency=low
+
+ * SECURITY: This upstream release fixes an SQL-injection with multibyte
+ encoding problem. (CVE-2006-2753)
+ * New upstream release.
+ * Upstream fixes REPAIR TABLE problem. Closes: #354300
+ * Upstream fixes problem that empty strings in varchar and text columns
+ are displayed as NULL. Closes: #368663
+
+ -- Christian Hammers <ch@debian.org> Tue, 30 May 2006 23:43:24 +0200
+
+mysql-dfsg-5.0 (5.0.21-4) unstable; urgency=low
+
+ * Added "BLOCKSIZE=" to the diskfree check (thanks to Farzad FARID).
+ Closes: #367027, #367083
+ * Further fixed mysql_upgrade upstream script (thanks to Andreas Pakulat)
+ Closes: #366155
+ * Adjusted the /proc test in debian/rules from /proc/1 to /proc/self
+ to make building on grsec systems possible (thanks to K. Rosenegger).
+ Closes: #366824
+ * Updated Russion Debconf translation (thanks to Yuriy Talakan).
+ Closes: #367141
+ * Updated Czech Debconf translation (thanks to Kiroslav Kure).
+ Closes: #367160
+ * Updated Galician Debconf translation (thanks to Jacobo Tarrio).
+ Closes: #367384
+ * Updated Swedish Debconf translation (thanks to Daniel Nylander).
+ Closes: #368186
+
+ -- Christian Hammers <ch@debian.org> Wed, 10 May 2006 08:45:42 +0200
+
+mysql-dfsg-5.0 (5.0.21-3) unstable; urgency=low
+
+ * Fixed FTBFS problem which was caused by a patch that modifies Makefile.am
+ as well as Makefile.in and was not deteced because my desktop was fast
+ enough to patch both files within the same second and so fooled automake.
+ (thanks to Blars Blarson for notifying me). Closes: #366534
+
+ -- Christian Hammers <ch@debian.org> Sat, 6 May 2006 19:03:58 +0200
+
+mysql-dfsg-5.0 (5.0.21-2) unstable; urgency=low
+
+ * Fixed bug in postinst that did not correctly rewrite
+ /etc/mysql/debian.cnf (thanks to Daniel Leidert).
+ Closes: #365433, #366155
+
+ -- Christian Hammers <ch@debian.org> Thu, 4 May 2006 02:37:03 +0200
+
+mysql-dfsg-5.0 (5.0.21-1) unstable; urgency=high
+
+ * SECURITY: New upstream release with some security relevant bugfixes:
+ * "Buffer over-read in check_connection with usernames lacking a
+ trailing null byte" (CVE-2006-1516)
+ * "Anonymous Login Handshake - Information Leakage" (CVE-2006-1517)
+ * "COM_TABLE_DUMP Information Leakage and Arbitrary command execution"
+ (CVE-2006-1518)
+ Closes: #365938, #365939
+ * Added diskfree check to the init script (thanks to Tim Baverstock).
+ Closes: #365460
+ * First amd64 upload!
+
+ -- Christian Hammers <ch@debian.org> Sat, 29 Apr 2006 04:31:27 +0200
+
+mysql-dfsg-5.0 (5.0.20a-2) unstable; urgency=low
+
+ * The new mysql-upgrade which is started from /etc/mysql/debian-start
+ does now use the debian-sys-maint user for authentication (thanks to
+ Philipp). Closes: #364991
+ * Wrote patch debian/patches/43* which adds a password option to
+ mysql_update. See MySQL bug #19400.
+ * Added "Provides: libmysqlclient-dev" to libmysqlclient15-dev as I saw no
+ obvious reasons against it (problems should be documented in
+ debian/README.Maintainer!) (thanks to Olaf van der Spek). Closes: #364899
+ * Updated Netherlands debconf translation (thanks to Vincent Zweije)
+ Closes: #364464
+ * Updated French debconf translation (thanks to Christian Perrier)
+ Closes: #364401
+ * Updated Danish debconf translation (thanks to Claus Hindsgaul)
+ Closes: #365135
+
+ -- Christian Hammers <ch@debian.org> Wed, 26 Apr 2006 01:14:53 +0200
+
+mysql-dfsg-5.0 (5.0.20a-1) unstable; urgency=low
+
+ * New upstream release.
+ * Added the new mysql_upgrade script and added it to
+ /etc/mysql/debian-start (thanks to Alessandro Polverini).
+ The script is currently very noise that is a known bug and will be
+ fixed in the next release!
+ Closes: #363458
+ * No longer creates the "test" database. This actuallay had been tried
+ to archive before (at least patches) exists but apparently was not the
+ case in the last versions (thanks to Olaf van der Spek). Closes: #362126
+ * Reformatted libmysqlclient15off.NEWS.Debian to changelog format
+ (thanks to Peter Palfrader). Closes: #363062
+
+ -- Christian Hammers <ch@debian.org> Sat, 15 Apr 2006 13:05:22 +0200
+
+mysql-dfsg-5.0 (5.0.20-1) unstable; urgency=high
+
+ * Upstream contains a fix for a nasty bug (MySQL#18153) that users
+ already experienced and that caused corrupted triggers after
+ REPAIR/OPTIMIZE/ALTER TABLE statements.
+ (thanks to Jerome Despatis for pointing out)
+ * Added patch for the "updates on multiple tables is buggy after
+ upgrading from 4.1 to 5.0" problem which MySQL has been committed
+ for the upcoming 5.0.21 release. Closes #352704
+ * Added Netherlands debconf translation (thanks to Vincent Zweije).
+ Closes: #360443
+ * Added Galician debconf translation (thanks to Jacobo Tarrio).
+ Closes: #361257
+
+ -- Christian Hammers <ch@debian.org> Fri, 7 Apr 2006 00:00:43 +0200
+
+mysql-dfsg-5.0 (5.0.19-3) unstable; urgency=high
+
+ [ Christian Hammers ]
+ * Fixed libmysqlclient15.README.Debian regarding package name changes
+ (thanks to Leppo).
+ * Moved libheap.a etc. back to /usr/lib/mysql/ as their names are just
+ too generic. Closes: #353924
+ [ Sean Finney ]
+ * updated danish debconf translation, thanks to Claus Hindsgaul
+ (closes: #357424).
+ [ Adam Conrad ]
+ * Send stderr from 'find' in preinst to /dev/null to tidy up chatter.
+ * Backport patch for CVE-2006-0903 from the upcoming release to resolve
+ a log bypass vulnerability when using non-binary logs (closes: #359701)
+
+ -- Adam Conrad <adconrad@0c3.net> Tue, 4 Apr 2006 15:23:18 +1000
+
+mysql-dfsg-5.0 (5.0.19-2) unstable; urgency=medium
+
+ * New upstream release.
+ * Renamed package libmysqlclient15 to libmysqlclient15off due to
+ binary incompatible changes.
+ See /usr/share/doc/libmysqlclient15off/README.Debian
+ * Updated Czech debconf translation (thanks to Miroslav Kure).
+ Closes: #356503
+ * Updated French debconf translation (thanks to Christian Perrier).
+ Closes: #356332
+ * Improved README.Debian (thanks to Olaf van der Spek). Closes: #355702
+ * Fixed 5.0.18-8 changelog by saying in which package the NEWS.Debian
+ file is (thanks to Ross Boylan). Closes: #355978
+
+ -- Christian Hammers <ch@debian.org> Fri, 17 Mar 2006 02:32:19 +0100
+
+mysql-dfsg-5.0 (5.0.19-1) experimental; urgency=medium
+
+ * New upstream release.
+ * SECURITY: CVE-2006-3081: A bug where str_to_date(1,NULL) lead to a
+ server crash has been fixed.
+ (this note has been added subsequently for reference)
+ * Renamed package libmysqlclient15 to libmysqlclient15off.
+ See /usr/share/doc/libmysqlclient15off/NEWS.Debian
+ * Updated Czech debconf translation (thanks to Miroslav Kure).
+ Closes: #356503
+ * Updated French debconf translation (thanks to Christian Perrier).
+ Closes: #356332
+ * Improved README.Debian (thanks to Olaf van der Spek). Closes: #355702
+ * Fixed 5.0.18-8 changelog by saying in which package the NEWS.Debian
+ file is (thanks to Ross Boylan). Closes: #355978
+
+ -- Christian Hammers <ch@debian.org> Tue, 14 Mar 2006 22:56:13 +0100
+
+mysql-dfsg-5.0 (5.0.18-9) unstable; urgency=medium
+
+ [ Christian Hammers ]
+ * When using apt-get the check for left-over ISAM tables can abort the
+ installation of mysql-server-5.0 but not prevent the mysql-server-4.1
+ package from getting removed. The only thing I can do is reflect this
+ in the Debconf notice that is shown and suggest to reinstall
+ mysql-server-4.1 for converting. See: #354850
+ * Suggests removing of /etc/cron.daily/mysql-server in last NEWS message
+ (thanks to Mourad De Clerck). Closes: #354111
+ * Added versioned symbols for kfreebsd and Hurd, too (thanks to Aurelien
+ Jarno and Michael Bank). Closes: #353971
+ * Added versioned symbols for kfreebsd, too (thanks to Aurelien Jarno).
+ Closes: #353971
+ [ Adam Conrad ]
+ * Add 39_scripts__mysqld_safe.sh__port_dir.dpatch to ensure that the
+ permissions on /var/run/mysqld are always correct, even on a tmpfs.
+
+ -- Christian Hammers <ch@debian.org> Mon, 6 Mar 2006 21:42:13 +0100
+
+mysql-dfsg-5.0 (5.0.18-8) unstable; urgency=low
+
+ * The rotation of the binary logs is now configured via
+ expire-logs-days in /etc/mysql/my.cnf and handled completely
+ by the server and no longer in configured in debian-log-rotate.conf
+ and handled by a cron job. Thanks to David Johnson.
+ See /usr/share/doc/mysql-server-5.0/NEWS.Debian
+ * Ran aspell over some files in debian/ and learned a lot :)
+ * debian/rules: Added check if versioned symbols are really there.
+ * Updated SSL-MINI-HOWTO.
+ * Updated copyright (removed the parts regarding the now removed
+ BerkeleyDB table handler and mysql-doc package).
+ * Relocated a variable in preinst (thanks to Michael Heldebrant).
+ Closes: #349258, #352587, #351216
+ * Updated Danish debconf translation (thanks to Claus Hindsgaul).
+ Closes: #349013
+ * Updated Swedish debconf translation (thanks to Daniel Nylander).
+ Closes: #349522
+ * Updated French debconf translation (thanks to Christian Perrier).
+ Closes: #349592
+ * Fixed typo in README.Debian (thanks to Vincent Ricard).
+ * Prolonged waiting time for mysqld in the init script. Closes: #352070
+
+ -- Christian Hammers <ch@debian.org> Mon, 23 Jan 2006 23:13:46 +0100
+
+mysql-dfsg-5.0 (5.0.18-7) unstable; urgency=low
+
+ * Made mailx in debian-start.inc.sh optional and changed the dependency on it
+ on it to a mere recommendation. Closes: #316297
+ * the previous FTBFS patches for GNU/Hurd inadvertently led to configure
+ being regenerating, losing a couple trivial things like our versioned
+ symbols patch, causing many nasty problems (closes: #348854).
+
+ -- sean finney <seanius@debian.org> Fri, 20 Jan 2006 20:59:27 +0100
+
+mysql-dfsg-5.0 (5.0.18-6) unstable; urgency=low
+
+ * Added version comment (thanks to Daniel van Eeden).
+ * Added two patches to build on GNU/Hurd (thanks to Michael Bank).
+ Closes: #348182
+ * Abort upgrade if old and now unsupported ISAM tables are present
+ (thanks to David Coe). Closes: #345895
+
+ -- Christian Hammers <ch@debian.org> Tue, 17 Jan 2006 19:25:59 +0100
+
+mysql-dfsg-5.0 (5.0.18-5) unstable; urgency=low
+
+ * Bump shlibdeps for libmysqlclient15 to (>= 5.0.15-1), which was
+ the first non-beta release from upstream, as well as being shortly
+ after we broke the ABI in Debian by introducing versioned symbols.
+
+ -- Adam Conrad <adconrad@0c3.net> Fri, 13 Jan 2006 13:18:03 +1100
+
+mysql-dfsg-5.0 (5.0.18-4) unstable; urgency=low
+
+ * Munge our dependencies further to smooth upgrades even more, noting
+ that we really need 5.0 to conflict with 4.1, and stealing a page from
+ the book of mysql-common, it doesn't hurt to hint package managers in
+ the direction of "hey, this stuff is a complete replacement for 4.1"
+ * Change the description of mysql-server and mysql-client to remove the
+ references to it being "transition", and instead point out that it's
+ the way to get the "current best version" of each package installed.
+
+ -- Adam Conrad <adconrad@0c3.net> Wed, 11 Jan 2006 11:39:45 +1100
+
+mysql-dfsg-5.0 (5.0.18-3) unstable; urgency=low
+
+ * Make the mysql-{client,server}-5.0 conflict against mysql-{client,server}
+ versioned, so they can be installed side-by-side and upgrade properly.
+ * Add myself to Uploaders; since I have access to the alioth repository.
+
+ -- Adam Conrad <adconrad@0c3.net> Tue, 10 Jan 2006 19:15:48 +1100
+
+mysql-dfsg-5.0 (5.0.18-2) unstable; urgency=low
+
+ * Removed the transitional package that forced an upgrade from
+ mysql-server-4.1 to mysql-server-5.0 as I was convinced that
+ having a general "mysql-server" package with adjusted dependencies
+ is enough (thanks to Adam Conrad).
+ * Updated logcheck.ignore files (thanks to Jamie McCarthy). Closes: #340193
+
+ -- Christian Hammers <ch@debian.org> Mon, 9 Jan 2006 21:54:53 +0100
+
+mysql-dfsg-5.0 (5.0.18-1) unstable; urgency=low
+
+ * New upstream version.
+ * Added empty transitional packages that force an upgrade from the
+ server and client packages that have been present in Sarge.
+ * Fixed SSL-MINI-HOWTO (thanks to Jonas Smedegaard). Closes: #340589
+
+ -- Christian Hammers <ch@debian.org> Mon, 2 Jan 2006 21:17:51 +0100
+
+mysql-dfsg-5.0 (5.0.17-1) unstable; urgency=low
+
+ * Never released as Debian package.
+
+ -- Christian Hammers <ch@debian.org> Thu, 22 Dec 2005 07:49:52 +0100
+
+mysql-dfsg-5.0 (5.0.16-1) unstable; urgency=low
+
+ * New upstream version.
+ * Removed the error logs from the logrotate script as Debian does
+ not use them anymore. Closes: #339628
+
+ -- Christian Hammers <ch@debian.org> Tue, 22 Nov 2005 01:19:11 +0100
+
+mysql-dfsg-5.0 (5.0.15-2) unstable; urgency=medium
+
+ * Added 14_configure__gcc-atomic.h.diff to fix FTBFS on m68k
+ (thanks to Stephen R Marenka). Closes: #337082
+ * Removed dynamic linking against libstdc++ as it was not really
+ needed (thanks to Adam Conrad). Closes: #328613
+ * Fixed the "/var/lib/mysql is a symlink" workaround that accidently
+ left a stalled symlink (thanks to Thomas Lamy). Closes: #336759
+ * As the init script cannot distinguish between a broken startup and
+ one that just takes very long the "failed" message now says
+ "or took more than 6s" (thanks to Olaf van der Spek). Closes: #335547
+
+ -- Christian Hammers <ch@debian.org> Thu, 3 Nov 2005 22:00:15 +0100
+
+mysql-dfsg-5.0 (5.0.15-1) unstable; urgency=low
+
+ * New upstream version. 5.0 has finally been declared STABLE!
+ * Added small patch to debian/rules that fixed sporadic build errors
+ where stdout and stderr were piped together, got mixed up and broke
+ * Added --with-big-tables to ./configure (thanks to tj.trevelyan).
+ Closes: #333090
+ * Added capability to parse "-rc" to debian/watch.
+ * Fixed cronscript (thanks to Andrew Deason). Closes: #335244
+ * Added Swedish debconf translation (thanks to Daniel Nylander).
+ Closes: #333670
+ * Added comment to README.Debian regarding applications that manually
+ set new-style passwords... Closes: #334444
+ * Sean Finney:
+ - Fix duplicate reference to [-e|--extended-insert]. Closes: #334957
+ - Fix default behavior for mysqldumpslow. Closes: #334517
+ - Reference documentation issue in mysql manpage. Closes: #335219
+
+ -- Christian Hammers <ch@debian.org> Fri, 30 Sep 2005 00:10:39 +0200
+
+mysql-dfsg-5.0 (5.0.13rc-1) unstable; urgency=low
+
+ * New upstream release. Now "release-candidate"!
+ * Removed any dynamic link dependencies to libndbclient.so.0 which
+ is due to its version only distributed as a static library.
+ * Sean Finney:
+ - FTBFS fix related to stripping rpath in debian/rules
+
+ -- Christian Hammers <ch@debian.org> Mon, 26 Sep 2005 22:09:26 +0200
+
+mysql-dfsg-5.0 (5.0.12beta-5) unstable; urgency=low
+
+ * The recent FTBFS were probably result of a timing bug in the
+ debian/patches/75_*.dpatch file where Makefile.in got patched just
+ before the Makefile.shared which it depended on. For that reason
+ only some of the autobuilders failed. Closes: #330149
+ * Fixed chrpath removal (option -k had to be added).
+ * Corrected debconf dependency as requested by Joey Hess.
+
+ -- Christian Hammers <ch@debian.org> Mon, 26 Sep 2005 18:37:07 +0200
+
+mysql-dfsg-5.0 (5.0.12beta-4) unstable; urgency=low
+
+ * Removed experimental shared library libndbclient.so.0.0.0 as it
+ is doomed to cause trouble as long as it is present in both MySQL 4.1
+ and 5.0 without real soname and its own package. We still have
+ libndbclient.a for developers. (thanks to Adam Conrad and
+ mediaforest.net). Closes: #329772
+
+ -- Christian Hammers <ch@debian.org> Fri, 23 Sep 2005 12:36:48 +0200
+
+mysql-dfsg-5.0 (5.0.12beta-3) unstable; urgency=medium
+
+ * Symbol versioning support! wooooohoooooo!
+ (thanks to Steve Langasek) Closes: #236288
+ * Moved libndbcclient.so.0 to the -dev package as it is provided by
+ libmysqlclient14 and -15 which must be installable simultaneously.
+ * Removed mysql-*-doc suggestions.
+
+ -- Christian Hammers <ch@debian.org> Tue, 20 Sep 2005 00:07:03 +0200
+
+mysql-dfsg-5.0 (5.0.12beta-2) unstable; urgency=low
+
+ * Added patch to build on GNU/kFreeBSD (thanks to Aurelien Jarno).
+ Closes: #327702
+ * Added patch that was already been present on the 4.1 branch which
+ makes the "status" command of the init script more sensible
+ (thanks to Stephen Gildea). Closes: #311836
+ * Added Vietnamese Debconf translation (thanks to Clytie Siddal).
+ Closes: #313006
+ * Updated German Debconf translation (thanks to Jens Seidel).
+ Closes: #313957
+ * Corrected commends in example debian-log-rotate.conf. The default is
+ unlike the mysql-sever-4.1 package which needed to stay backwards
+ compatible now 2 to avoid filling up the disk endlessly.
+ * Fixed watch file to be "-beta" aware.
+
+ -- Christian Hammers <ch@debian.org> Thu, 15 Sep 2005 20:50:19 +0200
+
+mysql-dfsg-5.0 (5.0.12beta-1) unstable; urgency=medium
+
+ * Christian Hammers:
+ - New upstream release.
+ - Changed build-dep to libreadline5-dev as requested by Matthias Klose.
+ Closes: #326316
+ - Applied fix for changed output format of SHOW MASTER LOGS for
+ binary log rotation (thanks to Martin Krueger). Closes: #326427, #326427
+ - Removed explicit setting of $PATH as I saw no sense in it and
+ it introduced a bug (thanks to Quim Calpe). Closes: #326769
+ - Removed PID file creation from /etc/init.d/mysql-ndb as it does
+ not work with this daemon (thanks to Quim Calpe).
+ - Updated French Debconf translation (thanks to Christian Perrier).
+ Closes: #324805
+ - Moved conflicts line in debian/control from libmysqlclient15 to
+ libmysqlclient15-dev and removed some pre-sarge conflicts as
+ suggested by Adam Majer. Closes: #324623
+ * Sean Finney:
+ - For posterity, CAN-2005-2558 has been fixed since 5.0.7beta.
+
+ -- Christian Hammers <ch@debian.org> Thu, 15 Sep 2005 19:58:22 +0200
+
+mysql-dfsg-5.0 (5.0.11beta-3) unstable; urgency=low
+
+ * Temporarily build only with -O2 to circumvent gcc internal errors
+ (thanks to Matthias Klose). Related to: #321165
+
+ -- Christian Hammers <ch@debian.org> Thu, 18 Aug 2005 15:44:04 +0200
+
+mysql-dfsg-5.0 (5.0.11beta-2) unstable; urgency=low
+
+ * Fixed README.Debian regarding the status of mysql-doc.
+ * Added "set +e" around chgrp in mysql-server-5.0.preinst to
+ not fail on .journal files (thanks to Christophe Nowicki).
+ Closes: #318435
+
+ -- Christian Hammers <ch@debian.org> Sun, 14 Aug 2005 18:02:08 +0200
+
+mysql-dfsg-5.0 (5.0.11beta-1) unstable; urgency=low
+
+ * New upstream version.
+ * Added Danish Debconf translations (thanks to Claus Hindsgaul).
+ Closes: #322384
+ * Updated Czech Debconf translations (thanks to Miroslav Kure).
+ Closes: #321765
+
+ -- Christian Hammers <ch@debian.org> Sat, 13 Aug 2005 11:56:15 +0000
+
+mysql-dfsg-5.0 (5.0.10beta-1) unstable; urgency=low
+
+ * New upstream release.
+ * Christian Hammers:
+ - Added check for mounted /proc to debian/rules.
+ * Sean Finney:
+ - fix for fix_mysql_privilege_tables/mysql_fix_privilege_tables typo
+ in mysql-server-5.0's README.Debian (see #319838).
+
+ -- Christian Hammers <ch@debian.org> Sun, 31 Jul 2005 00:30:45 +0200
+
+mysql-dfsg-5.0 (5.0.7beta-1) unstable; urgency=low
+
+ * Second try for new upstream release.
+ * Renamed mysql-common-5.0 to mysql-common as future libmysqlclient16
+ from e.g. MySQL-5.1 would else introduce mysql-common-5.1 which makes
+ a simultanous installation of libmysqlclient14 impossible as that
+ depends on either mysql-common or mysql-common-5.0 but not on future
+ versions. Thus we decided to always let the newest MySQL version
+ provide mysql-common.
+ * Added ${misc:Depends} as suggested by debhelper manpage.
+ * Raised standard in control file to 3.6.2.
+ * Removed DH_COMPAT from rules in faviour of debian/compat.
+ * Checkes for presence of init script before executing it in preinst.
+ Referres: 315959
+ * Added 60_includes_mysys.h__gcc40.dpatch for GCC-4.0 compatibility.
+
+ -- Christian Hammers <ch@debian.org> Wed, 29 Jun 2005 00:39:05 +0200
+
+mysql-dfsg-5.0 (5.0.5beta-1) unstable; urgency=low
+
+ * New major release! Still beta so be carefull...
+ * Added federated storage engine.
+
+ -- Christian Hammers <ch@debian.org> Wed, 8 Jun 2005 19:29:45 +0200
+
+mysql-dfsg-4.1 (4.1.12-1) unstable; urgency=low
+
+ * Christian Hammers:
+ - New upstream release.
+ - Disabled BerkeleyDB finally. It has been obsoleted by InnoDB.
+ * Sean Finney:
+ - Updated French translation from Christian Perrier (Closes: #310526).
+ - Updated Japanese translation from Hideki Yamane (Closes: #310263).
+ - Updated Russian translation from Yuriy Talakan (Closes: #310197).
+
+ -- Christian Hammers <ch@debian.org> Sat, 4 Jun 2005 05:49:11 +0200
+
+mysql-dfsg-4.1 (4.1.11a-4) unstable; urgency=high
+
+ * Fixed FTBFS problem which was caused due to the fact that last uploads
+ BerkeleyDB patch was tried to applied on all architectures and not only
+ on those where BerkeleyDB is actually beeing built. Closes: #310296
+
+ -- Christian Hammers <ch@debian.org> Mon, 23 May 2005 00:54:51 +0200
+
+mysql-dfsg-4.1 (4.1.11a-3) unstable; urgency=high
+
+ * Added patch from Piotr Roszatycki to compile the bundled db3 library
+ that is needed for the BerkeleyDB support with versioned symbols so
+ that mysqld no longer crashes when it gets linked together with the
+ Debian db3 version which happens when e.g. using libnss-db.
+ Closes: #308966
+
+ -- Christian Hammers <ch@debian.org> Thu, 19 May 2005 01:41:14 +0200
+
+mysql-dfsg-4.1 (4.1.11a-2) unstable; urgency=high
+
+ * Okay, the hackery with /var/lib/dpkg/info/mysql-server.list will not
+ stand and is removed from the preinst of mysql-server.
+ * New workaround for the symlink problem that does not involve mucking
+ with dpkg's file lists is storing the symlinks in a temporary location
+ across upgrades.
+ As this sometimes fails since apt-get does not always call new.preinst
+ before old.postrm, some remarks were added to README.Debian and the
+ Debconf installation notes to minimize the inconvinience this causes.
+
+ -- sean finney <seanius@debian.org> Sun, 15 May 2005 10:25:31 -0400
+
+mysql-dfsg-4.1 (4.1.11a-1) unstable; urgency=high
+
+ * Added the "a" to the version number to be able to upload a new
+ .orig.tar.gz file which now has the non-free Docs/ directory removed
+ as this has been forgotten in the 4.1.11 release (thanks to Goeran
+ Weinholt). Closes: #308691
+ * The Woody package listed /var/lib/mysql and /var/log/mysql in its
+ /var/lib/dpkg/info/mysql-server.list. These directories are often
+ replaced by symlinks to data partitions which triggers a dpkg bug
+ that causes these symlinks to be removed on upgrades. The new preinst
+ prevents this by removing the two lines from the .list file
+ (thanks to Andreas Barth and Jamin W. Collins). See dpkg bug #287978.
+ * Updated French Debconf translation (thanks to Christian Perrier).
+ Closes: #308353
+
+ -- Christian Hammers <ch@debian.org> Thu, 12 May 2005 21:52:46 +0200
+
+mysql-dfsg-4.1 (4.1.11-3) unstable; urgency=high
+
+ * The "do you want to remove /var/lib/mysql when purging the package" flag
+ from old versions is removed once this package is beeing installed so
+ that purging an old Woody mysql-server package while having a
+ mysql-server-4.1 package installed can no longer lead to the removal of
+ all databases. Additionaly clarified the wording of this versions Debconf
+ template and added a check that skips this purge in the postrm script
+ if another mysql-server* package has /usr/sbin/mysqld installed.
+ (thanks to Adrian Bunk for spotting that problem) Closes: #307473
+ * Cronfile was not beeing installed as the filename was not in the
+ correct format for "dh_installcron --name" (thanks to Tomislav
+ Gountchev). Closes: #302712
+
+ -- Christian Hammers <ch@debian.org> Sat, 23 Apr 2005 22:55:15 +0200
+
+mysql-dfsg-4.1 (4.1.11-2) unstable; urgency=low
+
+ * Sean Finney:
+ - don't freak out if we can't remove /etc/mysql during purge.
+ - debian/rules clean works again.
+ * Christian Hammers:
+ - Fixed typo in README.Debian (thanks to Joerg Rieger). Closes: #304897
+ - Completely removed the passwordless test user as it was not only
+ insecure but also lead to irritations as MySQL checks first the
+ permissions of this user and then those of a password having one.
+ See bug report from Hilko Bengen for details. Closes: #301741
+
+ -- Christian Hammers <ch@debian.org> Sat, 16 Apr 2005 15:55:00 +0200
+
+mysql-dfsg-4.1 (4.1.11-1) unstable; urgency=low
+
+ * New upstream version.
+ * Upstream fix for charset/collation problem. Closes: #282256
+ * Upstream fix for subselect crash. Closes: #297687
+ * Corrected minor issue in Debconf template regarding skip-networking
+ (thanks to Isaac Clerencia). Closes: #303417
+ * Made dependency to gawk unnecessary (thanks to Zoran Dzelajlija).
+ Closes: #302284
+ * Removed obsolete 50_innodb_mixlen.dpatch.
+ * Removed obsolete 51_CAN-2004-0957_db_grant_underscore.dpatch.
+
+ -- Christian Hammers <ch@debian.org> Fri, 8 Apr 2005 00:23:53 +0200
+
+mysql-dfsg-4.1 (4.1.10a-7) unstable; urgency=low
+
+ * Sean Finney:
+ - fix for the mysteriously disappeared cronjob. thanks to
+ Peter Palfrader <weasel@debian.org> for pointing out this omission.
+ (closes: #302712).
+
+ -- sean finney <seanius@debian.org> Sat, 02 Apr 2005 16:54:13 -0500
+
+mysql-dfsg-4.1 (4.1.10a-6) unstable; urgency=high
+
+ * Sean Finney:
+ - the previous upload did not completely address the issue. this one
+ should do so. d'oh.
+
+ -- sean finney <seanius@debian.org> Thu, 31 Mar 2005 03:35:50 +0000
+
+mysql-dfsg-4.1 (4.1.10a-5) unstable; urgency=high
+
+ * Sean Finney:
+ - the following security issue is addressed in this upload:
+ CAN-2004-0957 (grant privilege escalation on tables with underscores)
+ thanks to sergei at mysql for all his help with this.
+
+ -- sean finney <seanius@debian.org> Wed, 30 Mar 2005 21:19:26 -0500
+
+mysql-dfsg-4.1 (4.1.10a-4) unstable; urgency=low
+
+ * Sean Finney:
+ - FTBFS fix for amd64/gcc-4.0. Thanks to Andreas Jochens <aj@andaco.de>
+ for reporting this (closes: #301807).
+ - ANSI-compatible quoting fix in daily cron job. thanks to
+ Karl Hammar <karl@aspodata.se> for pointing out the problem in
+ the 4.0 branch.
+ - Added myself as a co-maintainer in the control file (closes: #295312).
+
+ -- sean finney <seanius@debian.org> Tue, 29 Mar 2005 18:54:42 -0500
+
+mysql-dfsg-4.1 (4.1.10a-3) unstable; urgency=low
+
+ * BerkeleyDB is now disabled by default as its use is discouraged by MySQL.
+ * Added embedded server libraries as they finally do compile.
+ They are currently in libmysqlclient-dev as they are still
+ experimental and only available as .a library (thanks to Keith Packard).
+ Closes: #297062
+ * Fixed obsolete "tail" syntax (thanks to Sven Mueller). Closes: #301413
+ * Added CAN numbers for the latest security bugfix upload.
+ * Updated manpage of mysqlmanager (thanks to Justin Pryzby). Closes: #299844
+ * Added comments to default configuration.
+
+ -- Christian Hammers <ch@debian.org> Sun, 20 Mar 2005 17:40:18 +0100
+
+mysql-dfsg-4.1 (4.1.10a-2) unstable; urgency=low
+
+ * Disabled "--with-mysqld-ldflags=-all-static" as it causes sig11 crashes
+ if LDAP is used for groups in /etc/nsswitch.conf. Confirmed by Sean Finney
+ and Daniel Dehennin. Closes: #299382
+
+ -- Christian Hammers <ch@debian.org> Mon, 14 Mar 2005 03:01:03 +0100
+
+mysql-dfsg-4.1 (4.1.10a-1) unstable; urgency=high
+
+ * SECURITY:
+ - The following security related updates are addressed:
+ CAN-2005-0711 (temporary file creation with "CREATE TEMPORARY TABLE")
+ CAN-2005-0709 (arbitrary library injection in udf_init())
+ CAN-2005-0710 (arbitrary code execution via "CREATE FUNCTION")
+ Closes: #299029, #299031, #299065
+ * New Upstream Release.
+ - Fixes some server crash conditions.
+ - Upstream includes fix for TMPDIR overriding my.cnf tmpdir setting
+ Closes: #294347
+ - Fixes InnoDB error message. Closes: #298875
+ - Fixes resouce limiting. Closes: #285044
+ * Improved checking whether or not the server is alive in the init script
+ which should make it possible to run several mysqld instances in
+ different chroot environments. Closes: #297772
+ * Fixed cron script name as dots are not allowed (thanks to Michel
+ v/d Ven). Closes: #298447
+ * Added -O3 and --with-mysqld-ldflags=-all-static as MySQL recommends to
+ build the server binary statically in order to gain about 13% more
+ performance (thanks to Marcin Kowalski).
+ * Added patch to let mysqld_safe react to signals (thanks to Erich
+ Schubert). Closes: #208364
+ * (Thanks to Sean Finney for doing a great share of work for this release!)
+
+ -- Christian Hammers <ch@debian.org> Thu, 3 Mar 2005 02:36:39 +0100
+
+mysql-dfsg-4.1 (4.1.10-4) unstable; urgency=medium
+
+ * Fixed bug that prevented MySQL from starting after upgrades.
+ Closes: #297198, #296403
+ * Added comment about logging to syslog to the default my.cnf
+ and the logrotate script (thanks to Ryszard Lach). Closes: #295507
+
+ -- Christian Hammers <ch@debian.org> Thu, 3 Mar 2005 00:28:02 +0100
+
+mysql-dfsg-4.1 (4.1.10-3) unstable; urgency=low
+
+ * Sean Finney: Cronjobs now exit silently when the server package
+ has been removed but not purged (thanks to Vineet Kumar).
+ Closes: #297404
+ * Fixed comments of /etc/mysql/debian-log-rotate.conf (thanks to
+ Philip Ross). Closes: #297467
+ * Made mysqld_safe reacting sane on signals (thanks to Erich Schubert).
+ Closes: #208364
+
+ -- Christian Hammers <ch@debian.org> Tue, 1 Mar 2005 19:44:34 +0100
+
+mysql-dfsg-4.1 (4.1.10-2) unstable; urgency=low
+
+ * Converted to dpatch.
+ * debian/ is now maintained via Subversion on svn.debian.org.
+
+ -- Christian Hammers <ch@debian.org> Tue, 1 Mar 2005 02:16:36 +0100
+
+mysql-dfsg-4.1 (4.1.10-1) unstable; urgency=low
+
+ * New upstream version.
+ * Upstream fixed memleak bug. Closes: #205587
+ * Added debian/copyright.more for personal reference.
+ * Lowered default query cache size as suggested by Arjen from MySQL.
+ * Switched from log to log-bin as suggested by Arjen from MySQL.
+ * Fixed typo in my.cnf (thanks to Sebastian Feltel). Closes: #295247
+ * Replaced --defaults-extra-file by --defaults-file in Debian scripts
+ as former lets password/host etc be overwriteable by /root/.my.cnf.
+ Added socket to /etc/mysql/debian.cnf to let it work. (thanks to
+ SATOH Fumiyasu). Closes: #295170
+
+ -- Christian Hammers <ch@debian.org> Tue, 15 Feb 2005 23:47:02 +0100
+
+mysql-dfsg-4.1 (4.1.9-4) unstable; urgency=low
+
+ * Improved the way mysqld is started and registered with update-rc.d
+ in cases where the admin modifies the runlevel configuration.
+ Most notably removed the debconf question whether or not mysql should
+ start on when booting. Closes: #274264
+ * Renamed configuration option old-passwords to the more preferred
+ naming convention old_passwords. Same for some others (thanks to
+ Patrice Pawlak). Closes: #293983
+
+ -- Christian Hammers <ch@debian.org> Tue, 8 Feb 2005 02:21:18 +0100
+
+mysql-dfsg-4.1 (4.1.9-3) unstable; urgency=low
+
+ * Renamed ca_ES.po to ca.po to reach a broader audience (thanks to
+ Christian Perrier). Closes: #293786
+ * Expicitly disabled mysqlfs support as it has never been enabled by
+ configure during the autodetection but fails due to broken upstream
+ code when users try to build the package theirselves while having
+ liborbit-dev installed which triggers the mysqlfs autodetection
+ (thanks to Max Kellermann). Closes: #293431
+ * Added dependencies to gawk as one script does not work with original-awk
+ (thanks to Petr Ferschmann). Closes: #291634
+
+ -- Christian Hammers <ch@debian.org> Sun, 6 Feb 2005 23:33:11 +0100
+
+mysql-dfsg-4.1 (4.1.9-2) unstable; urgency=high
+
+ * SECURITY:
+ For historical reasons /usr/share/mysql/ was owned and writable by
+ the user "mysql". This is a security problem as some scripts that
+ are run by root are in this directory and could be modified and used
+ by a malicious user who already has mysql privileges to gain full root
+ rights (thanks to Matt Brubeck). Closes: #293345
+ * Changed "skip-networking" to "bind-address 127.0.0.1" which is more
+ compatible and not less secure but maybe even more, as less people enable
+ networking for all interfaces (thanks to Arjen Lentz).
+ * Enabled InnoDB by default as recommended by Arjen Lentz from MySQL.
+ * Added remarks about hosts.allow to README.Debian (thanks to David
+ Chappell). Closes: #291300
+ * mysql-server-4.1 now provides mysql-server (thanks to Paul van den Berg).
+ Closes: #287735
+
+ -- Christian Hammers <ch@debian.org> Wed, 2 Feb 2005 23:31:55 +0100
+
+mysql-dfsg-4.1 (4.1.9-1) unstable; urgency=low
+
+ * New upstream version.
+ * mysql-client-4.1 now provides "mysql-client" so that packages depending
+ on mysql-client (ca. 40) can now be used with MySQL-4.1, too.
+
+ -- Christian Hammers <ch@debian.org> Sun, 23 Jan 2005 22:52:48 +0100
+
+mysql-dfsg-4.1 (4.1.8a-6) unstable; urgency=high
+
+ * SECURITY:
+ Javier Fernandez-Sanguino Pena from the Debian Security Audit Project
+ discovered a temporary file vulnerability in the mysqlaccess script of
+ MySQL that could allow an unprivileged user to let root overwrite
+ arbitrary files via a symlink attack and could also could unveil the
+ contents of a temporary file which might contain sensitive information.
+ (CAN-2005-0004, http://lists.mysql.com/internals/20600) Closes: #291122
+
+ -- Christian Hammers <ch@debian.org> Tue, 18 Jan 2005 23:11:48 +0100
+
+mysql-dfsg-4.1 (4.1.8a-5) unstable; urgency=medium
+
+ * Fixed important upstream bug that causes from_unixtime(0) to return
+ NULL instead of "1970-01-01 00:00:00" which fails on NOT NULL columns.
+ Closes: #287792
+ * Fixes upstream bug in mysql_list_fields() . Closes: #282486
+ * Fixes bug that lead to double rotated logfiles when mysql-server 4.0
+ was previously installed (thanks to Olaf van der Spek). Closes: #289851
+ * Fixed typo in README.Debian (thanks to Mark Nipper). Closes: #289131
+ * Changed max_allowed_packet in my.cnf to 16M as in 4.0.x (thanks to
+ Olaf van der Spek). Closes: #289840
+ * Updated French debconf translation (thanks to Christian Perrier).
+ Closes: #287955
+
+ -- Christian Hammers <ch@debian.org> Thu, 13 Jan 2005 01:29:05 +0100
+
+mysql-dfsg-4.1 (4.1.8a-4) unstable; urgency=low
+
+ * Broken patch again :-(
+
+ -- Christian Hammers <ch@debian.org> Sun, 9 Jan 2005 23:47:55 +0100
+
+mysql-dfsg-4.1 (4.1.8a-3) unstable; urgency=low
+
+ * The mutex patch was a bit too x86 centric. This broke the alpha build.
+
+ -- Christian Hammers <ch@debian.org> Sun, 9 Jan 2005 14:18:49 +0100
+
+mysql-dfsg-4.1 (4.1.8a-2) unstable; urgency=medium
+
+ * Some Makefiles that were patched by me got overwritten by the GNU
+ autotools, probably because I also patched ./configure. Fixed now,
+ the critical mutex patch is now back in again. Closes: #286961
+ * Added patch to make MySQL compile on ARM (thanks to Adam Majer).
+ Closes: #285071
+
+ -- Christian Hammers <ch@debian.org> Thu, 6 Jan 2005 09:30:13 +0100
+
+mysql-dfsg-4.1 (4.1.8a-1) unstable; urgency=medium
+
+ * Upstream 4.1.8 had some problems in their GNU Autotools files so they
+ released 4.1.8a. Debian's 4.1.8 was fixed by running autoreconf but this
+ again overwrote MySQL changes to ltmain.sh which are supposed to fix some
+ problems on uncommon architectures (maybe the FTBFS on alpha, arm, m68k
+ and sparc?).
+ * libmysqlclient_r.so.14 from 4.1.8-3 also missed a link dependency to
+ libz which lead to unresolved symbols visible with "ldd -r" (thanks
+ to Laurent Bonnaud). Closes: #287573
+
+ -- Christian Hammers <ch@debian.org> Wed, 29 Dec 2004 14:26:33 +0100
+
+mysql-dfsg-4.1 (4.1.8-3) unstable; urgency=low
+
+ * Fixed checking for error messages by forcing english language
+ output by adding LC_ALL=C to debian-start (thanks to Rene
+ Konasz) Closes: #285709
+ * Fixed bashisms in Debian scripts. Closes: #286863
+ * Updated Japanese Debconf translation (thanks to Hideki Yamane).
+ Closes: #287003
+ * Improved 4.0 to 4.1 upgrade if /var/lib/mysql is a symlink
+ (thanks to Thomas Lamy). Closes: #286560
+ * Added patch for FTBFS problem where no LinuxThreads can be found.
+ I don't know if this still applies but it should not hurt.
+ The patch is debian/patches/configure__AMD64-LinuxThreads-vs-NPTL.diff
+
+ -- Christian Hammers <ch@debian.org> Sun, 26 Dec 2004 14:04:20 +0100
+
+mysql-dfsg-4.1 (4.1.8-2) unstable; urgency=low
+
+ * If /var/lib/mysql is a symlink then it is kept as such.
+ * Added the old-passwords option to the default my.cnf to stay
+ compatible to clients that are still compiled to libmysqlclient10
+ and libmysqlclient12 for licence reasons.
+ * Adjusted tetex build-deps to ease backporting (thanks to Norbert
+ Tretkowski from backports.org).
+
+ -- Christian Hammers <ch@debian.org> Tue, 21 Dec 2004 01:00:27 +0100
+
+mysql-dfsg-4.1 (4.1.8-1) unstable; urgency=medium
+
+ * New upstream version. Closes: #286175
+ * Added conflict to libmysqlclient-dev (thanks to Adam Majer).
+ Closes: #286538
+ * Added debconf-updatepo to debian/rules:clean.
+ * Updated Japanese Debconf translation (thanks to Hideki Yamane).
+ Closes: #285107
+ * Updated French Debconf translation (thanks to Christian Perrier).
+ Closes: #285977
+ * Renamed cz.po to cs.po (thanks to Miroslav Kure). Closes: #285438
+ * Aplied patch for changed server notice to debian-start (thanks to
+ Adam Majer). Closes: #286035
+ * Changed nice value in default my.cnf as nohup changed its behaviour
+ (thanks to Dariush Pietrzak). Closes: #285446
+ * Increased verbosity of preinst script in cases where it cannot stop
+ a running server (thanks to Jan Minar). Closes: #285982
+ * Splitted the code parts of /etc/mysql/debian-start to
+ /usr/share/mysql/debian-start.inc.sh (thanks to Jan Minar).
+ Closes: #285988
+
+ -- Christian Hammers <ch@debian.org> Mon, 20 Dec 2004 00:33:21 +0100
+
+mysql-dfsg-4.1 (4.1.7-4) unstable; urgency=medium
+
+ * Removed OpenSSL support.
+ After a short discussion with MySQL, I decided to drop OpenSSL support as
+ 1. MySQL started shipping their binaries without it, too and do not
+ seem to support it in favour of using a different library somewhen.
+ 2. MySQL did not adjust their licence to grant permission to link
+ against OpenSSL.
+ 3. Even if they did, third parties who use libmysqlclient.so often
+ do not realise licencing problems or even do not want OpenSSL.
+ (thanks to Jordi Mallach and the responders to MySQL bug #6924)
+ Closes: #283786
+ * debian/control: Improved depends and conflicts to mysql-4.0.
+
+ -- Christian Hammers <ch@debian.org> Thu, 2 Dec 2004 22:02:28 +0100
+
+mysql-dfsg-4.1 (4.1.7-3) unstable; urgency=low
+
+ * Raised version to make it higher as the one in experimental.
+
+ -- Christian Hammers <ch@debian.org> Wed, 1 Dec 2004 21:09:20 +0100
+
+mysql-dfsg-4.1 (4.1.7-2) unstable; urgency=low
+
+ * Patched scripts/mysql_install_db so that it no longer creates a
+ passwordless test database during installation (thanks to Patrick
+ Schnorbus). Closes: #281158
+ * Added Czech debconf translation (thanks to Miroslav Kure).
+ Closes: #283222
+
+ -- Christian Hammers <ch@debian.org> Wed, 1 Dec 2004 01:29:31 +0100
+
+mysql-dfsg-4.1 (4.1.7-1) unstable; urgency=low
+
+ * New upstream branch!
+ * Adjusted debian/control to make this package suitable to get parallel
+ to version 4.0.x into unstable and sarge. The package names are
+ different so that "mysql-server" still defaults to the rock-stable
+ 4.0 instead to this announced-to-be-stable 4.1.
+ * Added --with-mutex=i86/gcc-assemler to the Berkeley-DB configure
+ to prevent the use of NPLT threads when compiling under kernel 2.6
+ because the binaries are else not runable on kernel 2.4 hosts.
+ Closes: #278638, #274598
+
+ -- Christian Hammers <ch@debian.org> Sun, 31 Oct 2004 20:15:03 +0100
+
+mysql-dfsg (4.1.6-1) experimental; urgency=low
+
+ * New upstream version.
+ * Fixed symlinks in libmysqlclient-dev package. Closes: #277028
+ * This time I did not update the libtool files as they were pretty
+ up to date and I want to have a shorter diff file.
+
+ -- Christian Hammers <ch@debian.org> Wed, 20 Oct 2004 00:07:58 +0200
+
+mysql-dfsg (4.1.5-3) experimental; urgency=low
+
+ * debian/postinst: mysql_install_db changed parameter from --IN-RPM
+ to --rpm which caused problems during installs. Closes: #276320
+
+ -- Christian Hammers <ch@debian.org> Sat, 16 Oct 2004 20:36:46 +0200
+
+mysql-dfsg (4.1.5-2) experimental; urgency=low
+
+ * Activated support for ndb clustering (thanks to Kevin M. Rosenberg).
+ Closes: #275109
+
+ -- Christian Hammers <ch@debian.org> Wed, 6 Oct 2004 01:58:00 +0200
+
+mysql-dfsg (4.1.5-1) experimental; urgency=low
+
+ * WARNING:
+ The upstream branch 4.1 is still considered BETA.
+ The Debian packages for 4.1 were done without big testing. If you miss
+ a new functionality or binary, contact me and I check add the relevant
+ configure option or include the program.
+ * New MAJOR upstream version.
+ Thanks to the great demand here's now the first MySQL 4.1 experimental
+ release. FEEDBACK IS WELCOME.
+ * 4.0->4.1 notes:
+ - debian/patches/alpha.diff could not be applied, I fix that later
+ - debian/patches/scripts__mysql_install_db.sh.diff was obsolete
+ - debian/patches/scripts__Makefile.in was neccessary due to a dependency
+ to the removed non-free Docs/ directory. Upstream has been contacted.
+ - Build-Deps: += automake1.7
+ - debian/rules: embedded servers examples did not compile, removed
+
+ -- Christian Hammers <ch@debian.org> Sun, 26 Sep 2004 19:46:47 +0200
+
+mysql-dfsg (4.0.21-3) unstable; urgency=low
+
+ * Upstream tried to fix a security bug in mysqlhotcopy and broke it :-)
+ Applied a patch (see debian/patches) from Martin Pitt. Closes: #271632
+ * Between 4.0.20 and 4.0.21 the Debian specific changes in
+ /usr/bin/mysqld_safe that piped the error log to syslog got lost
+ and are now back again.
+ * Fixed capitalization in debconf headings.
+ * Changed wording of the initscript status message to make heartbeat
+ happier. Closes: #271591
+
+ -- Christian Hammers <ch@debian.org> Fri, 17 Sep 2004 18:42:25 +0200
+
+mysql-dfsg (4.0.21-2) unstable; urgency=medium
+
+ * The dependencies between mysql-client and libmysqlclient12 were
+ too loose, when upgrading only the client this can lead to non working
+ binaries due to relocation errors (thanks to Dominic Cleal).
+ Closes: #271803
+ * Fixed typo in mysqldump.1 manpage (thanks to Nicolas Francois).
+ Closes: #271334
+
+ -- Christian Hammers <ch@debian.org> Wed, 15 Sep 2004 15:38:11 +0200
+
+mysql-dfsg (4.0.21-1) unstable; urgency=high
+
+ * SECURITY:
+ This upstream version fixes some security problems that might at least
+ allow a DoS attack on the server.
+ * Fixed an old bug in concurrent accesses to `MERGE' tables (even
+ one `MERGE' table and `MyISAM' tables), that could've resulted in
+ a crash or hang of the server. (Bug #2408)
+ * Fixed bug in privilege checking where, under some conditions, one
+ was able to grant privileges on the database, he has no privileges
+ on. (Bug #3933)
+ * Fixed crash in `MATCH ... AGAINST()' on a phrase search operator
+ with a missing closing double quote. (Bug #3870)
+ * Fixed potential memory overrun in `mysql_real_connect()' (which
+ required a compromised DNS server and certain operating systems).
+ (Bug #4017)
+ * New upstream version.
+ * Fixes bug that made x="foo" in WHERE sometimes the same as x="foo ".
+ Closes: #211618
+ * Updated Japanese Debconf translation (thanks to Hideki Yamane).
+ Closes: #271097
+
+ -- Christian Hammers <ch@debian.org> Sat, 11 Sep 2004 23:15:44 +0200
+
+mysql-dfsg (4.0.20-14) unstable; urgency=low
+
+ * Dave Rolsky spottet that -DBIG_JOINS was not properly enabled.
+ It allowes joining 64 instead of an 32 tables to join.
+
+ -- Christian Hammers <ch@debian.org> Thu, 9 Sep 2004 20:24:02 +0200
+
+mysql-dfsg (4.0.20-13) unstable; urgency=medium
+
+ * Fixed a bug in the initscript which caused the check for not properly
+ closed i.e. corrupt tables that is executed when the server starts
+ not to run in background as supposed.
+ Although the check does not repair anything on servers with several
+ thousand tables the script was reported to take some minutes which
+ is quite annoying. (Thanks to Jakob Goldbach). Closes: #270800
+
+ -- Christian Hammers <ch@debian.org> Thu, 9 Sep 2004 17:11:05 +0200
+
+mysql-dfsg (4.0.20-12) unstable; urgency=medium
+
+ * Filter messages regarding table handles that do not support CHECK TABLE
+ in the script that checks for corrupted tables on every start which lead
+ to unnecessary mails (thanks to David Everly). Closes: #269811
+ * Added a note to the corrupt-table-check mail which notes that a
+ false-positive is reported in the case that immediately after starting
+ the server a client starts using a table (thanks to Uwe Kappe).
+ Closes: #269985
+ * Added "quote-names" as default to the [mysqldump] section in
+ /etc/mysql/my.cnf as too many users stumble over dump files that
+ could not be read in again due to the valid use of reserved words
+ as table names. This has also be done by upstream in 4.1.1 and has
+ no known drawbacks. Closes: #269865
+ * Binary logs can now be rotated as well. Defaults to off, though, for
+ compatibilty reasons (thanks to Mark Ferlatte). Closes: #94230, #269110
+ * The mysql user "debian-sys-maint" now gets all possible rights which
+ makes binary logging possible and helps other package maintainer who
+ wants to use it to create package specific databases and users.
+ * Added example how to change daemon nice level via /etc/mysql/my.cnf
+ * Updated French debconf translations (thanks to Christian Perrier).
+ Closes: #265811
+ * Renamed options in the default config file that still had old names
+ (thanks to Yves Kreis). Closes: #266445
+ * Fixed spelling in debconf note.
+ * Added -l and -L to dh_shlibdeps.
+
+ -- Christian Hammers <ch@debian.org> Fri, 3 Sep 2004 20:10:46 +0200
+
+mysql-dfsg (4.0.20-11) unstable; urgency=high
+
+ * SECURITY
+ This version fixes a security flaw in mysqlhotcopy which created
+ temporary files in /tmp which had predictable filenames and such
+ could be used for a tempfile run attack.
+ The issue has been recorded as CAN-2004-0457.
+
+ -- Christian Hammers <ch@debian.org> Sat, 14 Aug 2004 18:27:19 +0200
+
+mysql-dfsg (4.0.20-10) unstable; urgency=low
+
+ * MySQL finally updated their copyright page and installed v1.5 of
+ the "Free/Libre and Open Source Software License (FLOSS) - Exception"
+ which will hopefully end the license hell they created by putting the
+ client libraries under GPL instead of LGPL which conflicts with PHP and
+ other software that used to link against MySQL.
+ The license text is not yet in any release MySQL version but visible
+ on their web site and copied into the debian/copyright file.
+ Special thanks to Zak Greant <zak@mysql.com> and the debian-legal list
+ for helping to solve this release critical problem.
+ Closes: #242449
+ * Updated Brazil debconf translation (thanks to Andre Luis Lopes).
+ Closes: #264233
+ * Updated Japanese debconf translation (thanks to Hideki Yamane).
+ Closes: #264620
+ * Fixed minor typo in debconf description (thanks to TROJETTE Mohammed
+ Adnene). Closes: #264840
+ * Improved init and preinst script which now detects stalled servers which
+ do no longer communicate but are present in the process list (thanks to
+ Henrik Johansson). Closes: #263215
+
+ -- Christian Hammers <ch@debian.org> Mon, 9 Aug 2004 19:44:28 +0200
+
+mysql-dfsg (4.0.20-9) unstable; urgency=medium
+
+ * Partly reverted the last patch which gave the mysql-user
+ "debian-sys-maint" more rights as there are old versions of MySQL which
+ have fewer privlige columns. Now only those are set (thanks to Alan Tam).
+ Closes: #263111
+
+ -- Christian Hammers <ch@debian.org> Tue, 3 Aug 2004 13:03:02 +0200
+
+mysql-dfsg (4.0.20-8) unstable; urgency=low
+
+ * The mysqlcheck that is started from the initscript will now be
+ backgrounded because it might else prevent the boot process to continue.
+ It also now notifies root by mail and syslog if a table is corrupt.
+ * The "debian-sys-maint" MySQL user now has almost full rights so that other
+ packages might use this account to create databases and user (thanks to
+ Andreas Barth). Closes: #262541
+ * Added paranoid rules for logcheck.
+
+ -- Christian Hammers <ch@debian.org> Sun, 1 Aug 2004 21:00:55 +0200
+
+mysql-dfsg (4.0.20-8) unstable; urgency=low
+
+ * Upload stalled. Not released.
+
+ -- Christian Hammers <ch@debian.org> Sun, 1 Aug 2004 20:27:55 +0200
+
+mysql-dfsg (4.0.20-7) unstable; urgency=medium
+
+ * Solved the upstream bug that error messages of the server are written
+ in a file that is then rotated away leaving mysqld logging effectively
+ to /dev/null. It now logs to a /usr/bin/logger process which puts the
+ messages into the syslog.
+ Modified files: /etc/init.d/mysql, /usr/bin/mysqld_safe and the
+ logchecker files. Closes: #254070
+ * The initscript does no longer call mysqlcheck directly but via
+ /etc/mysql/debian-start which is a user customizable config script.
+ * Splitted the debconf "install and update notes" and only show them
+ when it is appropriate (thanks to Steve Langasek). Closes: #240515
+ * Added NEWS.Debian.
+ * Added hint to -DBIG_ROWS, which is currently not used, to README.Debian.
+ * Corrected typo in myisampack manpage (thanks to Marc Lehmann).
+ Closes: #207090
+ * Added Catalan debconf translation (thanks to Aleix Badia i Bosch).
+ Closes: #236651
+
+ -- Christian Hammers <ch@debian.org> Wed, 28 Jul 2004 01:41:51 +0200
+
+mysql-dfsg (4.0.20-6) unstable; urgency=low
+
+ * The build arch detected by configure was "pc-linux-gnu (i686)"
+ instead of "pc-linux-gnu (i386)". Was no problem AFAIK but
+ Adam Majer asked me to explicitly change it to i386. Closes: #261382
+ * Removed some unused shell scripts from /usr/share/mysql.
+ * Added lintian overrides.
+ * Removed rpath by using chrpath.
+
+ -- Christian Hammers <ch@debian.org> Mon, 26 Jul 2004 00:17:12 +0200
+
+mysql-dfsg (4.0.20-5) unstable; urgency=medium
+
+ * The mysqlcheck in the init script is only called when the server
+ is really alive. Also, the mysql-user 'debian-sys-maint' now has
+ global select rights (thanks to Nathan Poznick). Closes: #261130
+ * Moved the debconf question whether to remove the databases or not
+ from mysql-server.config to mysql-server.postrm so that it shows
+ up on purge time and not months earlier (thanks to Wouter Verhelst).
+ Closes: #251838
+
+ -- Christian Hammers <ch@debian.org> Fri, 23 Jul 2004 22:41:13 +0200
+
+mysql-dfsg (4.0.20-4) unstable; urgency=low
+
+ * Added a "mysqlcheck -A --fast" to the 'start' section of the
+ init script to help admins detect corrupt tables after a server crash.
+ Currently it exists with an error message but leaves the server
+ running. Feedback appreciated!
+ * Made postinst script more robust by calling db_stop earlier and
+ so prevent pipe-deadlocks.
+ * Fixed minor typos in initscript (thanks to "C.Y.M."). Closes: 259518
+ * Added the undocumented "-DBIG_JOINS" that MySQL apparently uses in
+ their MAX binaries. It enables 62 instead of 30 tables in a "join".
+ (thanks to Dave Rolsky). Closes: #260843
+ * Added a "df --portability /var/lib/mysql/." check to the preinst
+ script as users experienced hard to kill hanging mysqlds in such
+ a situation (thanks to Vaidas Pilkauskas). Closes: #260306
+
+ -- Christian Hammers <ch@debian.org> Fri, 23 Jul 2004 00:51:32 +0200
+
+mysql-dfsg (4.0.20-3) unstable; urgency=low
+
+ * Improved tolerance if the init script has been deleted (thanks to
+ Leonid Shulov for spotting the problem).
+ * Minor wording changes to README.Debian generalizing /root/ by $HOME
+ (thanks to Santiago Vila). Closes: #257725
+ * Added Japanese debconf translation (thanks to Hideki Yamane).
+ Closes: #256485
+ * Fixed commend in my.cnf regarding logfile directory (thanks to Jayen
+ Ashar). Closes: #253434
+ * Correted "ease to" by "ease of" in package description (thanks to
+ Johannes Berg). Closes: #253510
+
+ -- Christian Hammers <ch@debian.org> Fri, 9 Jul 2004 00:57:42 +0200
+
+mysql-dfsg (4.0.20-2) unstable; urgency=low
+
+ * Removed RPM .spec file from the included documentation as it is pretty
+ useless (thanks to Loic Minier).
+ * Added turkish debconf translation (thanks to Recai Oktas). Closes: #252802
+
+ -- Christian Hammers <ch@debian.org> Sun, 6 Jun 2004 14:48:26 +0200
+
+mysql-dfsg (4.0.20-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Christian Hammers <ch@debian.org> Mon, 31 May 2004 23:36:39 +0200
+
+mysql-dfsg (4.0.18-8) unstable; urgency=low
+
+ * Updated french translation (thanks to Christian Perrier). Closes: #246789
+
+ -- Christian Hammers <ch@debian.org> Tue, 4 May 2004 23:26:54 +0200
+
+mysql-dfsg (4.0.18-7) unstable; urgency=low
+
+ * Added CVE ids for the recent security fixes.
+ 4.0.18-4 is CAN-2004-0381 (mysqlbug) and
+ 4.0.18-6 is CAN-2004-0388 (mysql_multi)
+
+ -- Christian Hammers <ch@debian.org> Mon, 19 Apr 2004 18:32:03 +0200
+
+mysql-dfsg (4.0.18-6) unstable; urgency=medium
+
+ * SECURITY:
+ Fixed minor tempfile-run security problem in mysqld_multi.
+ Unprivileged users could create symlinks to files which were then
+ unknowingly overwritten by run when this script gets executed.
+ Upstream informed. Thanks to Martin Schulze for finding this.
+
+ -- Christian Hammers <ch@debian.org> Wed, 7 Apr 2004 01:28:22 +0200
+
+mysql-dfsg (4.0.18-5) unstable; urgency=low
+
+ * Little improvements in debian scripts for last upload.
+ * Added check to logrotate script for the case that a mysql
+ server is running but not be accessible with the username and
+ password from /etc/mysql/debian.conf (thanks to Jeffrey W. Baker).
+ Closes: 239421
+
+ -- Christian Hammers <ch@debian.org> Sun, 4 Apr 2004 15:27:40 +0200
+
+mysql-dfsg (4.0.18-4) unstable; urgency=medium
+
+ * SECURITY:
+ Aplied fix for unprobable tempfile-symlink security problem in
+ mysqlbug reported by Shaun Colley on bugtraq on 2004-03-24.
+ * Updated french debconf translation (thanks to Christian Perrier).
+ Closes: #236878
+ * Updated portugesian debconf translation (thanks to Nuno Senica).
+ Closes: #239168
+ * Updated german debconf translation (thanks to Alwin Meschede).
+ Closes: #241749
+ * Improved debconf template regarding fix_privileges_tables (thanks
+ to Matt Zimmermann for suggestions). Closes: #219400
+ * Improved README.Debian regarding to password settings (thanks to
+ Yann Dirson). Closes: #241328
+
+ -- Christian Hammers <ch@debian.org> Sat, 3 Apr 2004 19:52:15 +0200
+
+mysql-dfsg (4.0.18-3) unstable; urgency=medium
+
+ * Added Build-Depend to po-debconf to let it build everywhere.
+
+ -- Christian Hammers <ch@debian.org> Wed, 31 Mar 2004 23:43:33 +0200
+
+mysql-dfsg (4.0.18-2) unstable; urgency=low
+
+ * Added a "2>/dev/null" to a "which" command as there are two
+ "which" versions in Debian of which one needs it. Closes: #235363
+
+ -- Christian Hammers <ch@debian.org> Tue, 2 Mar 2004 23:31:28 +0100
+
+mysql-dfsg (4.0.18-1) unstable; urgency=low
+
+ * New upstream version.
+ * Should now compile and run on ia64 (thanks to Thorsten Werner and
+ David Mosberger-Tang). Closes: #226863 #228834
+ * Converted init scripts to invoce-rc.d (thanks to Erich Schubert).
+ Closes: 232118
+ * Secondlast upload changed logfile location. Closes: #182655
+ * Updated Brasilian translation (thanks to Andre Luis Lopes). Closes:
+ #219847
+
+ -- Christian Hammers <ch@debian.org> Tue, 17 Feb 2004 23:44:58 +0100
+
+mysql-dfsg (4.0.17-2) unstable; urgency=low
+
+ * Improved manpage for mysqldumpslow.1 (thanks to Anthony DeRobertis).
+ Closes: #231039
+ * Improved stopping of crashed daemons in init script (thanks to
+ Matthias Urlichs). Closes: #230327
+
+ -- Christian Hammers <ch@debian.org> Mon, 9 Feb 2004 21:54:29 +0100
+
+mysql-dfsg (4.0.17-1) unstable; urgency=low
+
+ * Made logging into /var/log/mysql/ the default. Closes: #225206
+
+ * New upstream version. Closes: #225028
+ * Turned on a 25MB query cache by default (thanks to Cyril Bouthors).
+ Closes: #226789
+ * Updated russian translation (thanks to Ilgiz Kalmetev). Closes: #219263
+ * Upstream fixes the problem that AND was not commutative (thanks for
+ Iain D Broadfoot for mentioning). Closes: #227927
+ * Fixed minor typo in my.cnf comments (thanks to James Renken).
+ Closes: #221496
+ * Better documents regex. Closes: #214952
+ * Fixed minor germanism in debconf template (thanks to Marc Haber).
+ Closes: #224148
+ * Added explaining comment to my.cnf regarding quoted passwords
+ (Thanks to Patrick von der Hagen). Closes: #224906
+ * Changed "find -exec" to "find -print0 | xargs -0" in preinst to
+ speed it up. Thanks to Cyril Bouthors. Closes: #220229
+
+ -- Christian Hammers <ch@debian.org> Sun, 18 Jan 2004 16:16:25 +0100
+
+mysql-dfsg (4.0.16-2) unstable; urgency=low
+
+ * Tried to repair undefined weak symbols by adding a little Makefile
+ patch. Closes: #215973
+
+ -- Christian Hammers <ch@debian.org> Mon, 27 Oct 2003 22:52:10 +0100
+
+mysql-dfsg (4.0.16-1) unstable; urgency=low
+
+ * New upstream release.
+ (Mostly little memory problems and other bugfixes it seems)
+ * Replaced "." by ":" in chown calls to comply with the env setting
+ "_POSIX2_VERSION=2000112" (thanks to Robert Luberda). Closes: #217399
+ * Adjusted syntax in my.cnf to 4.x standard (thanks to Guillaume Plessis).
+ Closes: #217273
+ * Improved README.Debian password instructions (thanks to Levi Waldron).
+ Closes: #215046
+ * Improved NIS warning debconf-template (thanks to Jeff Breidenbach).
+ Closes: #215791
+ * Explicitly added libssl-dev to the libmysqlclient-dev package as it
+ is needed for mysql_config and the libmysqlclient package only depends
+ on libssl which has no unnumbered .so version (thanks to Simon Peter
+ and Davor Ocelic). Closes: #214436, #216162
+ * Added "-lwrap" to "mysql_config --libmysqld-libs" and filed it as
+ upstream bug #1650 (thanks to Noah Levitt). Closes: #214636
+
+ -- Christian Hammers <ch@debian.org> Sat, 25 Oct 2003 01:09:27 +0200
+
+mysql-dfsg (4.0.15a-1) unstable; urgency=low
+
+ * Same package as 4.0.15-2 but I could not convince the Debian
+ installer to move the packages out of incoming.
+
+ -- Christian Hammers <ch@debian.org> Tue, 7 Oct 2003 15:10:26 +0200
+
+mysql-dfsg (4.0.15-2) unstable; urgency=low
+
+ * Updated package description (thanks to Adrian Bunk). Closes: #210988
+ * Fixed small typos in manpages (thanks to Nicolas Francois).
+ Closes: #211983
+ * More updates to package description (thanks to Matthias Lutz/ddtp).
+ Closes: #213456
+ * Updated standards to 3.6.1.
+ * Closes "new 4.0.15 available" bug. Closes: #213349
+ * Updated README.Debian with notes regarding the MySQL manual section
+ "2.4 Post-installation Setup and Testing" (thanks to Daniel B.).
+ Closes: #210841
+
+ -- Christian Hammers <ch@debian.org> Fri, 3 Oct 2003 15:59:39 +0200
+
+mysql-dfsg (4.0.15-1) unstable; urgency=high
+
+ * SECURITY:
+ Users who are able to use the "ALTER TABLE" command on the "mysql"
+ database may be able to exploit this vulnerability to gain a shell with
+ the privileges of the mysql server (usually running as the 'mysql' user).
+ Closes: #210403
+ * Fixes small description typos (thanks to Oscar Jarkvik).
+ * Updated Brazilian Portuguese debconf translation. (thanks to Andre Luis
+ Lopes). Closes: 208030
+ * Replaced depricated '.' by ':' in chown (thanks to Matt Zimmerman).
+ * Fixed manpage typo (thanks to Marc Lehmann). Closes: #207090
+
+ -- Christian Hammers <ch@debian.org> Fri, 3 Oct 2003 15:59:35 +0200
+
+mysql-dfsg (4.0.14-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Christian Hammers <ch@debian.org> Sun, 24 Aug 2003 16:40:36 +0200
+
+mysql-dfsg (4.0.13-3) unstable; urgency=low
+
+ * Now start mysqld as default unless you choose not when configurig
+ with debconf priority low. So packages depending on the server when
+ installing can access it. Thanks Matt Zimmermann (Closes: #200277)
+ * Made mysql-server de-installable if the config and database files were
+ removed by hand before. Thanks to Ard van Breemen (Closes: #200304)
+
+ -- Christian Hammers <ch@debian.org> Tue, 8 Jul 2003 22:30:40 +0200
+
+mysql-dfsg (4.0.13-2) unstable; urgency=low
+
+ * Added "nice" option for mysqld_safe to give mysqld a different priority.
+ Submitted to upstream as MySQL Bug #627. Closes: #192087
+ * Fixed possible unbound variable in init script. Closes: #194621
+ * Fixed french debconf translation (thx Christian Perrier) Closes: #194739
+ * Get rid of automake1.5 (for Eric Dorland).
+
+ -- Christian Hammers <ch@debian.org> Wed, 11 Jun 2003 18:58:32 +0200
+
+mysql-dfsg (4.0.13-1) unstable; urgency=medium
+
+ * New upstream version.
+ !!! Fixes a very bad natural join bug which justifies the urgency=medium.
+ !!! http://bugs.mysql.com/bug.php?id=291
+ * Fixed mysql_fix_privileges manpage (Frederic Briere) Closes: #191776
+ * preinst: "which" is more chatty normal executable than as builtin.
+ (Thanks to David B Harris). Closes: #188659
+
+ -- Christian Hammers <ch@debian.org> Tue, 6 May 2003 22:03:45 +0200
+
+mysql-dfsg (4.0.12-3) unstable; urgency=medium
+
+ * Reincluded new way of creating my debian-sys-maint user from
+ an old release from experimental. Now works again with old
+ and new privilege table format. (Thanks to Vincent Danjean
+ for spotting the problem) Closes: #188201
+ * Reincluded hurd build dependency fix from 3.23 branch.
+ (Thanks to Robert Millan). Closes: #185929
+ * Fixed soname in libmysqlclient-dev. Closes: #188160
+ * Remove /var/log/mysql/ when purging the package. Closes: #188064
+ * Removed /usr/share/doc/mysql/ from mysql-server. Closes: #188066
+ * Let group "adm" be able to read logfiles. Closes: #188067
+ * Do not call usermod on every upgrade. Closes: #188248
+ (Thanks to Philippe Troin for the last three)
+ * Fixed mysql-server.preinst so that it works on shells where
+ which is a builtin, too. (Thanks to Erich Schubert) Closes: #181525
+
+ -- Christian Hammers <ch@debian.org> Fri, 11 Apr 2003 11:32:45 +0200
+
+mysql-dfsg (4.0.12-2) unstable; urgency=low
+
+ *
+ * NEW MAJOR UPSTREAM RELEASE:
+ *
+ MySQL 4 has finally been declared as 'stable'. Hurray! Read changelogs.
+ Thanks to all testers, esp. Jose Luis Tallon, of the versions
+ that were in the "experimental" section before.
+ * Modified postinst script to run mysql_fix_privileges on every update.
+ IMPORTANT: Please report if this breaks anything, it is not supposed to.
+ * Wrote a SSL-MINI-HOWTO.txt!
+ * Added zlib1g-dev to libmysqlclient12-dev. Closes: 186656
+ * Changed section of libmysqlclient12-dev to libdevel.
+ * Added even more selfwritten manpages.
+ * Fixed typos.
+
+ -- Christian Hammers <ch@debian.org> Sun, 6 Apr 2003 13:47:32 +0200
+
+mysql-dfsg (4.0.10.gamma-1) experimental; urgency=low
+
+ * New upstream version.
+ * They merged some of my patches from debian/patches. Whoa!
+ * This release should fix the error-logfile problem where mysqld
+ keeps the error.log open while logrotate removes it.
+
+ -- Christian Hammers <ch@debian.org> Wed, 12 Feb 2003 22:39:48 +0100
+
+mysql-dfsg (4.0.9.gamma-1) experimental; urgency=low
+
+ * New upstream version.
+ * Updated the GNU autoconf files to make building on MIPS work.
+ See bug #176829.
+
+ -- Christian Hammers <ch@debian.org> Wed, 29 Jan 2003 22:07:44 +0100
+
+mysql-dfsg (4.0.8.gamma-1) experimental; urgency=low
+
+ * New upstream release.
+ * Improved logging of init script. Closes: #174790
+ * We have now libmysqlclient.so.12 instead of .11.
+
+ -- Christian Hammers <ch@debian.org> Thu, 9 Jan 2003 20:14:11 +0100
+
+mysql-dfsg (4.0.7.gamma-1) experimental; urgency=high
+
+ * SECURITY: This version fixes an upstream security release that is only
+ present in the 4.x branch which is currently only in the
+ experimental distribution and therefore will not get a DSA.
+ * New upstream release.
+
+ -- Christian Hammers <ch@debian.org> Sat, 28 Dec 2002 15:51:39 +0100
+
+mysql-dfsg (4.0.6.gamma-2) experimental; urgency=low
+
+ * Added --system to addgroup. Closes: #173866
+
+ -- Christian Hammers <ch@debian.org> Sat, 21 Dec 2002 15:28:26 +0100
+
+mysql-dfsg (4.0.6.gamma-1) experimental; urgency=low
+
+ * New upstream version. Now Gamma!
+ * There are no longer changes to the .orig.tar.gz neccessary to make diff
+ happy. docs/ has still to be deleted, although, as it is non-free.
+ * Incorporated patches from unstable.
+ * Added mysqlmanager and a couple of other new scripts.
+ * Enabled libmysqld embedded server library.
+ * Enabled SSL and Virtual-IO support.
+ (CORBA based MySQL-FS seems to be not existing..)
+
+ -- Christian Hammers <ch@debian.org> Fri, 20 Dec 2002 22:30:51 +0100
+
+mysql-dfsg (4.0.5a.beta-3) experimental; urgency=low
+
+ * Modified postinst to work with old and new mysql.user table format
+ and fixed spelling typo in postinst. Thanks to Roger Aich.
+ * Updated config.{guess,sub} to make the mipsel porters happy.
+ Thanks to Ryan Murray. Closes: #173553
+
+ -- Christian Hammers <ch@debian.org> Wed, 18 Dec 2002 15:56:34 +0100
+
+mysql-dfsg (4.0.5a.beta-2) experimental; urgency=low
+
+ * Upstream removed option "--skip-gemini". So did I. Closes: 173142
+
+ -- Christian Hammers <ch@debian.org> Tue, 17 Dec 2002 10:35:49 +0100
+
+mysql-dfsg (4.0.5a.beta-1) experimental; urgency=low
+
+ * First 4.x experimental package due to continuous user requests :-)
+ Please test and report!
+ * upstream: safe_mysqld has been renamed to mysqld_safe
+ * upstream: new library soname version libmysqlclient.so.11
+ * Renamed libmysqlclientXX-dev to libmysqlclient-dev as I don't plan to
+ support more than one development environment and this makes the
+ dependencies easier.
+ * FIXME: Skipped parts of the debian/patches/alpha patch as the global.h
+ is not existing.
+ * FIXME: How to get rid this? Old ltconfig patch already applied.
+ "lintian: binary-or-shlib-defines-rpath ./usr/bin/mysql /usr/lib/mysql"
+
+ -- Christian Hammers <ch@debian.org> Sun, 1 Dec 2002 18:32:32 +0100
+
+mysql-dfsg (3.23.53-4) unstable; urgency=medium
+
+ * Fixed errno.h problem. Closes: #168533, #168535
+
+ -- Christian Hammers <ch@debian.org> Sun, 10 Nov 2002 18:32:08 +0100
+
+mysql-dfsg (3.23.53-3) unstable; urgency=medium
+
+ * Changed automake build-dep to unversioned automake1.4. Closes: #166391
+ * Fixed description. Closes: #167270
+ (Thanks to Soren Boll Overgaard)
+
+ -- Christian Hammers <ch@debian.org> Tue, 5 Nov 2002 01:25:01 +0100
+
+mysql-dfsg (3.23.53-2) unstable; urgency=low
+
+ * Reverted user creation in init scripts. Closes: #166432
+ (Thanks to Birzan George Cristian)
+
+ -- Christian Hammers <ch@debian.org> Thu, 31 Oct 2002 15:36:25 +0100
+
+mysql-dfsg (3.23.53-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Christian Hammers <ch@debian.org> Thu, 24 Oct 2002 23:04:16 +0200
+
+mysql-dfsg (3.23.52-3) unstable; urgency=low
+
+ * Substituted the first-install 'debian-sys-maint' user creation by
+ something ANSI SQL compliant. Closes: #163497
+ (Thanks to Karl Hammar)
+ * Tightend dependency to debhelper (>= 4.0.12) to be sure that
+ debconf-utils gets installed, too, as I use dh_installdebconf.
+ * Fixed upstream manpage bug in mysqldump.1. Closes: #159779
+ (Thanks to Colin Watson)
+ * Added comment about MIN_WORD_LEN to mysql-server.README.Debian
+ (Thanks to Philipp Dreimann)
+ * Added a dependency for zlib1g-dev to libmysqlclient10-dev.
+ (Thanks to Jordi Mallach)
+
+ -- Christian Hammers <ch@debian.org> Sun, 15 Sep 2002 17:14:44 +0200
+
+mysql-dfsg (3.23.52-2) unstable; urgency=low
+
+ * Fixed typo in preinst scripts.
+ * Removed bashism in init script.
+ * Fixed ambiguous debconf example. Closes: #158884
+
+ -- Christian Hammers <ch@debian.org> Fri, 30 Aug 2002 00:51:29 +0200
+
+mysql-dfsg (3.23.52-1) unstable; urgency=low
+
+ * New upstream version. Closes: #157731
+ * Clearified the meaning of the debian-sys-maint special user in the
+ README.Debian file. Closes: #153702
+ * Wrote some words regarding the skip-networking in README.Debian.
+ Closes: #157038
+ * Added dependency to passwd.
+ * Fixes typo and unnecessarily complication in is_mysql_alive().
+ * Added check for /etc/mysql/my.cnf in init script.
+
+ -- Christian Hammers <ch@debian.org> Tue, 27 Aug 2002 01:53:32 +0200
+
+mysql-dfsg (3.23.51-4) unstable; urgency=low
+
+ * Added a compressed "nm mysqld" output to allow people to trace
+ core dumps with /usr/bin/resolve_stack_dump as suggested in the
+ INSTALL-SOURCE file. Thanks to atudor@labs.agilent.com for the hint.
+
+ -- Christian Hammers <ch@debian.org> Wed, 24 Jul 2002 20:44:55 +0200
+
+mysql-dfsg (3.23.51-3) unstable; urgency=low
+
+ * Corrected copyright file: the MySQL client library is licenced under
+ the LGPL-2 not the GPL. From version 4.x it actually will be GPL this
+ is why parts of http://www.mysql.com/ already say so. Closes: #153591
+ * Corrected german translation.
+ Thanks to Roland Rosenfeld <roland@spinnaker.de>. Closes: #151903
+
+ -- Christian Hammers <ch@debian.org> Thu, 11 Jul 2002 20:32:28 +0200
+
+mysql-dfsg (3.23.51-2) unstable; urgency=low
+
+ * Improved NIS tolerance in preinst script.
+
+ -- Christian Hammers <ch@debian.org> Sun, 7 Jul 2002 04:43:28 +0200
+
+mysql-dfsg (3.23.51-1) unstable; urgency=medium
+
+ * New upstream version.
+ * I applied a patch that fixes a binary imcompatibility in
+ the shared libary libmysqlclient.so.10 between 3.23.50 and
+ some versions earlier. Upstream has been contacted and asked
+ for clarification. Closes: #149952
+ * Added support for NIS i.e. it shows a warning and fails if the
+ needed 'mysql' user does not exists but works if it does.
+ Closes: #143282, #147869
+ * Substituted $0 in init scripts by something really weird so that
+ "./S20mysql restart" works now, too. (BTW: S20? install file-rc!!!)
+ Closes: #148658
+ * Now postinst works even if /etc/init.d/mysql is removed. Closes: #151021
+ * Decided to leave "set +x" in postinst but wrote comment. Closes: #151022
+
+ -- Christian Hammers <ch@debian.org> Sun, 7 Jul 2002 04:43:25 +0200
+
+mysql-dfsg (3.23.50-1) unstable; urgency=medium
+
+ * New upstream version.
+ Fixes a very annoying and important bug that lets all mysql programs
+ including perl scripts etc. segfault when using the read_default_group()
+ function. 3.23.50 is currently a pre-release and expected to be released
+ next week. I plan to propose it for woody as soon as its stability has
+ been proven. The following bug reports are all regarding this issue.
+ Closes: #144960, #145322, #136798, #138143,
+
+ -- Christian Hammers <ch@debian.org> Sat, 18 May 2002 21:14:01 +0200
+
+mysql-dfsg (3.23.49x-1) unstable; urgency=low
+
+ * I had to split the package to seperate the manual as it is not GPL
+ like the rest of the software and docs but under a license that
+ e.g. forbids selling printed versions.
+ .
+ The upstream authors were contacted a while ago but did not like to
+ change the situation.
+ .
+ The names of the resulting packages have not changed as the manual
+ already was in a seperate mysql-doc package due to it's size.
+ The source packages are now splitted from one "mysql" to
+ "mysql-dfsg" in main and "mysql-nonfree" in non-free.
+ * No code change!
+ The "x" at the end of the version number ist just to be able to
+ upload a new source package. ("a" was already taken by upstream
+ for their binary upload correction)
+
+ -- Christian Hammers <ch@debian.org> Wed, 8 May 2002 02:01:41 +0200
+
+mysql (3.23.49-8) unstable; urgency=low
+
+ * Substituted $0 in init script to let e.g. "/etc# ./init.d/mysql restart"
+ works, too. Closes: #141555
+
+ -- Christian Hammers <ch@debian.org> Sun, 7 Apr 2002 15:00:44 +0200
+
+mysql (3.23.49-7) unstable; urgency=low
+
+ * The Makefiles are totally broken for the --enable-local-infile
+ option. I now patched libmysql/libmysql.c#mysql_init() manually.
+ Closes: #138347
+
+ -- Christian Hammers <ch@debian.org> Fri, 29 Mar 2002 23:55:15 +0100
+
+mysql (3.23.49-6) unstable; urgency=low
+
+ * Moved mysqlcheck from server to client package. Closes: #139799
+ * Added manpage for mysqlhotcopy. Regarding: #87097
+ * Added 'sharedscripts' directive to the logrotate script.
+ * Replaced grep by /usr/bin/getent to let the group/user checking work
+ on NIS/LDAP systems, too. Closes: #115677, #101529
+
+ -- Christian Hammers <ch@debian.org> Fri, 22 Mar 2002 22:40:51 +0100
+
+mysql (3.23.49-5) unstable; urgency=low
+
+ * Added skip-innodb to default my.cnf.
+ * Enabled --enable-local-infile, it seems to be a new option that
+ defaults to disable a formerly enabled feaure. Closes: #137115
+
+ -- Christian Hammers <ch@debian.org> Sat, 16 Mar 2002 00:29:10 +0100
+
+mysql (3.23.49-4) unstable; urgency=medium
+
+ * Recompiled against fixed libz.
+
+ * Enabled --enable-local-infile, it seems to be a new option that
+ defaults to disable a formerly enabled feaure. Closes: #137115
+ * Fixed README.compile_on_potato. Closes: #136529
+ * Now a ext3 .jounal file in /var/lib/mysql does not prevent the
+ installation (happens when creating a jounal on an already mounted
+ partition). Closes: #137146
+
+ -- Christian Hammers <ch@debian.org> Wed, 13 Mar 2002 13:34:24 +0100
+
+mysql (3.23.49-3) unstable; urgency=low
+
+ * Added Russian translation. Closes: #135846
+ * Fixed installation of .info documents. Closes: #135030
+
+ -- Christian Hammers <ch@debian.org> Wed, 27 Feb 2002 23:36:35 +0100
+
+mysql (3.23.49-2) unstable; urgency=low
+
+ * Updated french translation and split template files. Closes: #134754
+ * Fixed a small debian.cnf related bug in mysql-server.postinst.
+
+ -- Christian Hammers <ch@debian.org> Tue, 19 Feb 2002 23:13:58 +0100
+
+mysql (3.23.49-1) unstable; urgency=low
+
+ * New upstream release.
+ (Mainly InnoDB related fixes)
+ * Exported a $HOME variable in the scripts so that /root/.my.cnf
+ is not read anymore. This will avoid problems when admins put
+ only passwords but no usernames in this file. Closes: #132048
+ * New debian-sys-maint password algorithm (now ~96bit :-)) Closes: #133863
+ * Recreating debian-sys-main pwd on every install to help people who
+ accidently delete user or password files...
+ * Added /var/log/mysql so that user can put the binary logs in there as
+ mysql cannot write the .001 etc files itself in /var/log which is
+ owned by root.
+
+ -- Christian Hammers <ch@debian.org> Thu, 14 Feb 2002 22:17:45 +0100
+
+mysql (3.23.47-6) unstable; urgency=low
+
+ * Dropped a sentence about the new debian-sys-maint user in the
+ debconf note and updated the README.Debian. Related: #132048
+ * Added more french translation. Closes: #132390
+
+ -- Christian Hammers <ch@debian.org> Wed, 6 Feb 2002 09:41:29 +0100
+
+mysql (3.23.47-5) unstable; urgency=low
+
+ * Fixed grammar error in template. Closes: #132238
+ * Really fixed typo in logrotate script. Closes: #131711
+
+ -- Christian Hammers <ch@debian.org> Tue, 5 Feb 2002 14:20:08 +0100
+
+mysql (3.23.47-4) unstable; urgency=medium
+
+ * Fixes typo in postinst that let init script fail. Closes: #131743
+ * Fixed bashism bug that failed on ash. Closes: #131697
+ * Fixed typo in logrotate script. Closes: #131711
+
+ -- Christian Hammers <ch@debian.org> Thu, 31 Jan 2002 23:58:46 +0100
+
+mysql (3.23.47-3) unstable; urgency=low
+
+ * Added new Debian specific mysql user called 'debian-sys-maint' which
+ is used for pinging the server status, flushing the logs or shutting
+ down the server in maintenance scripts. The credentials of this user
+ are stored in the UID0-only readable file /etc/mysql/debian.cnf.
+ Closes: #129887, #130326, #99274
+ * Fixed unintended server startup at boottime. Closes: #122676, #130105
+ * New upstream fixes command line parsing bug: Closes: #128473
+ * Fixed manpage headers to let apropos work: Closes: #119122
+ * Added "status" options for /etc/init.d/mysql. Closes: #129020
+
+ -- Christian Hammers <ch@debian.org> Sun, 27 Jan 2002 19:46:11 +0100
+
+mysql (3.23.47-2) unstable; urgency=low
+
+ * Enhanced init scripts by using mysqladmin instead of kill $pid.
+ Thanks to Aaron Brick.
+
+ -- Christian Hammers <ch@debian.org> Fri, 18 Jan 2002 01:42:23 +0100
+
+mysql (3.23.47-1) unstable; urgency=low
+
+ * New upstream release.
+ * Updated brazilian translation of debconf descriptions. Closes: #123332
+
+ -- Christian Hammers <ch@debian.org> Sun, 6 Jan 2002 21:11:17 +0100
+
+mysql (3.23.46-3) unstable; urgency=low
+
+ * Fixed bug in postinst where a script was accidently called with
+ "bash -c <script> -IN_RPM" prevting the first argument to take effect
+ and then leading to failures on hosts with unresolvable hostnames.
+ Closes: #126147
+ * Small changes and comments in postinst.
+
+ -- Christian Hammers <ch@debian.org> Sat, 22 Dec 2001 14:03:02 +0100
+
+mysql (3.23.46-2) unstable; urgency=low
+
+ * Start/stop behaviour now configurable via debconf. Closes: #112174
+
+ -- Christian Hammers <ch@debian.org> Sun, 9 Dec 2001 21:38:54 +0100
+
+mysql (3.23.46-1) unstable; urgency=low
+
+ * New upstream release.
+ Only few fixes, mainly innodb related.
+
+ -- Christian Hammers <ch@debian.org> Sun, 2 Dec 2001 03:08:48 +0100
+
+mysql (3.23.45-1) unstable; urgency=low
+
+ * New upstream version.
+ Only few fixes, mainly innodb related.
+ * Added debconf note regarding the skip-networking option.
+
+ -- Christian Hammers <ch@debian.org> Sun, 25 Nov 2001 16:50:37 +0100
+
+mysql (3.23.44-2) unstable; urgency=low
+
+ * Finally removed debconf toggled "skip-networking" line add/remove
+ code for /etc/mysql/my.cnf. I don't like editing a file that's tagged
+ as configuration file.
+ I disabled networking by default for security reasons. Better ideas?
+
+ -- Christian Hammers <ch@debian.org> Fri, 16 Nov 2001 02:11:02 +0100
+
+mysql (3.23.44-1) unstable; urgency=low
+
+ * New upstream release.
+ - fixes replication bug (core dump)
+ * Made description better english :) Thanks to D. Welton.
+
+ -- Christian Hammers <ch@debian.org> Sun, 11 Nov 2001 15:44:07 +0100
+
+mysql (3.23.43-4) unstable; urgency=low
+
+ * Disabled statically linking.
+
+ -- Christian Hammers <ch@debian.org> Sat, 10 Nov 2001 03:15:56 +0100
+
+mysql (3.23.43-3) unstable; urgency=low
+
+ * Changed compiler settings after one user reported instabilities.
+ See #116631 for more information.
+
+ -- Christian Hammers <ch@debian.org> Tue, 30 Oct 2001 21:39:17 +0100
+
+mysql (3.23.43-2) unstable; urgency=low
+
+ * Patched sparc mutexes again. Closes: #113430
+
+ -- Christian Hammers <ch@debian.org> Sun, 7 Oct 2001 15:09:00 +0200
+
+mysql (3.23.43-1) unstable; urgency=low
+
+ * New upstream version.
+ - Fixed some unlikely(sic!) bugs and core dumps.
+ - Fixed a bug with BDB tables and UNIQUE columns that are NULL.
+ - [more minor bugs were fixed; see changelog]
+ * Adjusted build depends on libwrap0 for IA-64. Closes: #114582
+ * Added the mysqlcheck binary. Closes: #114490
+ * Fixed rules for arm architecture. Closes: #88186
+ * Renamed mysql_print_defaults to the original name my_print_defaults.
+ Isn't as descriptive but else I'd have to patch too much. Closes: #114492
+
+ -- Christian Hammers <ch@debian.org> Fri, 5 Oct 2001 22:24:40 +0200
+
+mysql (3.23.42-2) unstable; urgency=low
+
+ * Applied patch for m68k compile. Closes: #112904
+
+ -- Christian Hammers <ch@debian.org> Sun, 23 Sep 2001 21:32:57 +0200
+
+mysql (3.23.42-1) unstable; urgency=low
+
+ * New upstream releae.
+ Fixes critical bug with InnoDB and large BLOBs.
+
+ -- Christian Hammers <ch@debian.org> Tue, 18 Sep 2001 22:25:47 +0200
+
+mysql (3.23.41-2) unstable; urgency=low
+
+ * Fixed shlibs.local problem. Closes: #111573
+ * Replaced emacs by sensible-editor in mysqlbug.sh. Thanks Hans Ginzel.
+
+ -- Christian Hammers <ch@debian.org> Sun, 9 Sep 2001 17:16:42 +0200
+
+mysql (3.23.41-1) unstable; urgency=low
+
+ * New upstream release
+ * Fixed build problem on ia64. Closes: #110624
+
+ -- Christian Hammers <ch@debian.org> Tue, 14 Aug 2001 23:20:35 +0200
+
+mysql (3.23.40-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Christian Hammers <ch@debian.org> Sun, 5 Aug 2001 19:46:18 +0200
+
+mysql (3.23.39-5) unstable; urgency=low
+
+ * Added debconf template for brazil. Closes: #106934, #106752
+ * Tightened dependencies on debconf.
+ * Adjusted mysql.err permissions in logrotate script to 0600. Closes: #105672
+
+ -- Christian Hammers <ch@debian.org> Mon, 30 Jul 2001 00:10:12 +0200
+
+mysql (3.23.39-4.1) unstable; urgency=low
+
+ * Maintainer-requested NMU.
+ * Fixing thread mutexes on Sparc and Alpha
+ (closes: Bug#101783)
+ * Added --enable-assembler for sparc. This should
+ allow mysql on sparc to use assembler versions of
+ some string functions (read: should speed up a bit).
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 13 Jul 2001 15:09:30 -0400
+
+mysql (3.23.39-4) unstable; urgency=low
+
+ * Porting fixes.
+
+ -- Christian Hammers <ch@debian.org> Mon, 9 Jul 2001 17:56:54 +0200
+
+mysql (3.23.39-3.1) unstable; urgency=low
+
+ * NMU (for porting)
+ * Update config.sub and config.guess for hppa, sh & s390.
+ * Add --with-client-ldflags=-lstdc++ to configure line. Closes: #100884
+
+ -- Matthew Wilcox <willy@debian.org> Sun, 8 Jul 2001 19:26:59 -0600
+
+mysql (3.23.39-3) unstable; urgency=low
+
+ * Disabled berkeley-db on sparc again. Mutexes aren't working again :-(
+
+ -- Christian Hammers <ch@debian.org> Sat, 7 Jul 2001 18:30:08 +0200
+
+mysql (3.23.39-2) unstable; urgency=low
+
+ * Bugfixed the m68k mutex patch. Thanks to Michael Fedrowitz. Closes: #103145
+ * Removed config.cache files in bdb/ and innobase/. Closes: #103143
+
+ -- Christian Hammers <ch@debian.org> Wed, 4 Jul 2001 22:06:58 +0200
+
+mysql (3.23.39-1) unstable; urgency=low
+
+ * New upstream release. Minor bugfixes only.
+
+ -- Christian Hammers <ch@debian.org> Thu, 14 Jun 2001 13:53:03 +0200
+
+mysql (3.23.38-4) unstable; urgency=low
+
+ * Added logcheck files. Closes: #99131
+ (I can't let the usermod away since I don't know of an easy way to
+ retrive "passwd" information in a shell script considering that
+ people use different storage methods like LDAP/NIS instead of passwd.)
+
+ -- Christian Hammers <ch@debian.org> Fri, 8 Jun 2001 21:04:25 +0200
+
+mysql (3.23.38-3) unstable; urgency=low
+
+ * Explicit pointet to /root/.my.cnf to let /etc/init.d/mysql stop
+ work in sudo environments with $HOME!=/root work, too. Closes: #98324
+ * Removes empty /etc/mysql on purge. Closes: #98164
+
+ -- Christian Hammers <ch@debian.org> Tue, 22 May 2001 10:13:06 +0200
+
+mysql (3.23.38-2) unstable; urgency=low
+
+ * Added depends to libdbd-mysql-perl for mysql-server. Closes: #94306
+
+ -- Christian Hammers <ch@debian.org> Sat, 19 May 2001 19:43:26 +0200
+
+mysql (3.23.38-1) unstable; urgency=low
+
+ * New upstream release.
+ * Added Build-Depends to procps. Closes: #96768
+
+ -- Christian Hammers <ch@debian.org> Sun, 13 May 2001 17:30:15 +0200
+
+mysql (3.23.37-5) unstable; urgency=low
+
+ * Applied mutex patch for bdb support on m68k.
+ Thanks to Michael Fedrowitz for the patch.
+
+ -- Christian Hammers <ch@debian.org> Mon, 7 May 2001 12:30:40 +0200
+
+mysql (3.23.37-4) unstable; urgency=low
+
+ * Enable bdb support for m68k architecture.
+
+ -- Christian Hammers <ch@debian.org> Sat, 5 May 2001 16:47:36 +0200
+
+mysql (3.23.37-3) unstable; urgency=low
+
+ * Added thread-safe client library. Thanks to Shane Wegner. Closes: #95441
+
+ -- Christian Hammers <ch@debian.org> Sat, 28 Apr 2001 09:45:00 -0400
+
+mysql (3.23.37-2) unstable; urgency=low
+
+ * Added sparc to the list of BDB supporting architectures after some
+ tests on vore.debian.org and mails with Ben Collons.
+
+ -- Christian Hammers <ch@debian.org> Fri, 27 Apr 2001 09:30:09 -0400
+
+mysql (3.23.37-1) unstable; urgency=low
+
+ * New upstream version.
+ * Added gemini table support.
+ * Does anybody know how to enable SSL?
+ * Fixed ARM compilation problem. Closes: #88186
+
+ -- Christian Hammers <ch@debian.org> Sat, 21 Apr 2001 11:48:46 -0400
+
+mysql (3.23.36-2) unstable; urgency=low
+
+ * Added patch by Christopher C. Chimelis <chris@debian.org> to make
+ Berkeley db3 work again on Alpha architecture. Closes: #92787
+
+ -- Christian Hammers <ch@debian.org> Tue, 3 Apr 2001 23:41:46 +0200
+
+mysql (3.23.36-1) unstable; urgency=high
+
+ * New upstream version.
+ * SECURITY FIX: One could place database tables outside the database
+ directory by using '..' in one of the mysql helper programs where the
+ table name was not checked correctly. This could lead to root compromise
+ if the server would be running as root else you could at least do bad
+ things as user mysql.
+ * upstream: Fixed bug when thread creation failed.
+ * upstream: Fixed problem in Innobase with non-latin1 charsets
+ * upstream: Fixed a core-dump bug when using very complex query with DISTINGT
+ * upstream: many others so called minor bugs...
+ * fixes bug in init script. Closes: #90257
+ (this report was agains some older problem that has been fixed too in .33)
+
+ -- Christian Hammers <ch@debian.org> Fri, 30 Mar 2001 02:55:12 +0200
+
+mysql (3.23.35-1) unstable; urgency=medium
+
+ * New upstream relase.
+ * Fixes problem in ORDER BY clause. People using 3.33.34 should upgrade!
+ * Includes innobase support.
+ (Hope this is not such a catastrophe like berkeley db...)
+
+ -- Christian Hammers <ch@debian.org> Fri, 16 Mar 2001 23:30:30 +0100
+
+mysql (3.23.33-3) unstable; urgency=low
+
+ * Forgot #!/bin/sh at top of mysql-doc.postinst. Closes: #89801
+
+ -- Christian Hammers <ch@vore.debian.org> Thu, 15 Mar 2001 20:38:35 -0500
+
+mysql (3.23.33-2) unstable; urgency=low
+
+ * Added some missing scripts and manpages. Closes: #84068
+ * Added dependency to perl-5.6. Closes: #81942
+ * Added french templates somewhen ago. Closes: #83790
+ * Added patch to get db3 working on Alpha. Closes: #86033
+ Thanks to Christopher C. Chimelis <chris@debian.org>. The patch
+ itself is included as debian/patch.alpha, too.
+
+ -- Christian Hammers <ch@debian.org> Sun, 18 Feb 2001 06:40:40 +0100
+
+mysql (3.23.33-1) unstable; urgency=high
+
+ * Fixes two security bugs that allowes crashing the server and maybe
+ gaining the UID of the process that is linked against libmysqlclient!
+
+ -- Christian Hammers <ch@debian.org> Tue, 13 Feb 2001 23:01:18 +0100
+
+mysql (3.23.32-1) unstable; urgency=low
+
+ * New upstream releaes.
+ (just minor fixes)
+ * Added french and german debconf templates.
+
+ -- Christian Hammers <ch@debian.org> Sun, 4 Feb 2001 17:27:07 +0100
+
+mysql (3.23.31-1) unstable; urgency=high
+
+ * New upstream release.
+ * Fixes security bug that was announced at BUGTRAQ mailing list.
+ (Disappointingly not by mysql.com!). And allows a buffer overflow
+ and therefore access to the mysql UID and all databases when already
+ having a valid account. Closes: #82881
+
+ -- Christian Hammers <ch@debian.org> Sat, 20 Jan 2001 11:14:36 +0100
+
+mysql (3.23.30-2) unstable; urgency=low
+
+ * Recompiled with new dpkg-dev.
+
+ -- Christian Hammers <ch@debian.org> Sun, 14 Jan 2001 22:20:55 +0100
+
+mysql (3.23.30-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Christian Hammers <ch@debian.org> Sun, 7 Jan 2001 22:10:18 +0100
+
+mysql (3.23.28-10) testing unstable; urgency=low
+
+ * I must upload to "testing" to get it into woody, right?!
+
+ -- Christian Hammers <ch@debian.org> Fri, 29 Dec 2000 14:43:57 +0100
+
+mysql (3.23.28-9) unstable; urgency=low
+
+ * Made it a replacement for libmysqlclient9.
+
+ -- Christian Hammers <ch@westend.com> Mon, 25 Dec 2000 19:15:04 +0100
+
+mysql (3.23.28-8) unstable; urgency=low
+
+ * Applied patch from a user to get the skip-networking option working!
+ Approved from a mysql employee but please test anyways.
+ This finally: Closes: #79672, #78634, #79660, #79658
+
+ -- Christian Hammers <ch@debian.org> Sat, 16 Dec 2000 14:01:36 +0100
+
+mysql (3.23.28-6) unstable; urgency=medium
+
+ * Fixed error in postinst. Closes: #79392, #79400, #79451, #79550
+ * Added .info files again on user request. Closes: #78988, #75737
+
+ -- Christian Hammers <ch@debian.org> Wed, 13 Dec 2000 21:18:24 +0100
+
+mysql (3.23.28-5) unstable; urgency=low
+
+ * Fixed a stupid bug in mysql-server.postinst regarding the
+ configuration of skip-networking. Closes: #78639, 78634
+ * Used patched bdb which hopefully enables mutexes on Alpha. Closes: #78197
+ * Added dependency to adduser. Closes: #76798
+
+ -- Christian Hammers <ch@debian.org> Sun, 10 Dec 2000 16:55:48 +0100
+
+mysql (3.23.28-4) unstable; urgency=low
+
+ [never uploaded]
+ * Fixed a stupid bug in mysql-server.postinst regarding the
+ configuration of skip-networking. Closes: #78639, 78634
+ * Used patched bdb which hopefully enables mutexes on Alpha. Closes: #78197
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Dec 2000 17:49:44 +0100
+
+mysql (3.23.28-3) unstable; urgency=low
+
+ * This time really fixed m68k build error. Closes: #78235
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Dec 2000 15:02:55 +0100
+
+mysql (3.23.28-2) unstable; urgency=low
+
+ * Adjusted rules file to make it buildable on m86k. Closes: #78235
+
+ -- Christian Hammers <ch@debian.org> Fri, 1 Dec 2000 20:07:26 +0100
+
+mysql (3.23.28-1) unstable; urgency=low
+
+ * New upstream vesrion. Now gamma!
+ * Changed umask of mysql.log making it o-rw
+ * Disabled listening on network reachable TCP ports by default due to
+ security considerations.
+
+ -- Christian Hammers <ch@debian.org> Thu, 23 Nov 2000 20:12:50 +0100
+
+mysql (3.23.27-1) unstable; urgency=low
+
+ * New upstream version.
+ * Closes: #75711
+
+ -- Christian Hammers <ch@debian.org> Sun, 29 Oct 2000 14:29:51 +0100
+
+mysql (3.23.25-4) unstable; urgency=low
+
+ * Recompiled to get rid of the dependency for zlib1 (libc5).
+ Closes: #74952, #74939
+
+ -- Christian Hammers <ch@debian.org> Tue, 17 Oct 2000 14:34:52 +0200
+
+mysql (3.23.25-3.1) unstable; urgency=low
+
+ * Maintainer-approved NMU.
+ * Includes patch to fix and enable db3 support on Alpha.
+ * Enable support for thread mutexes in db3 on sparc
+ (it works after all, according to Ben Collins)
+ * Removed atomic_ functions for Alpha since they are no
+ longer supported in the current glibc in woody.
+ * Cleaned up rules file a bit.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sat, 14 Oct 2000 04:22:02 -0400
+
+mysql (3.23.25-3) unstable; urgency=low
+
+ * Upstream decided not to include my_config.h,my_dir.h into the installed
+ header files. As this file contains at least informative material
+ and more important is checked by several autoconf scripts I
+ included it by hand again.
+ * Made building of berkeley db conditional to architecture until
+ I get response whether it works on sparc/alpha now.
+
+ -- Christian Hammers <ch@debian.org> Wed, 11 Oct 2000 23:58:38 +0200
+
+mysql (3.23.25-2) unstable; urgency=medium
+
+ * Last build went terrible wrong.. Here's the changelog again:
+ * New upstream release.
+ * Shared library version was raised from 9 to 10.
+ Maintainers of packets using libmysqlclient9 must recompile!
+
+ -- Christian Hammers <ch@debian.org> Wed, 11 Oct 2000 01:16:34 +0200
+
+mysql (3.23.25-1) unstable; urgency=low
+
+ * New upstream release.
+ * Shared library version was raised from 9 to 10.
+ Maintainers of packets using libmysqlclient9 must recompile!
+
+ -- Christian Hammers <ch@debian.org> Sat, 7 Oct 2000 18:21:51 +0200
+
+mysql (3.23.24-2) unstable; urgency=low
+
+ * Applied upstream patch regarding quoting of mysqldump.
+ * Updated to db-3.1.17-patched (from www.mysql.com)
+
+ -- Christian Hammers <ch@debian.org> Fri, 15 Sep 2000 18:58:14 +0200
+
+mysql (3.23.24-1) unstable; urgency=medium
+
+ * New upstream version with some important fixes.
+ * upstream: Last version corrupted CHAR/VARCHAR/BLOB columns with
+ chararacters above ASCII 128! Check and repair all these tables.
+ * upstream: fixed small memory leak
+ * upstream: fixed problem with BDB tables and reading on unique
+ (not primary) key.
+ * Disabled BDB tables on all architectures except i386 due to many
+ bug reports (see #71206). -> HELP APPRECIATED <-
+
+ -- Christian Hammers <ch@debian.org> Tue, 12 Sep 2000 06:18:54 +0200
+
+mysql (3.23.23-2) unstable; urgency=low
+
+ * Strange... "nohup nice" gives differnet results and let therefore
+ crash safe_mysqld when starting up. Apparently it seems to be
+ kernel dependand. Now fixed by another conditional. This
+ more or less Closes: #71057
+ * This bug was reported (accidently) in the following identical reports:
+ Closes: #71253, #71254, #71257, #71258, #71259, #71262, #71266, #71267
+ Closes: #71268, #71271, #71275, #71277, #71278, #71283, #71291
+
+ -- Christian Hammers <ch@debian.org> Sat, 9 Sep 2000 20:13:50 +0200
+
+mysql (3.23.23-1) unstable; urgency=low
+
+ * New upstream version. Feature freeze!
+ * Fixed source build problem. Closes: #70707
+
+ -- Christian Hammers <ch@debian.org> Thu, 31 Aug 2000 10:03:35 +0200
+
+mysql (3.23.22b-1) unstable; urgency=low
+
+ * Reorganised docs. Now we have several small html files instead of
+ one with almost 2M. Closes: 70431
+ * Removed pdf,ps and html from source package shrinked it about 3M
+ (therefore the .orig.tar.gz is called 3.23.22b!)
+ * -> Last upload failed due to problems at the FTP site so here the
+ -> changelog again:
+ * Fixes memory leak, commit/rollback, reserved word "MASTER" ...
+ * Added Berkeley DB3 source code to the Debian diff to be able to
+ compile with bdb transaction support! (Great feature!!!)
+ * Upstream correction of error message. Closes: #68939
+ * Upstream correction of reserved word "source".
+
+ -- Christian Hammers <ch@debian.org> Fri, 25 Aug 2000 19:21:24 +0200
+
+mysql (3.23.22-1) unstable; urgency=low
+
+ * New upstream version.
+ * Fixes memory leak, commit/rollback, reserved word "MASTER" ...
+ * Added Berkeley DB3 source code to the Debian diff to be able to
+ compile with bdb transaction support! (Great feature!!!)
+ * Upstream correction of error message. Closes: #68939
+ * Upstream correction of reserved word "source".
+
+ -- Christian Hammers <ch@debian.org> Sun, 20 Aug 2000 09:05:48 +0200
+
+mysql (3.23.21-4) unstable; urgency=low
+
+ * Added libmysqlclient9.shlibs and shlibs.local file. Closes: #68669
+
+ -- Christian Hammers <ch@debian.org> Wed, 9 Aug 2000 14:22:49 +0200
+
+mysql (3.23.21-3) unstable; urgency=low
+
+ * Let "/etc/init.d/mysql restart" wait until the pid has been
+ removed before (but max 6 seconds) before restarting. Closes: 65070
+ * Added build dependencies.
+
+ -- Christian Hammers <ch@debian.org> Sun, 30 Jul 2000 16:16:48 +0200
+
+mysql (3.23.21-2) unstable; urgency=low
+
+ * Typo in safe_mysqld prevents start.
+
+ -- Christian Hammers <ch@debian.org> Sat, 29 Jul 2000 13:40:50 +0200
+
+mysql (3.23.21-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Christian Hammers <ch@debian.org> Mon, 10 Jul 2000 22:54:17 +0200
+
+mysql (3.23.20-1) unstable; urgency=low
+
+ * MySQL finally got fully GPL'ed! This means that there is only one
+ souce package and only main/* binary packages from now on.
+ * Fixed symlink in libmysqlclient9-dev. Closes: 66452
+ * Apart from that the usual bug fixes for BETA software.
+
+ -- Christian Hammers <ch@debian.org> Mon, 3 Jul 2000 20:05:38 +0200
+
+mysql-pd (3.23.16-1) unstable; urgency=low
+
+ * New upstream release. (Actually a brand new upstream branch!)
+ * Added mysql-common package as the configuration file can be used
+ by all versions of the mysql client library.
+ Did some more package reorganisations, too. See README.Debian file!
+ * libmysqlclient.so raised major version from 6 to 9.
+ * Minor beautifications in the debian/ directory.
+
+ -- Christian Hammers <ch@debian.org> Sat, 27 May 2000 20:30:01 +0200
+
+mysql-gpl (3.22.30-2) frozen unstable; urgency=low
+
+ * Fixed path in libmysqlclient.la. Closes: #58875
+
+ -- Christian Hammers <ch@debian.org> Sat, 25 Jan 2020 20:27:29 -0700
+
+mysql-gpl (3.22.30-1) frozen unstable; urgency=low
+
+ * A small change in the libmysqlclient6 causes mysqladmin to print an
+ shared library error when displaying the defaults. Everything else
+ works fine so this error wasn't detected untill now. Closes: #58033
+ * TcX released a new MySQL version that includes another security patch,
+ this time against mysqlaccess. The author told me that it would be
+ fine if I just included the new .c in this source since I don't want
+ go to 3.22.32 in frozen.
+ * ->Release Manager: Although the version number increased there is
+ no new coded except for the shared library. The rest is the same
+ as in mysql-server and mysql-client.
+
+ -- Christian Hammers <ch@debian.org> Tue, 15 Feb 2000 23:26:54 +0100
+
+mysql-gpl (3.22.29-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Christian Hammers <ch@debian.org> Thu, 6 Jan 2000 20:37:23 +0100
+
+mysql-gpl (3.22.27a-3) unstable; urgency=low
+
+ * Use system readline instead of bundled version. Closes: #50069
+ Any objections ?
+
+ -- Christian Hammers <ch@debian.org> Sun, 14 Nov 1999 18:09:48 +0100
+
+mysql-gpl (3.22.27a-2) unstable; urgency=low
+
+ * Now building mysql-gpl-doc in binary-indep.
+
+ -- Christian Hammers <ch@debian.org> Sat, 23 Oct 1999 04:22:36 +0200
+
+mysql-gpl (3.22.27a-1) unstable; urgency=low
+
+ * Adjusted version number to allow new orig.tar.gz.
+ The old seems broken :-( People reported compilation problems.
+ * Changed mysql-gpl-doc to "Architecture: all".
+
+ -- Christian Hammers <ch@debian.org> Sun, 17 Oct 1999 13:01:35 +0200
+
+mysql-gpl (3.22.27-1) unstable; urgency=low
+
+ * New upstream release. Fixes charset problem.
+
+ -- Christian Hammers <ch@debian.org> Mon, 11 Oct 1999 18:01:40 +0200
+
+mysql-gpl (3.22.26a-1) unstable; urgency=low
+
+ * New upstream version. Just some small bug fixes.
+ * FHS compliance.
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Oct 1999 10:16:14 +0200
+
+mysql-gpl (3.22.25-2) unstable; urgency=low
+
+ * Added conflict to all old mysql-dev packages. (fixes: #42966)
+
+ -- Christian Hammers <ch@debian.org> Sun, 15 Aug 1999 11:35:46 +0200
+
+mysql-gpl (3.22.25-1) unstable; urgency=low
+
+ * New upstream version. (We are waiting for 3.23.x !)
+ * Fixes some upstream small bugs.
+
+ -- Christian Hammers <ch@debian.org> Sun, 18 Jul 1999 22:02:06 +0200
+
+mysql-gpl (3.22.23b-4) unstable; urgency=low
+
+ * Rebuild for new perl.
+
+ -- Christian Hammers <ch@debian.org> Thu, 8 Jul 1999 01:09:57 +0200
+
+mysql-gpl (3.22.23b-3) unstable; urgency=low
+
+ * libmysqlclient had the wrong socket path.
+
+ -- Christian Hammers <ch@debian.org> Sun, 03 Jul 1999 23:13:30 +0200
+
+mysql-gpl (3.22.23b-2) unstable; urgency=low
+
+ * Missed one replace tag to an very old version of mysql-devel.
+
+ -- Christian Hammers <ch@debian.org> Sun, 27 Jun 1999 19:13:30 +0200
+
+mysql-gpl (3.22.23b-1) unstable; urgency=low
+
+ * New upstream minor version.
+ * Cleaned up the dependencies a bit.
+
+ -- Christian Hammers <ch@debian.org> Sun, 27 Jun 1999 19:13:30 +0200
+
+mysql-gpl (3.22.22-1) unstable; urgency=low
+
+ * New upstream version. (closes Bug#36493,37340)
+ * New maintainer upload.
+ * Package reorganisation: We prepare for the GPL'ed server which will
+ * be released soon and make the structure more clear to the user.
+
+ -- Christian Hammers <ch@debian.org> Mon, 3 May 1999 20:43:41 +0200
+
+mysql (3.22.21-1) unstable; urgency=low
+
+ * Never released. TcX was too fast :-)
+
+ -- Christian Hammers <ch@debian.org> Tue, 20 Apr 1999 17:22:04 +0200
+
+mysql-freebits (3.21.33b-3) unstable; urgency=low
+
+ * Recompile with libncurses
+
+ -- Scott Hanson <shanson@debian.org> Sat, 31 Oct 1998 15:04:39 +0100
+
+mysql-freebits (3.21.33b-2) unstable; urgency=low
+
+ * Recompile with libstdc++2.9 (fixes #27792)
+
+ -- Scott Hanson <shanson@debian.org> Mon, 12 Oct 1998 18:47:25 +0200
+
+mysql-freebits (3.21.33b-1) unstable; urgency=low
+
+ * New upstream version (probably the last for 3.21)
+
+ -- Scott Hanson <shanson@debian.org> Tue, 8 Sep 1998 18:59:37 +0200
+
+mysql-freebits (3.21.33-4) unstable; urgency=low
+
+ * Separate out non-free source files, move mysql-base, mysql-dev, and
+ * mysql-doc to main distribution
+ * Locale files /usr/share/mysql/ now in server, not base; therefore...
+ * Add conflict to mysql-server <=3.21.33-3
+
+ -- Scott Hanson <shanson@debian.org> Fri, 31 Jul 1998 19:16:08 +0200
+
+mysql (3.21.33-3) unstable; urgency=low
+
+ * Release to unstable with moved socket (fixes #24574)
+ * Add conflict to old libdbd-mysql-perl package
+
+ -- Scott Hanson <shanson@debian.org> Wed, 22 Jul 1998 22:17:43 +0200
+
+mysql (3.21.33-2) experimental; urgency=low
+
+ * Move socket from /tmp to /var/run (see #24574)
+ * Release to experimental, since this breaks everything statically
+ * linked to libmysqlclient!
+
+ -- Scott Hanson <shanson@debian.org> Wed, 15 Jul 1998 19:37:01 +0200
+
+mysql (3.21.33-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Scott Hanson <shanson@debian.org> Sun, 12 Jul 1998 08:18:18 +0200
+
+mysql (3.21.32a-1) unstable; urgency=low
+
+ * New upstream release
+ * Lintian bugs: ldconfig, missing manpage, call to perl5
+ * Lintian bug shlib-with-non-pic-code _not_ yet fixed
+
+ -- Scott Hanson <shanson@debian.org> Sat, 4 Jul 1998 07:57:13 +0200
+
+mysql (3.21.31-1) unstable frozen; urgency=low
+
+ * New upstream release for hamm and slink (bug fixes only)
+ * Fix unsecure use of temp file in mysqlbug (fixes #23606)
+ * Added brief licensing information to control file
+
+ -- Scott Hanson <shanson@debian.org> Tue, 16 Jun 1998 10:52:44 +0200
+
+mysql (3.21.30-3) unstable; urgency=low
+
+ * Restore missing shared library dependencies for mysql-server
+
+ -- Scott Hanson <shanson@debian.org> Mon, 15 Jun 1998 07:51:58 +0200
+
+mysql (3.21.30-2) unstable; urgency=low
+
+ * Simplify debian/rules (fixes #17662)
+ * Edit manual.texi to add "Debian notes" to documentation
+ * Add note about passwords on command line (fixes #16471)
+ * Add note about getting privleges for users (fixes #22891)
+ * Correct "Possible license changes" heading (fixes #22711)
+ * Add uninstalled header files to /usr/doc/mysql-dev/examples (fixes #22627)
+ * Add udf_example.cc to /usr/doc/mysql-dev/examples (fixes #22710)
+
+ -- Scott Hanson <shanson@debian.org> Sun, 7 Jun 1998 13:05:37 +0200
+
+mysql (3.21.30-1) unstable; urgency=low
+
+ * Stable upstream release
+
+ -- Scott Hanson <shanson@debian.org> Tue, 12 May 1998 22:13:25 +0200
+
+mysql (3.21.29gamma-1) unstable; urgency=low
+
+ * New upstream release
+ * Do not create 'mysql' subdirectory for libs and headers (fixes #19020)
+ * Remove 'CXX=gcc' flag from configure (g++ now standard)
+
+ -- Scott Hanson <shanson@debian.org> Sun, 12 Apr 1998 18:38:03 +0200
+
+mysql (3.21.28gamma-1) unstable; urgency=low
+
+ * New upstream release
+ * Unstable-only release; hamm stays at 3.21.25 for now
+
+ -- Scott Hanson <shanson@debian.org> Thu, 2 Apr 1998 21:33:51 +0200
+
+mysql (3.21.25gamma-3) unstable frozen; urgency=low
+
+ * Have mysql-base suggest perl >= 5.004 for mysqlaccess (fixes #19593)
+ * Fix shlibs to refer to mysql-base rather than the no-longer-existant mysql
+
+ -- Scott Hanson <shanson@debian.org> Thu, 26 Mar 1998 18:22:59 +0100
+
+mysql (3.21.25gamma-2) unstable; urgency=low
+
+ * Restore libmysqlclient.so symlink to mysql-dev (fixes #19036)
+
+ -- Scott Hanson <shanson@debian.org> Sun, 8 Mar 1998 10:46:43 +0100
+
+mysql (3.21.25gamma-1) unstable; urgency=low
+
+ * Check if running as root in init.d script (fixes #18577)
+ * New upstream release
+
+ -- Scott Hanson <shanson@debian.org> Fri, 27 Feb 1998 20:01:30 +0100
+
+mysql (3.21.24gamma-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Scott Hanson <shanson@debian.org> Mon, 23 Feb 1998 08:14:17 +0100
+
+mysql (3.21.23beta-3) unstable; urgency=low
+
+ * Squashed errors found by lintian
+
+ -- Scott Hanson <shanson@debian.org> Tue, 17 Feb 1998 20:19:01 +0100
+
+mysql (3.21.23beta-2) unstable; urgency=low
+
+ * Fixed overlaps with old mysql package (fixes #17843)
+
+ -- Scott Hanson <shanson@debian.org> Thu, 5 Feb 1998 22:55:00 +0100
+
+mysql (3.21.23beta-1) unstable; urgency=low
+
+ * New upstream release
+ * Fix include lines in mysql.h (fixes #17827)
+ * Move /usr/include/mysql to mysql-dev
+
+ -- Scott Hanson <shanson@debian.org> Wed, 4 Feb 1998 19:59:14 +0100
+
+mysql (3.21.22beta-3) unstable; urgency=low
+
+ * Correct descriptions in control file (fixes #17698)
+ * Clean up output of shutdown script
+
+ -- Scott Hanson <shanson@debian.org> Sat, 31 Jan 1998 19:04:29 +0100
+
+mysql (3.21.22beta-2) unstable; urgency=low
+
+ * Split out mysql-dev and mysql-bench subpackages
+
+ -- Scott Hanson <shanson@debian.org> Wed, 28 Jan 1998 19:52:27 +0100
+
+mysql (3.21.22beta-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Scott Hanson <shanson@debian.org> Wed, 28 Jan 1998 18:59:09 +0100
+
+mysql (3.21.21a.beta-2) unstable; urgency=low
+
+ * Compile with libpthreads from libc6-dev_2.0.6-3 rather than statically
+ linking to patched libpthreads (see changes to 3.20.29-2)
+
+ -- Scott Hanson <shanson@debian.org> Sun, 25 Jan 1998 13:17:15 +0100
+
+mysql (3.21.21a.beta-1) unstable; urgency=low
+
+ * Put initial database, mysql_install_db, safe_mysqld, isamlog and
+ isamchk in mysql-server
+ * Correct upstream release number so source packages are correctly built
+
+ -- Scott Hanson <shanson@debian.org> Mon, 19 Jan 1998 07:52:48 +0100
+
+mysql (3.21.21.beta-1) unstable; urgency=low
+
+ * Use debhelper where possible in rules
+ * Split binary packages into mysql-base, mysql-client, mysql-doc
+ * New upstream release
+
+ -- Scott Hanson <shanson@debian.org> Thu, 15 Jan 1998 08:12:17 +0100
+
+mysql (3.21.19.beta-1) unstable; urgency=low
+
+ * Offer to set root password in mysql_install_db
+ * Kill `pidof mysqld` on shutdown rather than use mysqladmin
+ * New upstream version
+
+ -- Scott Hanson <shanson@debian.org> Fri, 9 Jan 1998 20:06:35 +0100
+
+mysql (3.21.17a.beta-2) unstable; urgency=low
+
+ * Remove perl stuff (it's going back into libdbd-mysql-perl)
+ * Remove conflict with libdbd-mysql-perl
+ * Do not compress *html files (fixes #16314)
+
+ -- Scott Hanson <shanson@debian.org> Tue, 30 Dec 1997 07:34:20 +0100
+
+mysql (3.21.17a.beta-1) unstable; urgency=low
+
+ * Add conflict to libdbd-mysql-perl
+ * Use --pid-file option to place pid file in /var/run rather than patching
+ * Add install-info to postinst and postrm
+ * Add filename to message shown by mysql_install_db (fixes #16621)
+ * New upstream version
+
+ -- Scott Hanson <shanson@debian.org> Sun, 21 Dec 1997 19:41:45 +0100
+
+mysql (3.20.32a-5) unstable; urgency=low
+
+ * Move mysqld to /usr/lib/mysql, per policy discussion
+ * Adjust makefiles so perl libs get installed
+
+ -- Scott Hanson <shanson@debian.org> Wed, 3 Dec 1997 22:37:45 +0100
+
+mysql (3.20.32a-4) unstable; urgency=low
+
+ * Move mysqld to /usr/sbin to comply with FSSTND
+
+ -- Scott Hanson <shanson@debian.org> Mon, 3 Nov 1997 20:12:29 +0100
+
+mysql (3.20.32a-3) unstable; urgency=low
+
+ * Comment out tests in mysql_install_db... for real this time!
+
+ -- Scott Hanson <shanson@debian.org> Mon, 3 Nov 1997 07:32:53 +0100
+
+mysql (3.20.32a-2) unstable; urgency=low
+
+ * Comment out tests in mysql_install_db (fixes #14304)
+
+ -- Scott Hanson <shanson@debian.org> Sat, 1 Nov 1997 18:45:25 +0100
+
+mysql (3.20.32a-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Scott Hanson <shanson@debian.org> Wed, 29 Oct 1997 07:11:42 +0100
+
+mysql (3.20.29-2) unstable; urgency=low
+
+ * New maintainer
+ * Statically link mysqld to patched glibc-2.0.5 libpthread
+ (works around #13586; see README.debian.glibc-2.0.5)
+ * Conflict with libpthread0 (fixes #13448)
+ * Don't link libg++, avoiding problems with glibc libpthread
+
+ -- Scott Hanson <shanson@debian.org> Thu, 16 Oct 1997 19:25:23 +0200
+
+mysql (3.20.29-1) unstable; urgency=low
+
+ * New upstream version
+ * Recompiled with libc6
+ * Include mysql-faq_toc.html (fixes #10885)
+ * Reworked /etc/init.d/mysql script (thanks to Heiko)
+ * Remove file /usr/lib/libmysqlclient.so.4 when package is removed.
+ * Use absolute path specification for conffile
+ * Use /usr/bin/perl instead of /bin/perl (fixes #10654)
+ * Do not depend on mysql (fixes #12427)
+ * Installed missing manpage for Mysql perl module
+ * Don't use debstd anymore
+ * Pristine source
+ * Set section to `non-free/devel'
+ * Upgraded to standards version 2.3.0.0
+
+ -- Christian Schwarz <schwarz@debian.org> Fri, 12 Sep 1997 02:12:58 +0200
+
+mysql (3.20.16beta-2) unstable; urgency=low
+
+ * Uses /usr/bin/perl instead of /bin/perl (fixes bug #9731)
+ * Don't run mysqld with --log option
+ * Don't install regex manual pages
+ * Suggest package mysql-manual
+ * Fixed typo in changelog
+ * Upgrade to policy 2.1.3.2
+
+ -- Christian Schwarz <schwarz@debian.org> Sun, 11 May 1997 14:19:26 +0200
+
+mysql (3.20.16beta-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Christian Schwarz <schwarz@debian.org> Sat, 12 Apr 1997 13:51:28 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 00000000000..b8626c4cff2
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/control.in b/debian/control.in
new file mode 100644
index 00000000000..8206728e6d7
--- /dev/null
+++ b/debian/control.in
@@ -0,0 +1,353 @@
+Source: mysql-@MYSQL_BRANDED_BASE_VERSION@
+Section: misc
+Priority: optional
+Maintainer: Monty Taylor <mtaylor@mysql.com>
+Uploaders: Mads Martin Joergensen <mads@mysql.com>, MySQL Build Team <build-private@mysql.com>
+Build-Depends: libtool (>= 1.4.2-7), g++ (>= 4:3.3.5-3), procps | hurd, debhelper (>= 4.1.16), file (>= 3.28-1), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), libreadline5-dev | libreadline-dev, psmisc, po-debconf, chrpath, automake1.8, doxygen, gs, dpatch, gawk, bison
+Standards-Version: 3.7.2
+
+Package: libmysqlclient@SHARED_LIB_MAJOR_VERSION@off
+Section: libs
+Architecture: any
+Depends: mysql-common (>= ${Source-Version}), ${shlibs:Depends}
+Description: mysql database client library
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the shared libraries (*.so*) which certain
+ languages and applications need to dynamically load and use MySQL.
+
+Package: libmysqlclient@SHARED_LIB_MAJOR_VERSION@-dev
+Architecture: any
+Section: libdevel
+Depends: libmysqlclient@SHARED_LIB_MAJOR_VERSION@ (>= ${Source-Version}), zlib1g-dev, ${shlibs:Depends}
+Conflicts: libmysqlclient14-dev, libmysqlclient12-dev, libmysqlclient10-dev
+Provides: libmysqlclient-dev
+Description: mysql database development files
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the development header files and libraries
+ necessary to develop MySQL client applications.
+
+Package: libndbclient@NDB_SHARED_LIB_MAJOR_VERSION@
+Section: libs
+Architecture: any
+Depends: mysql-common (>= ${Source-Version}), libmysqlclient@SHARED_LIB_MAJOR_VERSION@, ${shlibs:Depends}
+Description: mysql cluster NdbApi library
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the shared libraries (*.so*) which certain
+ languages and applications need to dynamically load and use MySQL NdbApi.
+
+Package: libndbclient@NDB_SHARED_LIB_MAJOR_VERSION@-dev
+Architecture: any
+Section: libdevel
+Depends: libndbclient@NDB_SHARED_LIB_MAJOR_VERSION@ (>= ${Source-Version}), zlib1g-dev, ${shlibs:Depends}
+Provides: libndbclient-dev
+Description: mysql cluster NdbApi development files
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the development header files and libraries
+ necessary to develop NdbApi client applications.
+
+Package: mysql-common
+Section: misc
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: mysql-common-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Provides: mysql-common-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Replaces: mysql-common-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Description: mysql database common files (e.g. /etc/mysql/my.cnf)
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package includes files needed by all versions of the client library.
+
+Package: mysql-client-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Depends: debianutils (>=1.6), libdbi-perl, libdbd-mysql-perl (>= 1.2202), mysql-common (>= ${Source-Version}), libmysqlclient@SHARED_LIB_MAJOR_VERSION@ (>= ${Source-Version}), ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends}
+Provides: virtual-mysql-client, mysql-client, mysql-client-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Conflicts: mysql-client (<< ${Source-Version}), mysql-client-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Replaces: mysql-client (<< ${Source-Version}), mysql-server, mysql-client-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Description: mysql database client binaries
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the standard MySQL clients and administration tools.
+
+Package: mysql-server-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Suggests: tinyca
+Recommends: mailx
+Pre-Depends: mysql-common (>= ${Source-Version}), adduser (>= 3.40)
+Depends: mysql-client-@MYSQL_BRANDED_BASE_VERSION@ (>= ${Source-Version}), libdbi-perl, perl (>= 5.6), ${shlibs:Depends}, ${misc:Depends}, psmisc, passwd, lsb-base (>= 3.0-10)
+Conflicts: mysql-server (<< ${Source-Version}), mysql-server-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@ (<< 5.0.26-3)
+Provides: mysql-server, virtual-mysql-server, mysql-server-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Replaces: mysql-server (<< ${Source-Version}), mysql-server-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Description: mysql database server binaries
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package includes the MySQL server binary (incl. InnoDB) as well
+ as related utilities to run and administrate a MySQL server.
+ .
+ If you want to access and work with the database, you have to install
+ package mysql-client-@MYSQL_BRANDED_BASE_VERSION@ as well!
+
+Package: mysql-test-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Pre-Depends: mysql-common (>= ${Source-Version})
+Depends: mysql-client-@MYSQL_BRANDED_BASE_VERSION@ (>= ${Source-Version}), libdbd-mysql-perl, perl (>= 5.6), ${shlibs:Depends}, ${misc:Depends}
+Description: MySQL - test suite
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the MySQL regression test suite.
+
+Package: mysql-storage-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: MySQL - ndbcluster storage engine
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains the ndbcluster storage engine.
+ It is necessary to have this package installed on all
+ computers that should store ndbcluster table data.
+ Note that this storage engine can only be used in conjunction
+ with the MySQL Max server.
+
+Package: mysql-management-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: MySQL - ndbcluster storage engine management
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains ndbcluster storage engine management.
+ It is necessary to have this package installed on at least
+ one computer in the cluster.
+
+Package: mysql-tools-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: MySQL - ndbcluster storage engine basic tools
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains ndbcluster storage engine basic tools.
+
+Package: mysql-extra-@MYSQL_BRANDED_BASE_VERSION@
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: MySQL - ndbcluster storage engine extra tools
+ The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+ and robust SQL (Structured Query Language) database server. MySQL Server
+ is intended for mission-critical, heavy-load production systems as well
+ as for embedding into mass-deployed software. MySQL is a trademark of
+ MySQL AB.
+ .
+ The MySQL software has Dual Licensing, which means you can use the MySQL
+ software free of charge under the GNU General Public License
+ (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+ licenses from MySQL AB if you do not wish to be bound by the terms of
+ the GPL. See the chapter "Licensing and Support" in the manual for
+ further info.
+ .
+ The MySQL web site (http://www.mysql.com/) provides the latest
+ news and information about the MySQL software. Also please see the
+ documentation and the manual for more information.
+ .
+ This package contains some extra ndbcluster storage engine tools for
+ the advanced user.
+ .
+ They should be used with caution
+
+
+Package: mysql-server-@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+Architecture: any
+Section: oldlibs
+Priority: extra
+Depends: mysql-server-@MYSQL_BRANDED_BASE_VERSION@
+Description: mysql database server (transitional package)
+ MySQL is a fast, stable and true multi-user, multi-threaded SQL database
+ server. SQL (Structured Query Language) is the most popular database query
+ language in the world. The main goals of MySQL are speed, robustness and
+ ease of use.
+ .
+ This is an empty transitional package and can safely be removed.
+
+Package: mysql-server
+Architecture: all
+Depends: mysql-server-@MYSQL_BRANDED_BASE_VERSION@
+Description: mysql database server (meta package depending on the latest version)
+ This is an empty package that depends on the current "best" version of
+ mysql-server (currently mysql-server-@MYSQL_BRANDED_BASE_VERSION@), as determined by the MySQL
+ maintainers. Install this package if in doubt about which MySQL version
+ you want, as this is the one we consider to be in the best shape.
+
+Package: mysql-client
+Architecture: all
+Depends: mysql-client-@MYSQL_BRANDED_BASE_VERSION@
+Description: mysql database client (meta package depending on the latest version)
+ This is an empty package that depends on the current "best" version of
+ mysql-client (currently mysql-client-@MYSQL_BRANDED_BASE_VERSION@), as determined by the MySQL
+ maintainers. Install this package if in doubt about which MySQL version
+ you want, as this is the one we consider to be in the best shape.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 00000000000..f3c7b8624ca
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,139 @@
+The Debian package of MySQL was first debianzed on 1997-04-12 by Christian
+Schwarz <schwarz@debian.org> and ist maintained since 1999-04-20 by
+Christian Hammers <ch@debian.org>.
+
+It can be downloaded from http://www.mysql.com/
+
+Copyright:
+
+According to the file "COPYING" all parts of this package are licenced
+under the terms of the GNU GPL Version 2 of which a copy is available
+in /usr/share/common-licenses.
+
+To allow free software with other licences than the GPL to link against the
+shared library, special terms for "derived works" are defined in the file
+"EXCEPTIONS-CLIENT" which is quoted below.
+
+More information can be found on http://www.mysql.com/company/legal/licensing/
+
+The manual had to be removed as it is not free in the sense of the
+Debian Free Software Guidelines (DFSG).
+
+-------------------------------------------------------------------------
+
+
+Appendix I MySQL FLOSS License Exception
+****************************************
+
+ Version 0.3, 10 February 2005
+
+The MySQL AB Exception for Free/Libre and Open Source Software-only
+Applications Using MySQL Client Libraries (the "FLOSS Exception").
+
+Exception Intent
+================
+
+We want specified Free/Libre and Open Source Software ("FLOSS")
+applications to be able to use specified GPL-licensed MySQL client
+libraries (the "Program") despite the fact that not all FLOSS licenses
+are compatible with version 2 of the GNU General Public License (the
+"GPL").
+
+Legal Terms and Conditions
+==========================
+
+As a special exception to the terms and conditions of version 2.0 of the
+GPL:
+
+ 1. You are free to distribute a Derivative Work that is formed
+ entirely from the Program and one or more works (each, a "FLOSS
+ Work") licensed under one or more of the licenses listed below in
+ section 1, as long as:
+
+ a. You obey the GPL in all respects for the Program and the
+ Derivative Work, except for identifiable sections of the
+ Derivative Work which are not derived from the Program, and
+ which can reasonably be considered independent and separate
+ works in themselves,
+
+ b. all identifiable sections of the Derivative Work which are not
+ derived from the Program, and which can reasonably be
+ considered independent and separate works in themselves,
+
+ i
+ are distributed subject to one of the FLOSS licenses
+ listed below, and
+
+ ii
+ the object code or executable form of those sections are
+ accompanied by the complete corresponding
+ machine-readable source code for those sections on the
+ same medium and under the same FLOSS license as the
+ corresponding object code or executable forms of those
+ sections, and
+
+ c. any works which are aggregated with the Program or with a
+ Derivative Work on a volume of a storage or distribution
+ medium in accordance with the GPL, can reasonably be
+ considered independent and separate works in themselves which
+ are not derivatives of either the Program, a Derivative Work
+ or a FLOSS Work.
+
+ If the above conditions are not met, then the Program may only be
+ copied, modified, distributed or used under the terms and
+ conditions of the GPL or another valid licensing option from MySQL
+ AB.
+
+ 2. FLOSS License List
+
+ *License name* *Version(s)/Copyright Date*
+ Academic Free License 2.0
+ Apache Software License 1.0/1.1/2.0
+ Apple Public Source License 2.0
+ Artistic license From Perl 5.8.0
+ BSD license "July 22 1999"
+ Common Public License 1.0
+ GNU Library or "Lesser" General Public 2.0/2.1
+ License (LGPL)
+ Jabber Open Source License 1.0
+ MIT license -
+ Mozilla Public License (MPL) 1.0/1.1
+ Open Software License 2.0
+ OpenSSL license (with original SSLeay "2003" ("1998")
+ license)
+ PHP License 3.0
+ Python license (CNRI Python License) -
+ Python Software Foundation License 2.1.1
+ Sleepycat License "1999"
+ W3C License "2001"
+ X11 License "2001"
+ Zlib/libpng License -
+ Zope Public License 2.0
+
+ Due to the many variants of some of the above licenses, we require
+ that any version follow the 2003 version of the Free Software
+ Foundation's Free Software Definition
+ (`http://www.gnu.org/philosophy/free-sw.html') or version 1.9 of
+ the Open Source Definition by the Open Source Initiative
+ (`http://www.opensource.org/docs/definition.php').
+
+ 3. Definitions
+
+ a. Terms used, but not defined, herein shall have the meaning
+ provided in the GPL.
+
+ b. Derivative Work means a derivative work under copyright law.
+
+ 4. Applicability This FLOSS Exception applies to all Programs that
+ contain a notice placed by MySQL AB saying that the Program may be
+ distributed under the terms of this FLOSS Exception. If you
+ create or distribute a work which is a Derivative Work of both the
+ Program and any other work licensed under the GPL, then this FLOSS
+ Exception is not available for that work; thus, you must remove
+ the FLOSS Exception notice from that work and comply with the GPL
+ in all respects, including by retaining all GPL notices. You may
+ choose to redistribute a copy of the Program exclusively under the
+ terms of the GPL by removing the FLOSS Exception notice from that
+ copy of the Program, provided that the copy has never been
+ modified by you or any third party.
+
diff --git a/debian/copyright.more b/debian/copyright.more
new file mode 100644
index 00000000000..b7ac36bc9fa
--- /dev/null
+++ b/debian/copyright.more
@@ -0,0 +1,60 @@
+#
+# Some random bits of interest.
+#
+
+#
+# Arjen about OpenSSL
+#
+http://bugs.mysql.com/?id=6924
+Updated by: Arjen Lentz
+Date: 2005-11-05
+
+Linking with the client library is covered by the FLOSS exception which
+includes OpenSSL now. So that's clean. Indeed, the OpenSSL is not
+compliant with the FSF free software guidelines, however it *is*
+compliant with the OSI guidelines. And that's good enough for us.
+Christian is correct in saying that the author of a GPL app that links
+with MySQL may find themselves in a licensing headache (or may not
+realize that OpenSSL is involved) but that is their responsibility.
+The MySQL client can be linked with a number of other licenses, it
+would not be feasible for MySQL to take over the responsibility for
+"the next level" of how combinations of licenses work out. There are
+too many possibilities, and combinations of more just 2 licenses.
+
+
+#
+# Steve Langasek about OpenSSL vs libmysqlclient
+#
+Subject: Bug#291945: eleventh-hour transition for mysql-using packages related to apache
+Date: Sat, 12 Feb 2005 00:39:58 -0800
+From: Steve Langasek <vorlon@debian.org>
+
+> > > > that's great to hear! i'm cc'ing the relevant wishlist bug i have open
+> > > > against mysql-server. christian: any chance of getting an openssl enabled
+> > > > version of the mysql-client and mysql-server packages?
+
+> > > Yes, I will re-enable openssl in the next upload.
+
+> > Please make sure this does not introduce an openssl dependency to
+> > libmysqlclient itself; just because MySQL AB have granted a license
+> > exception for OpenSSL does not mean everyone who links to libmysqlclient
+> > has done so.
+
+> > I know of at least one GPL-without-exception package that is now using
+> > libmysqlclient12 in Debian.
+
+> Nice, so we should check that any linked GPL library directly (obviuolsy) or
+> indirectly (with N=1,2,3... levels of indirection) linked against
+> openssl adds the exception.
+
+No, we should simply not be linking libmysqlclient against OpenSSL. The
+exemption was needed because there exists software that uses both
+libmysqlclient and libssl, but making libmysqlclient itself use libssl just
+because we now have the exemption will cause licensing problems for
+applications which currently do *not* depend on libssl.
+
+> This is a great reason to move asap all possible programs to gnutls,
+> indeed.
+
+There are plenty of reasons to move software to gnutls, but doing so is
+non-trivial.
diff --git a/debian/defs.mk.in b/debian/defs.mk.in
new file mode 100644
index 00000000000..dd2c44313be
--- /dev/null
+++ b/debian/defs.mk.in
@@ -0,0 +1,14 @@
+MYSQL_BUILD_OPTS=--with-comment='MySQL Server (custom)' --with-server-suffix='-custom'
+MYSQL_BUILD_CXXFLAGS=-DBIG_JOINS=1 -felide-constructors -fno-rtti -O2
+MYSQL_BUILD_CFLAGS=-DBIG_JOINS=1 -O2
+MYSQL_BUILD_CC=gcc
+MYSQL_BUILD_CXX=gcc
+# we re-write state into this file. MYSQL_BASE_VERSION might get a suffix added
+# by debian/rules which could result in a nasty loop. VER is there to hold the
+# original unadorned version from autoconf
+MYSQL_BASE_VERSION=@MYSQL_BASE_VERSION@
+MYSQL_PREVIOUS_BASE_VERSION=@MYSQL_PREVIOUS_BASE_VERSION@
+MYSQL_BRANDED_BASE_VERSION=@MYSQL_BRANDED_BASE_VERSION@
+MYSQL_BRANDED_PREVIOUS_BASE_VERSION=@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@
+SHARED_LIB_MAJOR_VERSION=@SHARED_LIB_MAJOR_VERSION@
+NDB_SHARED_LIB_MAJOR_VERSION=@NDB_SHARED_LIB_MAJOR_VERSION@
diff --git a/debian/libmysqlclientSLIB-dev.README.Maintainer.in b/debian/libmysqlclientSLIB-dev.README.Maintainer.in
new file mode 100644
index 00000000000..56b4088cbfb
--- /dev/null
+++ b/debian/libmysqlclientSLIB-dev.README.Maintainer.in
@@ -0,0 +1,4 @@
+The examples directory includes files that might be needed by some
+developers:
+- header files not installed by default
+- the example file udf_example.cc
diff --git a/debian/libmysqlclientSLIB-dev.dirs.in b/debian/libmysqlclientSLIB-dev.dirs.in
new file mode 100644
index 00000000000..f6ad2870431
--- /dev/null
+++ b/debian/libmysqlclientSLIB-dev.dirs.in
@@ -0,0 +1,2 @@
+usr/include/
+usr/lib/
diff --git a/debian/libmysqlclientSLIB-dev.docs.in b/debian/libmysqlclientSLIB-dev.docs.in
new file mode 100644
index 00000000000..eccf2c9c565
--- /dev/null
+++ b/debian/libmysqlclientSLIB-dev.docs.in
@@ -0,0 +1 @@
+EXCEPTIONS-CLIENT
diff --git a/debian/libmysqlclientSLIB-dev.examples.in b/debian/libmysqlclientSLIB-dev.examples.in
new file mode 100644
index 00000000000..f1649c311c4
--- /dev/null
+++ b/debian/libmysqlclientSLIB-dev.examples.in
@@ -0,0 +1 @@
+sql/udf_example.c
diff --git a/debian/libmysqlclientSLIB-dev.files.in b/debian/libmysqlclientSLIB-dev.files.in
new file mode 100644
index 00000000000..e396b59b92f
--- /dev/null
+++ b/debian/libmysqlclientSLIB-dev.files.in
@@ -0,0 +1,6 @@
+usr/bin/mysql_config
+usr/include/*
+usr/lib/libmysqlclient.a
+usr/lib/libmysqlclient.la
+usr/lib/mysql
+usr/share/man/man1/mysql_config.1
diff --git a/debian/libmysqlclientSLIB-dev.links.in b/debian/libmysqlclientSLIB-dev.links.in
new file mode 100644
index 00000000000..4a24953a06b
--- /dev/null
+++ b/debian/libmysqlclientSLIB-dev.links.in
@@ -0,0 +1,2 @@
+usr/lib/libmysqlclient.so.15 usr/lib/libmysqlclient.so
+usr/lib/libmysqlclient_r.so.15 usr/lib/libmysqlclient_r.so
diff --git a/debian/libmysqlclientSLIBoff.README.Debian.in b/debian/libmysqlclientSLIBoff.README.Debian.in
new file mode 100644
index 00000000000..26549106092
--- /dev/null
+++ b/debian/libmysqlclientSLIBoff.README.Debian.in
@@ -0,0 +1,30 @@
+* Crashs on systems with Cyrix or other old i486 CPUs
+=====================================================
+
+As reported http://bugs.mysql.com/bug.php?id=21765 MySQL will segfault on very
+old CPUs that do not have support for the "cpuid" instruction.
+
+
+
+* Self-build binaries that are linked against libmysqlclient15 MUST be rebuild!
+===============================================================================
+
+This only affects binaries that are build on a Debian unstable/testing system
+before 2006-03-31 or version 5.0.19. "objdump -T myprogram | grep MYSQL_5.0"
+will give a couple of lines output in such a case.
+
+Until now libmysqlclient.so.15 had versioned symbols provided by a Debian
+patch. Now MySQL finally decided to adopt this patch but sadly chosed a
+different symbol name.
+
+Binaries linked against the old version of the library with my symbol name will
+not run with the new version with MySQL's symbol name ("version `MYSQL_5.0' not
+found"). The actual name /usr/lib/libmysqlclient.so.15 must stay because else
+binaries coming from systems other than Debian would never run on a Debian
+server.
+
+So the Debian package had to be renamed from "libmysqlclient15" to
+"libmysqlclient15off" and do now conflict with their former version.
+
+-- 2006-03-14, Christian Hammers <ch@debian.org>
+
diff --git a/debian/libmysqlclientSLIBoff.dirs.in b/debian/libmysqlclientSLIBoff.dirs.in
new file mode 100644
index 00000000000..2964de6141b
--- /dev/null
+++ b/debian/libmysqlclientSLIBoff.dirs.in
@@ -0,0 +1 @@
+usr/lib/
diff --git a/debian/libmysqlclientSLIBoff.docs.in b/debian/libmysqlclientSLIBoff.docs.in
new file mode 100644
index 00000000000..eccf2c9c565
--- /dev/null
+++ b/debian/libmysqlclientSLIBoff.docs.in
@@ -0,0 +1 @@
+EXCEPTIONS-CLIENT
diff --git a/debian/libmysqlclientSLIBoff.files.in b/debian/libmysqlclientSLIBoff.files.in
new file mode 100644
index 00000000000..5162b7b9639
--- /dev/null
+++ b/debian/libmysqlclientSLIBoff.files.in
@@ -0,0 +1 @@
+usr/lib/libmysqlclient*.so.*
diff --git a/debian/libmysqlclientSLIBoff.postinst.in b/debian/libmysqlclientSLIBoff.postinst.in
new file mode 100644
index 00000000000..29d3b86f978
--- /dev/null
+++ b/debian/libmysqlclientSLIBoff.postinst.in
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+# vim: ts=4
+
+
diff --git a/debian/libndbclientNLIB-dev.dirs.in b/debian/libndbclientNLIB-dev.dirs.in
new file mode 100644
index 00000000000..4a854656b34
--- /dev/null
+++ b/debian/libndbclientNLIB-dev.dirs.in
@@ -0,0 +1,3 @@
+usr/include/mysql/storage/ndb/
+usr/include/
+usr/lib/
diff --git a/debian/libndbclientNLIB-dev.files.in b/debian/libndbclientNLIB-dev.files.in
new file mode 100644
index 00000000000..995eb2c71fb
--- /dev/null
+++ b/debian/libndbclientNLIB-dev.files.in
@@ -0,0 +1,3 @@
+usr/include/mysql/storage/ndb/*
+usr/lib/libndbclient.a
+usr/lib/libndbclient.la
diff --git a/debian/libndbclientNLIB-dev.links.in b/debian/libndbclientNLIB-dev.links.in
new file mode 100644
index 00000000000..4e0bf17ebd5
--- /dev/null
+++ b/debian/libndbclientNLIB-dev.links.in
@@ -0,0 +1 @@
+usr/lib/libndbclient.so.4 usr/lib/libndbclient.so
diff --git a/debian/libndbclientNLIB.README.Debian.in b/debian/libndbclientNLIB.README.Debian.in
new file mode 100644
index 00000000000..26549106092
--- /dev/null
+++ b/debian/libndbclientNLIB.README.Debian.in
@@ -0,0 +1,30 @@
+* Crashs on systems with Cyrix or other old i486 CPUs
+=====================================================
+
+As reported http://bugs.mysql.com/bug.php?id=21765 MySQL will segfault on very
+old CPUs that do not have support for the "cpuid" instruction.
+
+
+
+* Self-build binaries that are linked against libmysqlclient15 MUST be rebuild!
+===============================================================================
+
+This only affects binaries that are build on a Debian unstable/testing system
+before 2006-03-31 or version 5.0.19. "objdump -T myprogram | grep MYSQL_5.0"
+will give a couple of lines output in such a case.
+
+Until now libmysqlclient.so.15 had versioned symbols provided by a Debian
+patch. Now MySQL finally decided to adopt this patch but sadly chosed a
+different symbol name.
+
+Binaries linked against the old version of the library with my symbol name will
+not run with the new version with MySQL's symbol name ("version `MYSQL_5.0' not
+found"). The actual name /usr/lib/libmysqlclient.so.15 must stay because else
+binaries coming from systems other than Debian would never run on a Debian
+server.
+
+So the Debian package had to be renamed from "libmysqlclient15" to
+"libmysqlclient15off" and do now conflict with their former version.
+
+-- 2006-03-14, Christian Hammers <ch@debian.org>
+
diff --git a/debian/libndbclientNLIB.dirs.in b/debian/libndbclientNLIB.dirs.in
new file mode 100644
index 00000000000..2964de6141b
--- /dev/null
+++ b/debian/libndbclientNLIB.dirs.in
@@ -0,0 +1 @@
+usr/lib/
diff --git a/debian/libndbclientNLIB.files.in b/debian/libndbclientNLIB.files.in
new file mode 100644
index 00000000000..f212e302299
--- /dev/null
+++ b/debian/libndbclientNLIB.files.in
@@ -0,0 +1 @@
+usr/lib/libndbclient*.so.*
diff --git a/debian/libndbclientNLIB.postinst.in b/debian/libndbclientNLIB.postinst.in
new file mode 100644
index 00000000000..29d3b86f978
--- /dev/null
+++ b/debian/libndbclientNLIB.postinst.in
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+# vim: ts=4
+
+
diff --git a/debian/mysql-client-BASE.NEWS.in b/debian/mysql-client-BASE.NEWS.in
new file mode 100644
index 00000000000..272621ff48d
--- /dev/null
+++ b/debian/mysql-client-BASE.NEWS.in
@@ -0,0 +1,6 @@
+mysql-dfsg-5.0 (5.0.24a-2) unstable; urgency=low
+
+ This package now includes "mysqlreport" from hackmysql.com which generates
+ a friendly report on the performance relevant variables from SHOW STATUS.
+
+ -- Christian Hammers <ch@debian.org> Sun, 3 Sep 2006 16:26:41 +0200
diff --git a/debian/mysql-client-BASE.README.Debian.in b/debian/mysql-client-BASE.README.Debian.in
new file mode 100644
index 00000000000..b245638f9c9
--- /dev/null
+++ b/debian/mysql-client-BASE.README.Debian.in
@@ -0,0 +1,4 @@
+FAQ:
+
+Q: My <tab> completition is gone, why?
+A: You have "no-auto-rehash" in the "[mysql]" section of /etc/mysql/my.cnf!
diff --git a/debian/mysql-client-BASE.dirs.in b/debian/mysql-client-BASE.dirs.in
new file mode 100644
index 00000000000..63c303b03fc
--- /dev/null
+++ b/debian/mysql-client-BASE.dirs.in
@@ -0,0 +1,2 @@
+usr/bin/
+usr/share/man/man1/
diff --git a/debian/mysql-client-BASE.docs.in b/debian/mysql-client-BASE.docs.in
new file mode 100644
index 00000000000..5bb6d569f28
--- /dev/null
+++ b/debian/mysql-client-BASE.docs.in
@@ -0,0 +1,2 @@
+README
+EXCEPTIONS-CLIENT
diff --git a/debian/mysql-client-BASE.files.in b/debian/mysql-client-BASE.files.in
new file mode 100644
index 00000000000..3e3373b071c
--- /dev/null
+++ b/debian/mysql-client-BASE.files.in
@@ -0,0 +1,17 @@
+usr/bin/msql2mysql
+usr/bin/mysql
+usr/bin/mysql_find_rows
+usr/bin/mysql_waitpid
+usr/bin/mysqlaccess
+usr/bin/mysqladmin
+usr/bin/mysqlbinlog
+usr/bin/mysqlcheck
+usr/bin/mysqldump
+usr/bin/mysqlimport
+usr/bin/mysqlshow
+usr/share/lintian/overrides/mysql-client-@MYSQL_BRANDED_BASE_VERSION@
+usr/share/man/man1/mysql.1
+usr/share/man/man1/mysqlaccess.1
+usr/share/man/man1/mysqladmin.1
+usr/share/man/man1/mysqldump.1
+usr/share/man/man1/mysqlshow.1
diff --git a/debian/mysql-client-BASE.lintian-overrides.in b/debian/mysql-client-BASE.lintian-overrides.in
new file mode 100644
index 00000000000..9de261e2154
--- /dev/null
+++ b/debian/mysql-client-BASE.lintian-overrides.in
@@ -0,0 +1 @@
+mysql-client-@MYSQL_BRANDED_BASE_VERSION@: package-has-a-duplicate-relation
diff --git a/debian/mysql-common.README.Debian.in b/debian/mysql-common.README.Debian.in
new file mode 100644
index 00000000000..ab7d01defe1
--- /dev/null
+++ b/debian/mysql-common.README.Debian.in
@@ -0,0 +1,20 @@
+[passwords]
+If you change the password of the root user (which is strongly recommended)
+you have to create a personal mysql config file in order to let cron run
+the /etc/cron.daily script without asking you for the password.
+The /root/.my.cnf file should be chmod 0600 (-rw------- root root .my.cnf)
+and have the following content:
+[mysqladmin]
+user = root
+password = <secret>
+
+[more than one process]
+Note that the shutdown script cannot use the pid number stored in
+/var/run, since it is for the first mysqld thread, but we need to kill
+the most recent thread to shutdown the server. The upstream developers
+are aware of this bug. When maintaining your database, you should use
+mysqladmin with your password to shutdown and reload the server rather
+than /etc/init.d/mysql.
+
+Scott Hanson and Christian Hammers
+<shanson@debian.org> <ch@debian.org>
diff --git a/debian/mysql-common.dirs.in b/debian/mysql-common.dirs.in
new file mode 100644
index 00000000000..a5a88ede9c1
--- /dev/null
+++ b/debian/mysql-common.dirs.in
@@ -0,0 +1 @@
+etc/mysql/conf.d/
diff --git a/debian/mysql-common.files.in b/debian/mysql-common.files.in
new file mode 100644
index 00000000000..c052beb0027
--- /dev/null
+++ b/debian/mysql-common.files.in
@@ -0,0 +1,2 @@
+etc/mysql/my.cnf
+usr/share/mysql-common/internal-use-only
diff --git a/debian/mysql-common.postrm.in b/debian/mysql-common.postrm.in
new file mode 100644
index 00000000000..3ca45870165
--- /dev/null
+++ b/debian/mysql-common.postrm.in
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if [ "$1" = "purge" ]; then
+ rmdir /etc/mysql 2>/dev/null || true
+fi
+
+#DEBHELPER#
diff --git a/debian/mysql-common.preinst.in b/debian/mysql-common.preinst.in
new file mode 100644
index 00000000000..362990bd130
--- /dev/null
+++ b/debian/mysql-common.preinst.in
@@ -0,0 +1,215 @@
+#!/bin/bash -e
+#
+# summary of how this script can be called:
+# * <new-preinst> install
+# * <new-preinst> install <old-version>
+# * <new-preinst> upgrade <old-version>
+# * <old-preinst> abort-upgrade <new-version>
+#
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+# Try to stop the server in a sane way. If it does not success let the admin
+# do it himself. No database directories should be removed while the server
+# is running! Another mysqld in e.g. a different chroot is fine for us.
+stop_server() {
+ if [ ! -x /etc/init.d/mysql ]; then return; fi
+
+ set +e
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ cmd="invoke-rc.d mysql stop"
+ else
+ cmd="/etc/init.d/mysql stop"
+ fi
+ $cmd
+ errno=$?
+ set -e
+
+ # 0=ok, 100=no init script (fresh install)
+ if [ "$errno" != 0 -a "$errno" != 100 ]; then
+ echo "${cmd/ */} returned $errno" 1>&2
+ echo "There is a MySQL server running, but we failed in our attempts to stop it." 1>&2
+ echo "Stop it yourself and try again!" 1>&2
+ exit 1
+ fi
+}
+
+start_server() {
+ if [ ! -x /etc/init.d/mysql ]; then return; fi
+
+ set +e
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ cmd="invoke-rc.d mysql start"
+ else
+ cmd="/etc/init.d/mysql start"
+ fi
+ $cmd
+ set -e
+}
+
+##### here's a bunch of helper functions for converting database formats ######
+
+cvt_get_param(){
+ /usr/sbin/mysqld --print-defaults \
+ | tr " " "\n" \
+ | grep -- "--$1" \
+ | tail -n 1 \
+ | cut -d= -f2
+}
+
+cvt_setup_stuff(){
+ mytmp=`mktemp -d -t mysql-ISAM-convert.XXXXXX`
+ cvt_log="$mytmp/conversion.log"
+ if [ ! -d "$mytmp" ]; then
+ echo "can't create temporary directory, oh well." >&2
+ exit 1
+ fi
+
+ chgrp mysql $mytmp
+ chmod g+rwx $mytmp
+ cvt_socket=${mytmp}/mysql.sock
+
+ cvt_mysqld="mysqld --skip-grant-tables --skip-networking --socket $cvt_socket"
+ cvt_mysql="mysql --socket $cvt_socket"
+ cvt_mysqladmin="mysqladmin --socket $cvt_socket"
+}
+
+cvt_get_databases(){
+ echo fetching database list ... >&2
+ $cvt_mysql -e 'show databases' | sed -n -e '2,$p'
+}
+
+cvt_get_tables(){
+ echo querying tables in $1 ... >&2
+ $cvt_mysql $1 -e 'show table status' | sed -n -e '2,$p' | \
+ cut -f 1,2 | grep -w 'ISAM$' | cut -f 1
+}
+
+cvt_convert_table(){
+ echo converting $1.$2 ... >&2
+ $cvt_mysql $1 -e "alter table $2 type=MyISAM"
+}
+
+cvt_wait_for_server(){
+ local count
+ echo -n waiting for server startup.. >&2
+ while ! $cvt_mysql </dev/null >/dev/null 2>&1; do
+ echo -n . >&2
+ sleep 1
+ count=".$count"
+ if [ -f $mytmp/mysql.done ]; then
+ echo "sorry... looks like the server crashed :(" >&2
+ return 1
+ elif [ "$count" = "...................." ]; then
+ echo "sorry... looks like the server didn't start :(" >&2
+ return 1
+ fi
+ done
+ echo ok. >&2
+}
+
+cvt_wait_for_exit(){
+ local count
+ echo -n waiting for server shutdown.. >&2
+ while [ ! -f $mytmp/mysql.done ]; do
+ echo -n . >&2
+ sleep 1
+ count=".$count"
+ if [ "$count" = "...................." ]; then
+ echo "hrm... guess it never started?" >&2
+ return 0
+ fi
+ done
+ echo ok. >&2
+}
+
+cvt_cleanup(){
+ local mysql_kids
+ rm -rf $mytmp
+ # kill any mysqld child processes left over. there *shouldn't* be any,
+ # but let's not take chances with that
+ mysql_kids=`ps o 'pid command' --ppid $$ | grep -E '^[[:digit:]]+ mysqld ' | cut -d' ' -f1`
+ if [ "$mysql_kids" ]; then
+ echo "strange, some mysql processes left around. killing them now." >&2
+ kill $mysql_kids
+ sleep 10
+ mysql_kids=`ps o 'pid command' --ppid $$ | grep -E '^[[:digit:]]+ mysqld ' | cut -d' ' -f1`
+ if [ "$mysql_kids" ]; then
+ echo "okay, they're really not getting the hint..." >&2
+ kill -9 $mysql_kids
+ fi
+ fi
+}
+
+################################ main() ##########################
+
+# test if upgrading from non conffile state
+if [ "$1" = "upgrade" ] && [ -x /usr/sbin/mysqld ]; then
+ cvt_datadir=`cvt_get_param datadir`
+ # test for ISAM tables, which we must convert NOW
+ if [ -n "`find $cvt_datadir -name '*.ISM' 2>/dev/null`" ]; then
+ pidfile=`cvt_get_param pid-file`
+ if [ "$pidfile" ] && [ -f "$pidfile" ]; then
+ server_pid=`cat $pidfile`
+ if [ "$server_pid" ] && ps $server_pid >/dev/null 2>&1; then
+ server_running="yes"
+ fi
+ fi
+ # to be sure
+ stop_server
+
+ set +e
+ cat << EOF >&2
+----------------------------------------
+WARNING WARNING WARNING
+----------------------------------------
+
+It has been detected that are are using ISAM format on some of your
+mysql database tables. This format has been deprecated and no longer
+supported. to prevent these databases from essentially disappearing,
+an attempt at format conversion will now be made. please check after
+your upgrade that all tables are present and accounted for.
+
+apologies for the noise, but we thought you'd appreciate it :)
+
+----------------------------------------
+WARNING WARNING WARNING
+----------------------------------------
+EOF
+ cvt_setup_stuff
+ ($cvt_mysqld >$cvt_log 2>&1; touch $mytmp/mysql.done ) &
+
+ if cvt_wait_for_server; then
+ dbs=`cvt_get_databases`
+ for db in $dbs; do
+ tables=`cvt_get_tables $db`
+ for tbl in $tables; do
+ cvt_convert_table $db $tbl
+ done
+ done
+ else
+ cvt_error="yes"
+ fi
+
+ echo shutting down server... >&2
+ $cvt_mysqladmin shutdown
+ cvt_wait_for_exit
+ echo "all done!" >&2
+ if [ ! "$cvt_error" = "yes" ]; then
+ cvt_cleanup
+ else
+ echo "you might want to look in $mytmp..." >&2
+ fi
+
+ if [ "$server_running" ]; then
+ start_server
+ fi
+
+ set -e
+ fi
+fi
+
+exit 0
diff --git a/debian/mysql-extra-BASE.dirs.in b/debian/mysql-extra-BASE.dirs.in
new file mode 100644
index 00000000000..e7724817552
--- /dev/null
+++ b/debian/mysql-extra-BASE.dirs.in
@@ -0,0 +1 @@
+usr/bin
diff --git a/debian/mysql-extra-BASE.files.in b/debian/mysql-extra-BASE.files.in
new file mode 100644
index 00000000000..2ecc73d3f2e
--- /dev/null
+++ b/debian/mysql-extra-BASE.files.in
@@ -0,0 +1,3 @@
+usr/bin/ndb_drop_index
+usr/bin/ndb_drop_table
+usr/bin/ndb_delete_all
diff --git a/debian/mysql-management-BASE.dirs.in b/debian/mysql-management-BASE.dirs.in
new file mode 100644
index 00000000000..236670a2d0f
--- /dev/null
+++ b/debian/mysql-management-BASE.dirs.in
@@ -0,0 +1 @@
+usr/sbin
diff --git a/debian/mysql-management-BASE.files.in b/debian/mysql-management-BASE.files.in
new file mode 100644
index 00000000000..f828b13bd5f
--- /dev/null
+++ b/debian/mysql-management-BASE.files.in
@@ -0,0 +1 @@
+usr/sbin/ndb_mgmd
diff --git a/debian/mysql-management-BASE.mysql-management.init.in b/debian/mysql-management-BASE.mysql-management.init.in
new file mode 100644
index 00000000000..8b3f6e25f4b
--- /dev/null
+++ b/debian/mysql-management-BASE.mysql-management.init.in
@@ -0,0 +1,86 @@
+#!/bin/bash
+#
+### BEGIN INIT INFO
+# Provides: mysql-ndb-mgm
+# Required-Start: $syslog
+# Required-Stop: $syslog mysql
+# Should-Start: $local_fs $remote_fs $network $named $time
+# Should-Stop: $local_fs $remote_fs $network $named $time
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Start and stop the mysql database cluster management daemon
+# Description: Controls the MySQL NDB Management Node daemon "ndb_mgmd".
+### END INIT INFO
+#
+set -e
+set -u
+${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
+
+# Variables
+SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
+DAEMON=/usr/sbin/ndb_mgmd
+CONF=/etc/mysql/ndb_mgmd.cnf
+export HOME=/etc/mysql/
+
+# Safeguard (relative paths, core dumps..)
+cd /
+umask 077
+
+# Exit *silently* if we're not supposed to be started.
+#
+# The Debian scripts should execute these scripts to stop and start
+# the daemon when upgrading if it is started. On the other hand it should
+# remain silently if the server has not even been configured.
+# See /usr/share/doc/mysql-server-*/README.Debian for more information.
+test -x $DAEMON || exit 0
+test -r $CONF || exit 0
+. /lib/lsb/init-functions
+
+#
+# main()
+#
+case "${1:-''}" in
+ 'start')
+ # Start daemon
+ log_daemon_msg "Starting MySQL NDB Management Node" "ndb_mgmd"
+ # --pid-file does not work as the daemon forks itself with $PID=$PID+1
+ if start-stop-daemon \
+ --start \
+ --exec $DAEMON \
+ --user mysql \
+ -- \
+ -f $CONF
+ then
+ log_end_msg 0
+ else
+ log_end_msg 1
+ log_warning_msg "Please take a look at the syslog."
+ exit 1
+ fi
+ ;;
+
+ 'stop')
+ log_daemon_msg "Stopping MySQL NDB Management Node" "ndb_mgmd"
+ if start-stop-daemon \
+ --stop \
+ --oknodo \
+ --exec $DAEMON
+ then
+ log_end_msg 0
+ else
+ log_end_msg 1
+ exit 1
+ fi
+ ;;
+
+ 'restart'|'force-reload')
+ set +e; $SELF stop; set -e
+ $SELF start
+ ;;
+
+ *)
+ echo "Usage: $SELF start|stop|restart|force-reload"
+ exit 1
+ ;;
+esac
+
diff --git a/debian/mysql-server-BASE.NEWS.in b/debian/mysql-server-BASE.NEWS.in
new file mode 100644
index 00000000000..9884e2694e7
--- /dev/null
+++ b/debian/mysql-server-BASE.NEWS.in
@@ -0,0 +1,10 @@
+mysql-dfsg-5.0 (5.0.18-9) unstable; urgency=low
+
+ Rotation of the binary logs is now configured in /etc/mysql/my.cnf with
+ "expire-logs-days" which defaults to 20 days. The old file
+ /etc/mysql/debian-log-rotate.conf should be removed together with
+ /etc/cron.daily/mysql-server after this value has been adjusted. Note that
+ the old variable defined the number of files whereas the new one defines
+ a time span in days.
+
+ -- Christian Hammers <ch@debian.org> Tue, 24 Jan 2006 22:18:21 +0100
diff --git a/debian/mysql-server-BASE.README.Debian.in b/debian/mysql-server-BASE.README.Debian.in
new file mode 100644
index 00000000000..ca9eca271c0
--- /dev/null
+++ b/debian/mysql-server-BASE.README.Debian.in
@@ -0,0 +1,125 @@
+
+* REMEMBER TO SET THE ROOT PASSWORD !!!
+============================================================================
+
+* MYSQL WON'T INSTALL?
+======================
+MySQL will only install if you have a non-numeric hostname that is resolvable
+via the /etc/hosts file. E.g. if the "hostname" command returns "myhostname"
+then there must be a line like "10.0.0.1 myhostname".
+
+On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in place of
+/var/lib/mysql or /var/log/mysql gets accidently removed and have manually be
+restored.
+
+* MYSQL WON'T START OR STOP?
+============================
+You may never ever delete the special mysql user "debian-sys-maint". This
+user together with the credentials in /etc/mysql/debian.cnf are used by the
+init scripts to stop the server as they would require knowledge of the mysql
+root users password else.
+So in most of the times you can fix the situation by making sure that the
+debian.cnf file contains the right password, e.g. by setting a new one
+(remember to do a "flush privileges" then).
+
+* WHAT TO DO AFTER UPGRADES:
+============================
+ - running mysql_upgrade to be able to make use of possibly added new
+ privilege columns. This script does not give any use more rights.
+
+* WHAT TO DO AFTER INSTALLATION:
+================================
+The MySQL manual describes certain steps to do at this stage in a separate
+chapter. They are not necessary as the Debian packages does them
+automatically.
+
+The only thing that is left over for the admin is
+ - setting the *passwords* !!!
+ - creating new users and databases
+ - read the rest of this text
+
+* DOWNGRADING TO 4.0 or 4.1:
+============================
+Unsupported. Period.
+But if you do and get problems or make interesting experiences, mail me, it
+might help others.
+Ok, if you really want, I would recommend to "mysqldump --opt" all tables,
+then purge 4.1, delete /var/lib/mysql, install 4.0 and insert the dumps. Be
+carefully, though, with the "mysql" table, you might not simply overwrite that
+one as the password for the mysql "debian-sys-maint" user is stored in
+/etc/mysql/debian.cnf and needed by /etc/init.d/ to start mysql and check if
+it's alive.
+
+* SOME APPLICATION CAN NO LONGER CONNECT:
+=========================================
+This application is probably linked against libmysqlclient12 or below and
+somebody has created a mysql user with new-style passwords.
+The old_passwords option which forces backwards compatibility, can be set
+in /etc/mysql/conf.d/old_passwords.conf.
+If that does not help, the password can be set manually, the application that
+inserted the user should be changed or the application that tries to connect
+should be updated to libmysqlclient14 or -15.
+Read http://dev.mysql.com/doc/refman/5.0/en/old-client.html
+
+* NETWORKING:
+=============
+For security reasons, the Debian package has enabled networking only on the
+loop-back device using "bind-address" in /etc/mysql/my.cnf. Check with
+"netstat -tlnp" where it is listening. If your connection is aborted
+immediately see if "mysqld: all" or similar is in /etc/hosts.allow and read
+hosts_access(5).
+
+* WHERE IS THE DOCUMENTATION?:
+==============================
+Unfortunately due to licensing restrictions, debian currently not able
+to provide the mysql-doc package in any format. For the most up to date
+documentation, please go to http://dev.mysql.com/doc.
+
+* PASSWORDS:
+============
+It is strongly recommended to set a password for the mysql root user (which
+is NOT the same as the "normal" root user) with the command:
+ /usr/bin/mysqladmin -u root password 'enter-your-good-new-password-here'
+If you already had a password set add " -p " before "-u" to the line above.
+
+If you are tired to type the password in every time or want to automate your
+scripts you can store it in the file $HOME/.my.cnf. It should be chmod 0600
+(-rw------- username username .my.cnf) to ensure that nobody else can read
+it. Every other configuration parameter can be stored there, too. You will
+find an example below and more information in the MySQL manual in
+/usr/share/doc/mysql-doc or www.mysql.com.
+
+ATTENTION: It is necessary, that a .my.cnf from root always contains a "user"
+line wherever there is a "password" line, else, the Debian maintenance
+scripts, that use /etc/mysql/debian.cnf, will use the username
+"debian-sys-maint" but the password that is in root's .my.cnf. Also note,
+that every change you make in the /root/.my.cnf will affect the mysql cron
+script, too.
+
+ # an example of $HOME/.my.cnf
+ [client]
+ user = your-mysql-username
+ password = enter-your-good-new-password-here
+
+* BIG_ROWS FOR EVEN MORE ROWS IN A TABLE:
+=========================================
+If you ever run out of rows in a table there is the possibility of building
+the package with "-DBIG_ROWS" which, according to a MySQL employee on
+packagers@lists.mysql.com should lead to a 64bit row index (I guess > 2^32
+rows) but also to an approx. 5% performance loss.
+
+* NDB CLUSTER ENGINE:
+=====================
+NDB is the shared-nothing cluster engine since MySQL-4.1.
+This package contains the all three components, the mysql backend, the NDB
+Data Node and the NDB Management Node. The init scripts of the cluster
+daemons will silently exit unless their configuration is provided:
+ mysql-ndb: needs "ndb-connectstring" in /etc/mysql/my.cnf
+ mysql-ndb-mgm: needs /etc/mysql/ndb_mgmd.cnf
+
+* EXPIRE_LOGS_DAYS AND LOG_BIN:
+===============================
+Having expire_logs_days enabled but log-bin not crashes the server. Using both
+or none of those options is safe. To prevent this happening during the nightly
+log rotation via /etc/logrotate.d/mysql the initscript checks for malicious
+combination of options. This is Debian bug #368547 and MySQL bug #17733.
diff --git a/debian/mysql-server-BASE.config.in b/debian/mysql-server-BASE.config.in
new file mode 100644
index 00000000000..c89c6127dc2
--- /dev/null
+++ b/debian/mysql-server-BASE.config.in
@@ -0,0 +1,39 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+CNF=/etc/mysql/my.cnf
+
+# Beware that there are two ypwhich one of them needs the 2>/dev/null!
+if test -n "`which ypwhich 2>/dev/null`" && ypwhich >/dev/null 2>&1; then
+ db_input high mysql-server-@MYSQL_BRANDED_BASE_VERSION@/nis_warning || true
+ db_go
+fi
+
+# only ask this question on fresh installs and during "reconfiguration".
+# there is also an additional check for empty root passwords in the
+# postinst script when the tools are available for us to use.
+if [ "$1" = "configure" ] && [ -z "$2" ] || [ "$1" = "reconfigure" ]; then
+ db_input medium mysql-server/root_password || true
+ db_go
+fi
+
+# If this is an upgrade of an already existing installation ask the user if
+# we may use the backwards incompatible but more secure password format.
+# This should not be shown at dpkg-reconfigure and except for the dist-upgrade,
+# config files are for the admin only!
+# Read: If mysql was already installed but not from Etch and it was either 4.0
+# or had old_passwords enabled before then the system is affected.
+if [ "$1" = "configure" ] &&
+ [ -f $CNF ] &&
+ (
+ [ ! -f /var/lib/mysql/debian-4.1.flag ] ||
+ egrep -q -i '^[[:space:]]*old.passwords[[:space:]]*=[[:space:]]*(1|true)' $CNF
+ )
+then
+ db_input medium mysql-server-@MYSQL_BRANDED_BASE_VERSION@/need_sarge_compat || true
+ db_go
+fi
diff --git a/debian/mysql-server-BASE.dirs.in b/debian/mysql-server-BASE.dirs.in
new file mode 100644
index 00000000000..62ce062ac84
--- /dev/null
+++ b/debian/mysql-server-BASE.dirs.in
@@ -0,0 +1,13 @@
+etc/init.d
+etc/logrotate.d
+usr/bin
+usr/lib
+usr/lib/mysql
+usr/sbin
+usr/share/man/man8
+usr/share/info
+usr/share/mysql
+usr/lib/pkgconfig
+var/run/mysqld
+var/lib/mysql-upgrade
+var/lib/mysql-cluster
diff --git a/debian/mysql-server-BASE.docs.in b/debian/mysql-server-BASE.docs.in
new file mode 100644
index 00000000000..d624701bb8f
--- /dev/null
+++ b/debian/mysql-server-BASE.docs.in
@@ -0,0 +1,2 @@
+EXCEPTIONS-CLIENT
+debian/copyright.more
diff --git a/debian/mysql-server-BASE.files.in b/debian/mysql-server-BASE.files.in
new file mode 100644
index 00000000000..ff79ca73aa7
--- /dev/null
+++ b/debian/mysql-server-BASE.files.in
@@ -0,0 +1,47 @@
+usr/bin/my_print_defaults
+usr/bin/myisam_ftdump
+usr/bin/myisamchk
+usr/bin/myisamlog
+usr/bin/myisampack
+usr/bin/mysql_convert_table_format
+usr/bin/mysql_fix_extensions
+usr/bin/mysql_fix_privilege_tables
+usr/bin/mysql_install_db
+usr/bin/mysql_secure_installation
+usr/bin/mysql_setpermission
+usr/bin/mysql_tzinfo_to_sql
+usr/bin/mysql_upgrade
+usr/bin/mysql_zap
+usr/bin/mysqlbug
+usr/bin/mysqld_multi
+usr/bin/mysqld_safe
+usr/bin/mysqldumpslow
+usr/bin/mysqlhotcopy
+usr/bin/mysqltest
+usr/bin/perror
+usr/bin/replace
+usr/bin/resolve_stack_dump
+usr/bin/resolveip
+usr/sbin/mysqld
+usr/sbin/mysqlmanager
+usr/lib/mysql/mysqld.sym
+usr/share/lintian/overrides/mysql-server-@MYSQL_BRANDED_BASE_VERSION@
+usr/share/info/mysql.info
+usr/share/man/man1/mysqlman.1
+usr/share/man/man1/my_print_defaults.1
+usr/share/man/man1/myisam_ftdump.1
+usr/share/man/man1/myisamchk.1
+usr/share/man/man1/myisamlog.1
+usr/share/man/man1/myisampack.1
+usr/share/man/man8/mysqld.8
+usr/share/man/man1/mysqld_multi.1
+usr/share/man/man1/mysqld_safe.1
+usr/share/man/man1/mysql_fix_privilege_tables.1
+usr/share/man/man1/mysql_install_db.1
+usr/share/man/man1/mysqlhotcopy.1
+usr/share/man/man8/mysqlmanager.8
+usr/share/man/man1/mysql_upgrade.1
+usr/share/man/man1/mysql_tzinfo_to_sql.1
+usr/share/man/man1/mysql_zap.1
+usr/share/man/man1/perror.1
+usr/share/man/man1/replace.1
diff --git a/debian/mysql-server-BASE.links.in b/debian/mysql-server-BASE.links.in
new file mode 100644
index 00000000000..b023931144d
--- /dev/null
+++ b/debian/mysql-server-BASE.links.in
@@ -0,0 +1 @@
+usr/bin/mysqld_safe usr/bin/safe_mysqld
diff --git a/debian/mysql-server-BASE.lintian-overrides.in b/debian/mysql-server-BASE.lintian-overrides.in
new file mode 100644
index 00000000000..7eceabc1aec
--- /dev/null
+++ b/debian/mysql-server-BASE.lintian-overrides.in
@@ -0,0 +1,4 @@
+mysql-server-@MYSQL_BRANDED_BASE_VERSION@: possible-bashism-in-maintainer-script postinst:81 'p{("a".."z","A".."Z",0..9)[int(rand(62))]}'
+mysql-server-@MYSQL_BRANDED_BASE_VERSION@: possible-bashism-in-maintainer-script preinst:33 '${cmd/ */}'
+mysql-server-@MYSQL_BRANDED_BASE_VERSION@: statically-linked-binary ./usr/bin/mysql_tzinfo_to_sql
+mysql-server-@MYSQL_BRANDED_BASE_VERSION@: statically-linked-binary ./usr/sbin/mysqld
diff --git a/debian/mysql-server-BASE.logcheck.ignore.paranoid.in b/debian/mysql-server-BASE.logcheck.ignore.paranoid.in
new file mode 100644
index 00000000000..61231af32fc
--- /dev/null
+++ b/debian/mysql-server-BASE.logcheck.ignore.paranoid.in
@@ -0,0 +1,10 @@
+/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
+/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+mysqld\[[0-9]+\]: $
+mysqld\[[0-9]+\]: Support MySQL by buying support/licenses at http://shop.mysql.com$
+mysqld\[[0-9]+\]: Version: .* socket: '/var/run/mysqld/mysqld.sock' port: 3306$
+mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
+mysqld_safe\[[0-9]+\]: started$
+mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at http://shop.mysql.com *$
+usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
+usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
diff --git a/debian/mysql-server-BASE.logcheck.ignore.server.in b/debian/mysql-server-BASE.logcheck.ignore.server.in
new file mode 100644
index 00000000000..3a7de17f3f8
--- /dev/null
+++ b/debian/mysql-server-BASE.logcheck.ignore.server.in
@@ -0,0 +1,31 @@
+/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
+/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+mysqld\[[0-9]+\]: ?$
+mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed
+mysqld\[[0-9]+\]: .*InnoDB: Started;
+mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
+mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$
+mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$
+mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$
+mysqld\[[0-9]+\]: Support MySQL by buying support/licenses at http://shop.mysql.com$
+mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$
+mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$
+mysqld\[[0-9]+\]: Version: .* socket
+mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
+mysqld_safe\[[0-9]+\]: ?$
+mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
+mysqld_safe\[[0-9]+\]: ended$
+mysqld_safe\[[0-9]+\]: http://www.mysql.com$
+mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$
+mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
+mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$
+mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
+mysqld_safe\[[0-9]+\]: started$
+mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at
+mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$
+mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
+mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
+mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
+usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
+usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
diff --git a/debian/mysql-server-BASE.logcheck.ignore.workstation.in b/debian/mysql-server-BASE.logcheck.ignore.workstation.in
new file mode 100644
index 00000000000..3a7de17f3f8
--- /dev/null
+++ b/debian/mysql-server-BASE.logcheck.ignore.workstation.in
@@ -0,0 +1,31 @@
+/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
+/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
+mysqld\[[0-9]+\]: ?$
+mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed
+mysqld\[[0-9]+\]: .*InnoDB: Started;
+mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
+mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$
+mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$
+mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$
+mysqld\[[0-9]+\]: Support MySQL by buying support/licenses at http://shop.mysql.com$
+mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$
+mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$
+mysqld\[[0-9]+\]: Version: .* socket
+mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
+mysqld_safe\[[0-9]+\]: ?$
+mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
+mysqld_safe\[[0-9]+\]: ended$
+mysqld_safe\[[0-9]+\]: http://www.mysql.com$
+mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$
+mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
+mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$
+mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
+mysqld_safe\[[0-9]+\]: started$
+mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at
+mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$
+mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
+mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
+mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
+usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
+usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
diff --git a/debian/mysql-server-BASE.mysql-server.logrotate.in b/debian/mysql-server-BASE.mysql-server.logrotate.in
new file mode 100644
index 00000000000..d32bef50588
--- /dev/null
+++ b/debian/mysql-server-BASE.mysql-server.logrotate.in
@@ -0,0 +1,28 @@
+# - I put everything in one block and added sharedscripts, so that mysql gets
+# flush-logs'd only once.
+# Else the binary logs would automatically increase by n times every day.
+# - The error log is obsolete, messages go to syslog now.
+/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
+ daily
+ rotate 7
+ missingok
+ create 640 mysql adm
+ compress
+ sharedscripts
+ postrotate
+ test -x /usr/bin/mysqladmin || exit 0
+
+ # If this fails, check debian.conf!
+ export HOME=/etc/mysql/my.cnf
+ MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
+ if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
+ # Really no mysqld or rather a missing debian-sys-maint user?
+ # If this occurs and is not a error please report a bug.
+ if ps cax | grep -q mysqld; then
+ exit 1
+ fi
+ else
+ $MYADMIN flush-logs
+ fi
+ endscript
+}
diff --git a/debian/mysql-server-BASE.postinst.in b/debian/mysql-server-BASE.postinst.in
new file mode 100644
index 00000000000..19ae1892de8
--- /dev/null
+++ b/debian/mysql-server-BASE.postinst.in
@@ -0,0 +1,276 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+# This command can be used as pipe to syslog. With "-s" it also logs to stderr.
+ERR_LOGGER="logger -p daemon.err -t mysqld_safe -i"
+
+invoke() {
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d mysql $1
+ else
+ /etc/init.d/mysql $1
+ fi
+}
+
+MYSQL_BOOTSTRAP="/usr/sbin/mysqld --bootstrap --user=mysql --skip-grant-tables --skip-bdb --skip-innodb "
+
+test_mysql_access() {
+ mysql --no-defaults -u root -h localhost </dev/null >/dev/null 2>&1
+}
+
+# call with $1 = "online" to connect to the server, otherwise it bootstraps
+set_mysql_rootpw() {
+ # forget we ever saw the password. don't use reset to keep the seen status
+ db_set mysql-server/root_password ""
+
+ tfile=`mktemp`
+ if [ ! -f "$tfile" ]; then
+ return 1
+ fi
+
+ # this avoids us having to call "test" or "[" on $rootpw
+ cat << EOF > $tfile
+USE mysql;
+UPDATE user SET password=PASSWORD("$rootpw") WHERE user='root';
+FLUSH PRIVILEGES;
+EOF
+ if grep -q 'PASSWORD("")' $tfile; then
+ retval=0
+ elif [ "$1" = "online" ]; then
+ mysql --no-defaults -u root -h localhost <$tfile >/dev/null
+ retval=$?
+ else
+ $MYSQL_BOOTSTRAP <$tfile
+ retval=$?
+ fi
+ rm -f $tfile
+ return $retval
+}
+
+# This is necessary because mysql_install_db removes the pid file in /var/run
+# and because changed configuration options should take effect immediately.
+# In case the server wasn't running at all it should be ok if the stop
+# script fails. I can't tell at this point because of the cleaned /var/run.
+set +e; invoke stop; set -e
+
+case "$1" in
+ configure)
+ mysql_cnf=/etc/mysql/my.cnf
+ mysql_datadir=/usr/share/mysql
+ mysql_statedir=/var/lib/mysql
+ mysql_rundir=/var/run/mysqld
+ mysql_logdir=/var/log
+ mysql_cfgdir=/etc/mysql
+ mysql_newlogdir=/var/log/mysql
+ mysql_upgradedir=/var/lib/mysql-upgrade
+
+ # first things first, if the following symlink exists, it is a preserved
+ # copy the old data dir from a mysql upgrade that would have otherwise
+ # been replaced by an empty mysql dir. this should restore it.
+ for dir in DATADIR LOGDIR; do
+ if [ "$dir" = "DATADIR" ]; then targetdir=$mysql_statedir; else targetdir=$mysql_newlogdir; fi
+ savelink="$mysql_upgradedir/$dir.link"
+ if [ -L "$savelink" ]; then
+ # If the targetdir was a symlink before we upgraded it is supposed
+ # to be either still be present or not existing anymore now.
+ if [ -L "$targetdir" ]; then
+ rm "$savelink"
+ elif [ ! -d "$targetdir" ]; then
+ mv "$savelink" "$targetdir"
+ else
+ # this should never even happen, but just in case...
+ mysql_tmp=`mktemp -d -t mysql-symlink-restore-XXXXXX`
+ echo "this is very strange! see $mysql_tmp/README..." >&2
+ mv "$targetdir" "$mysql_tmp"
+ cat << EOF > "$mysql_tmp/README"
+
+if you're reading this, it's most likely because you had replaced /var/lib/mysql
+with a symlink, then upgraded to a new version of mysql, and then dpkg
+removed your symlink (see #182747 and others). the mysql packages noticed
+that this happened, and as a workaround have restored it. however, because
+/var/lib/mysql seems to have been re-created in the meantime, and because
+we don't want to rm -rf something we don't know as much about, we're going
+to leave this unexpected directory here. if your database looks normal,
+and this is not a symlink to your database, you should be able to blow
+this all away.
+
+EOF
+ fi
+ fi
+ rmdir $mysql_upgradedir 2>/dev/null || true
+ done
+
+ # Ensure the existence and right permissions for the database and
+ # log files.
+ if [ ! -d "$mysql_statedir" -a ! -L "$mysql_statedir" ]; then mkdir "$mysql_statedir"; fi
+ if [ ! -d "$mysql_statedir/mysql" -a ! -L "$mysql_statedir/mysql" ]; then mkdir "$mysql_statedir/mysql"; fi
+ if [ ! -d "$mysql_newlogdir" -a ! -L "$mysql_newlogdir" ]; then mkdir "$mysql_newlogdir"; fi
+ # When creating an ext3 jounal on an already mounted filesystem like e.g.
+ # /var/lib/mysql, you get a .journal file that is not modifyable by chown.
+ # The mysql_datadir must not be writable by the mysql user under any
+ # circumstances as it contains scripts that are executed by root.
+ set +e
+ chown -R 0.0 $mysql_datadir
+ chown -R mysql $mysql_statedir
+ chown -R mysql $mysql_rundir
+ chown -R mysql:adm $mysql_newlogdir; chmod 2750 $mysql_newlogdir;
+ for i in log err; do
+ touch $mysql_logdir/mysql.$i
+ chown mysql:adm $mysql_logdir/mysql.$i
+ chmod 0640 $mysql_logdir/mysql.$i
+ done
+ set -e
+
+ # This is important to avoid dataloss when there is a removed
+ # mysql-server version from Woody lying around which used the same
+ # data directory and then somewhen gets purged by the admin.
+ db_set mysql-server/postrm_remove_database false || true
+
+ # So that mysql-server (4.0) can check if it's safe to install.
+ touch $mysql_statedir/debian-@VER@.flag
+
+ # On dist-upgrades, we ensure that the old_password setting is updated
+ # before passwords are changed. Except for that config files are taboo!
+ db_get mysql-server-@MYSQL_BRANDED_BASE_VERSION@/need_sarge_compat_done || true
+ if [ "$RET" = "false" ]; then
+ db_get mysql-server-@MYSQL_BRANDED_BASE_VERSION@/need_sarge_compat
+ echo -e "# created by debconf but save to be edited\n[mysqld]\nold_passwords = $RET" > /etc/mysql/conf.d/old_passwords.cnf
+ fi
+ db_set mysql-server-@MYSQL_BRANDED_BASE_VERSION@/need_sarge_compat_done true
+
+ # initiate databases. Output is not allowed by debconf :-(
+ # Debian: beware of the bashisms...
+ # Debian: can safely run on upgrades with existing databases
+ set +e
+ /bin/bash /usr/bin/mysql_install_db --rpm 2>&1 | $ERR_LOGGER
+ if [ "$?" != "0" ]; then
+ echo "ATTENTION: An error has occured. More info is in the syslog!"
+ fi
+ set -e
+
+ ## On every reconfiguration the maintenance user is recreated.
+ #
+ # - It is easier to regenerate the password every time but as people
+ # use fancy rsync scripts and file alteration monitors, the existing
+ # password is used and existing files not touched.
+ # - The mysqld statement is like that in mysql_install_db because the
+ # server is not already running. This has some implications:
+ # - The amount of newlines and semicolons in the query is important!
+ # - GRANT is not possible with --skipt-grant-tables and "INSERT
+ # (user,host..) VALUES" is not --ansi compliant
+ # - The echo is just for readability. ash's buildin has no "-e" so use /bin/echo.
+ # - The Super_priv, Show_db_priv, Create_tmp_table_priv and Lock_tables_priv
+ # may not be present as old Woody 3.23 databases did not have it and the
+ # admin might not already have run mysql_upgrade which adds them.
+ # As the binlog cron scripts to need at least the Super_priv, I do first
+ # the old query which always succeeds and then the new which may or may not.
+
+ # recreate the credentials file if not present or without mysql_upgrade stanza
+ dc=$mysql_cfgdir/debian.cnf;
+ if [ -e "$dc" -a -n "`fgrep mysql_upgrade $dc 2>/dev/null`" ]; then
+ pass="`sed -n 's/password *= *// p' $dc | head -n 1`"
+ else
+ pass=`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..16)'`;
+ if [ ! -d "$mysql_cfgdir" ]; then install -o 0 -g 0 -m 0755 -d $mysql_cfgdir; fi
+ cat /dev/null > $dc
+ echo "# Automatically generated for Debian scripts. DO NOT TOUCH!" >>$dc
+ echo "[client]" >>$dc
+ echo "host = localhost" >>$dc
+ echo "user = debian-sys-maint" >>$dc
+ echo "password = $pass" >>$dc
+ echo "socket = $mysql_rundir/mysqld.sock" >>$dc
+ echo "[mysql_upgrade]" >>$dc
+ echo "user = debian-sys-maint" >>$dc
+ echo "password = $pass" >>$dc
+ echo "socket = $mysql_rundir/mysqld.sock" >>$dc
+ echo "basedir = /usr" >>$dc
+ fi
+ # If this dir chmod go+w then the admin did it. But this file should not.
+ chown 0:0 $dc
+ chmod 0600 $dc
+
+ # update privilege and timezone tables
+ password_column_fix_query=`/bin/echo -e \
+ "USE mysql\n" \
+ "ALTER TABLE user CHANGE password Password varchar(41) collate utf8_bin NOT NULL default ''"`;
+ replace_query=`/bin/echo -e \
+ "USE mysql\n" \
+ "REPLACE INTO user SET " \
+ " host='localhost', user='debian-sys-maint', password=password('$pass'), " \
+ " Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', " \
+ " Create_priv='Y', Drop_priv='Y', Reload_priv='Y', Shutdown_priv='Y', " \
+ " Process_priv='Y', File_priv='Y', Grant_priv='Y', References_priv='Y', " \
+ " Index_priv='Y', Alter_priv='Y' __EXTRA_PRIVS__"`;
+ extra_privs=`/bin/echo -e \
+ ", Show_db_priv='Y' " \
+ ", Super_priv='Y' " \
+ ", Create_tmp_table_priv='Y' " \
+ ", Lock_tables_priv='Y' " \
+ ", Execute_priv='Y' " \
+ ", Repl_slave_priv='Y' " \
+ ", Repl_client_priv='Y' "`;
+
+ # Upgrade password column format before the root password gets set.
+ echo "$password_column_fix_query" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
+
+ db_get mysql-server/root_password && rootpw="$RET"
+ if ! set_mysql_rootpw; then
+ password_error="yes"
+ fi
+
+ echo "$replace_query" | sed "s/__EXTRA_PRIVS__//" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
+ set +e
+ echo "$replace_query" | sed "s/__EXTRA_PRIVS__/$extra_privs/" | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
+ set -e
+ mysql_tzinfo_to_sql /usr/share/zoneinfo/ 2>&1 | egrep -v 'Skipping it.$' | $MYSQL_BOOTSTRAP 2>&1 | $ERR_LOGGER
+
+ # The Sarge package "mysql-server" which used to include the mysqld daemon
+ # may still be in unselected-configured state (i.e. after a remove but not
+ # purge) in which case its now obsolete cronscript has to be moved away.
+ for i in /etc/cron.daily/mysql-server /etc/cron.daily/mysql-server-41 /etc/mysql/debian-log-rotate.conf; do
+ if [ -f $i ]; then mv $i $i.dpkg-old; fi
+ done
+ ;;
+
+ abort-upgrade|abort-remove|abort-configure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument '$1'" 1>&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+# here we check to see if we can connect as root without a password
+# this should catch upgrades from previous verisons where the root
+# password wasn't set. if there is a password, or if the connection
+# fails for any other reason, nothing happens.
+if [ "$1" = "configure" ]; then
+ if test_mysql_access; then
+ db_input medium mysql-server/root_password || true
+ db_go
+ db_get mysql-server/root_password && rootpw="$RET"
+
+ if ! set_mysql_rootpw "online"; then
+ password_error="yes"
+ fi
+ fi
+
+ if [ "$password_error" = "yes" ]; then
+ db_input high mysql-server/error_setting_password || true
+ db_go
+ fi
+
+fi
+
+db_stop # in case invoke failes
+
+exit 0
diff --git a/debian/mysql-server-BASE.postrm.in b/debian/mysql-server-BASE.postrm.in
new file mode 100644
index 00000000000..8021068d87a
--- /dev/null
+++ b/debian/mysql-server-BASE.postrm.in
@@ -0,0 +1,92 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
+
+# Try to stop the server in a sane way. If it does not success let the admin
+# do it himself. No database directories should be removed while the server
+# is running!
+stop_server() {
+ set +e
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d mysql stop
+ else
+ /etc/init.d/mysql stop
+ fi
+ errno=$?
+ set -e
+
+ if [ "$?" != 0 ]; then
+ echo "Trying to stop the MySQL server resulted in exitcode $?." 1>&2
+ echo "Stop it yourself and try again!" 1>&2
+ exit 1
+ fi
+}
+
+case "$1" in
+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ if [ -n "`$MYADMIN ping 2>/dev/null`" ]; then
+ stop_server
+ sleep 2
+ fi
+ ;;
+ *)
+ echo "postrm called with unknown argument '$1'" 1>&2
+ exit 1
+ ;;
+esac
+
+#
+# - Do NOT purge logs or data if another mysql-sever* package is installed (#307473)
+# - Remove the mysql user only after all his owned files are purged.
+#
+if [ "$1" = "purge" -a ! \( -x /usr/sbin/mysqld -o -L /usr/sbin/mysqld \) ]; then
+ # we remove the mysql user only after all his owned files are purged
+ rm -f /var/log/mysql.{log,err}{,.0,.[1234567].gz}
+ rm -rf /var/log/mysql
+
+ db_input high mysql-server-@MYSQL_BRANDED_BASE_VERSION@/postrm_remove_databases || true
+ db_go
+ db_get mysql-server-@MYSQL_BRANDED_BASE_VERSION@/postrm_remove_databases || true
+ if [ "$RET" = "true" ]; then
+ # never remove the debian.cnf when the databases are still existing
+ # else we ran into big trouble on the next install!
+ rm -f /etc/mysql/conf.d/old_passwords.cnf
+ rm -f /etc/mysql/debian.cnf
+ rm -rf /var/lib/mysql
+ rm -rf /var/run/mysqld
+ userdel mysql || true
+ fi
+
+ # (normally) Automatically added by dh_installinit
+ if [ "$1" = "purge" ] ; then
+ update-rc.d mysql remove >/dev/null || exit 0
+ fi
+ # (normally) End automatically added section
+fi
+
+# (normally) Automatically added by dh_installdebconf
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+fi
+# (normally) End automatically added section
+
+# (normally) Automatically added by dh_installinit
+if [ "$1" = "purge" ] ; then
+ update-rc.d mysql-ndb-mgm remove >/dev/null || exit 0
+fi
+# (normally) End automatically added section
+# (normally) Automatically added by dh_installinit
+if [ "$1" = "purge" ] ; then
+ update-rc.d mysql-ndb remove >/dev/null || exit 0
+fi
+# (normally) End automatically added section
+
+# no DEBHELPER here, "update-rc.d remove" fails if mysql-server-@MYSQL_BRANDED_BASE_VERSION@ is installed
+
+exit 0
diff --git a/debian/mysql-server-BASE.preinst.in b/debian/mysql-server-BASE.preinst.in
new file mode 100644
index 00000000000..529867f98e0
--- /dev/null
+++ b/debian/mysql-server-BASE.preinst.in
@@ -0,0 +1,167 @@
+#!/bin/bash -e
+#
+# summary of how this script can be called:
+# * <new-preinst> install
+# * <new-preinst> install <old-version>
+# * <new-preinst> upgrade <old-version>
+# * <old-preinst> abort-upgrade <new-version>
+#
+
+. /usr/share/debconf/confmodule
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
+DATADIR=/var/lib/mysql
+LOGDIR=/var/log/mysql
+UPGRADEDIR=/var/lib/mysql-upgrade
+
+# Try to stop the server in a sane way. If it does not success let the admin
+# do it himself. No database directories should be removed while the server
+# is running! Another mysqld in e.g. a different chroot is fine for us.
+stop_server() {
+ if [ ! -x /etc/init.d/mysql ]; then return; fi
+
+ set +e
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ cmd="invoke-rc.d mysql stop"
+ else
+ cmd="/etc/init.d/mysql stop"
+ fi
+ $cmd
+ errno=$?
+ set -e
+
+ # 0=ok, 100=no init script (fresh install)
+ if [ "$errno" != 0 -a "$errno" != 100 ]; then
+ echo "${cmd/ */} returned $errno" 1>&2
+ echo "There is a MySQL server running, but we failed in our attempts to stop it." 1>&2
+ echo "Stop it yourself and try again!" 1>&2
+ db_stop
+ exit 1
+ fi
+}
+
+################################ main() ##########################
+
+this_version=@VER@
+
+# Safe the user from stupidities.
+show_downgrade_warning=0
+for i in `ls $DATADIR/debian-*.flag 2>/dev/null`; do
+ found_version=`echo $i | sed 's/.*debian-\([0-9\.]\+\).flag/\1/'`
+ if dpkg --compare-versions "$this_version" '<<' "$found_version"; then
+ show_downgrade_warning=1
+ break;
+ fi
+done
+if [ "$show_downgrade_warning" = 1 ]; then
+ db_fset mysql-server-$this_version/really_downgrade seen false || true
+ db_input medium mysql-server-$this_version/really_downgrade || true
+ db_go
+ db_get mysql-server-$this_version/really_downgrade || true
+ if [ "$RET" = "true" ]; then
+ rm -f $DATADIR/debian-*.flag
+ touch $DATADIR/debian-$this_version.flag
+ else
+ echo "Aborting downgrade from (at least) $found_version to $this_version." 1>&2
+ db_stop
+ exit 1
+ fi
+fi
+
+# to be sure
+stop_server
+
+# If we use NIS then errors should be tolerated. It's up to the
+# user to ensure that the mysql user is correctly setup.
+# Beware that there are two ypwhich one of them needs the 2>/dev/null!
+if test -n "`which ypwhich 2>/dev/null`" && ypwhich >/dev/null 2>&1; then
+ set +e
+fi
+
+#
+# Now we have to ensure the following state:
+# /etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false
+# /etc/group: mysql:x:101:
+#
+# Sadly there could any state be present on the system so we have to
+# modify everything carefully i.e. not doing a chown before creating
+# the user etc...
+#
+
+# creating mysql group if he isn't already there
+if ! getent group mysql >/dev/null; then
+ # Adding system group: mysql.
+ addgroup --system mysql >/dev/null
+fi
+
+# creating mysql user if he isn't already there
+if ! getent passwd mysql >/dev/null; then
+ # Adding system user: mysql.
+ adduser \
+ --system \
+ --disabled-login \
+ --ingroup mysql \
+ --home $DATADIR \
+ --gecos "MySQL Server" \
+ --shell /bin/false \
+ mysql >/dev/null
+fi
+
+# end of NIS tolerance zone
+set -e
+
+# if there's a symlink, let's store where it's pointing, because otherwise
+# it's going to be lost in some situations
+for dir in DATADIR LOGDIR; do
+ checkdir=`eval echo "$"$dir`
+ if [ -L "$checkdir" ]; then
+ mkdir -p "$UPGRADEDIR"
+ cp -d "$checkdir" "$UPGRADEDIR/$dir.link"
+ fi
+done
+
+# creating mysql home directory
+if [ ! -d $DATADIR -a ! -L $DATADIR ]; then
+ mkdir $DATADIR
+fi
+
+# checking disc space
+if LC_ALL=C BLOCKSIZE= df --portability $DATADIR/. | tail -n 1 | awk '{ exit ($4>1000) }'; then
+ echo "ERROR: There's not enough space in $DATADIR/" 1>&2
+ db_stop
+ exit 1
+fi
+
+# Since the home directory was created before putting the user into
+# the mysql group and moreover we cannot guarantee that the
+# permissions were correctly *before* calling this script, we fix them now.
+# In case we use NIS and no mysql user is present then this script should
+# better fail now than later..
+# The "set +e" is necessary as e.g. a ".journal" of a ext3 partition is
+# not chgrp'able (#318435).
+set +e
+chown mysql:mysql $DATADIR
+find $DATADIR -follow -not -group mysql -print0 2>/dev/null \
+ | xargs -0 --no-run-if-empty chgrp mysql
+set -e
+
+# Some files below /etc/ were possibly in the mysql-server-4.1/sarge package
+# before. They get overwritten by current ones to avoid unnecessary dpkg questions.
+while read md5 file; do
+ if [ "`md5sum $file 2>/dev/null`" = "$md5 $file" ]; then
+ cp /usr/share/mysql-common/internal-use-only/`echo $file | sed 's°/°_°g'` $file
+ fi
+done <<EOT
+6691f2fdc5c6d27ff0260eb79813e1bc /etc/init.d/mysql
+b53b9552d44661361d39157c3c7c51d3 /etc/logrotate.d/mysql-server
+EOT
+
+db_stop
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/mysql-server-BASE.prerm.in b/debian/mysql-server-BASE.prerm.in
new file mode 100644
index 00000000000..03e9ea37420
--- /dev/null
+++ b/debian/mysql-server-BASE.prerm.in
@@ -0,0 +1,8 @@
+#!/bin/bash -e
+
+. /usr/share/debconf/confmodule
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+#DEBHELPER#
diff --git a/debian/mysql-server-BASE.templates.in b/debian/mysql-server-BASE.templates.in
new file mode 100644
index 00000000000..888f61345bf
--- /dev/null
+++ b/debian/mysql-server-BASE.templates.in
@@ -0,0 +1,71 @@
+Template: mysql-server-@MYSQL_BRANDED_BASE_VERSION@/really_downgrade
+Type: boolean
+Default: false
+_Description: Do you really want to downgrade?
+ WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a
+ mysql-server package with a higher version has been installed before.
+ It can not be guaranteed that this version can use its data.
+
+Template: mysql-server-@MYSQL_BRANDED_BASE_VERSION@/nis_warning
+Type: note
+_Description: Important note for NIS/YP users!
+ To use mysql you must install an equivalent user and group to the
+ following and ensure yourself that /var/lib/mysql has the right
+ permissions (the uid/gid may be different).
+ .
+ /etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false
+ .
+ /etc/group: mysql:x:101:
+ .
+ /var/lib/mysql: drwxr-xr-x mysql mysql
+
+Template: mysql-server-@MYSQL_BRANDED_BASE_VERSION@/postrm_remove_databases
+Type: boolean
+Default: false
+_Description: Remove the databases used by all MySQL versions?
+ The script is about to remove the data directory /var/lib/mysql.
+ If it is planned to just install a higher MySQL version or if a different
+ mysql-server package is already using it, the data should be kept.
+
+Template: mysql-server-@MYSQL_BRANDED_BASE_VERSION@/start_on_boot
+Type: boolean
+Default: true
+_Description: Should MySQL start on boot?
+ The MySQL can start automatically on boot time or only if you manually
+ type '/etc/init.d/mysql start'.
+
+Template: mysql-server/root_password
+Type: password
+_Description: New password for MySQL "root" user:
+ It is highly recommended that you set a password for the MySQL administrative
+ "root" user.
+ .
+ If you do not provide a password no changes will be made to the account.
+
+Template: mysql-server/error_setting_password
+Type: error
+_Description: Unable to set password for MySQL "root" user
+ It seems an error occurred while setting the password for the MySQL
+ administrative user. This may have happened because the user already
+ has a password, or because there was a problem communicating with the
+ MySQL server.
+ .
+ When installation finishes, you should verify that the account
+ is properly protected with a password (see README.Debian for more
+ information).
+
+Template: mysql-server-@MYSQL_BRANDED_BASE_VERSION@/need_sarge_compat
+Type: boolean
+Default: false
+_Description: Support MySQL connections from hosts running Debian "sarge" or older?
+ The way passwords were stored was not very secure. This has been improved
+ with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 Sarge
+ will not be able to connect to account which are new or whose password have
+ been changed. See /usr/share/doc/mysql-server-@MYSQL_BRANDED_BASE_VERSION@/README.Debian.
+
+Template: mysql-server-@MYSQL_BRANDED_BASE_VERSION@/need_sarge_compat_done
+Type: boolean
+Default: false
+Description: for internal use
+ Only internally used.
+
diff --git a/debian/mysql-server-PREV.preinst.in b/debian/mysql-server-PREV.preinst.in
new file mode 100644
index 00000000000..7440c476f55
--- /dev/null
+++ b/debian/mysql-server-PREV.preinst.in
@@ -0,0 +1,191 @@
+#!/bin/bash -e
+#
+# summary of how this script can be called:
+# * <new-preinst> install
+# * <new-preinst> install <old-version>
+# * <new-preinst> upgrade <old-version>
+# * <old-preinst> abort-upgrade <new-version>
+#
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+# Try to stop the server in a sane way. If it does not success let the admin
+# do it himself. No database directories should be removed while the server
+# is running! Another mysqld in e.g. a different chroot is fine for us.
+stop_server() {
+ if [ ! -x /etc/init.d/mysql ]; then return; fi
+
+ set +e
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ cmd="invoke-rc.d mysql stop"
+ else
+ cmd="/etc/init.d/mysql stop"
+ fi
+ $cmd
+ errno=$?
+ set -e
+
+ # 0=ok, 100=no init script (fresh install)
+ if [ "$errno" != 0 -a "$errno" != 100 ]; then
+ echo "${cmd/ */} returned $errno" 1>&2
+ echo "There is a MySQL server running, but we failed in our attempts to stop it." 1>&2
+ echo "Stop it yourself and try again!" 1>&2
+ exit 1
+ fi
+}
+
+##### here's a bunch of helper functions for converting database formats ######
+
+cvt_get_param(){
+ /usr/sbin/mysqld --print-defaults \
+ | tr " " "\n" \
+ | grep -- "--$1" \
+ | tail -n 1 \
+ | cut -d= -f2
+}
+
+cvt_setup_stuff(){
+ mytmp=`mktemp -d -t mysql-ISAM-convert.XXXXXX`
+ cvt_log="$mytmp/conversion.log"
+ if [ ! -d "$mytmp" ]; then
+ echo "can't create temporary directory, oh well." >&2
+ exit 1
+ fi
+
+ chgrp mysql $mytmp
+ chmod g+rwx $mytmp
+ cvt_socket=${mytmp}/mysql.sock
+
+ cvt_mysqld="mysqld --skip-grant-tables --skip-networking --socket $cvt_socket"
+ cvt_mysql="mysql --socket $cvt_socket"
+ cvt_mysqladmin="mysqladmin --socket $cvt_socket"
+}
+
+cvt_get_databases(){
+ echo fetching database list ... >&2
+ $cvt_mysql -e 'show databases' | sed -n -e '2,$p'
+}
+
+cvt_get_tables(){
+ echo querying tables in $1 ... >&2
+ $cvt_mysql $1 -e 'show table status' | sed -n -e '2,$p' | \
+ cut -f 1,2 | grep -w 'ISAM$' | cut -f 1
+}
+
+cvt_convert_table(){
+ echo converting $1.$2 ... >&2
+ $cvt_mysql $1 -e "alter table $2 type=MyISAM"
+}
+
+cvt_wait_for_server(){
+ local count
+ echo -n waiting for server startup.. >&2
+ while ! $cvt_mysql </dev/null >/dev/null 2>&1; do
+ echo -n . >&2
+ sleep 1
+ count=".$count"
+ if [ -f $mytmp/mysql.done ]; then
+ echo "sorry... looks like the server crashed :(" >&2
+ return 1
+ elif [ "$count" = "...................." ]; then
+ echo "sorry... looks like the server didn't start :(" >&2
+ return 1
+ fi
+ done
+ echo ok. >&2
+}
+
+cvt_wait_for_exit(){
+ local count
+ echo -n waiting for server shutdown.. >&2
+ while [ ! -f $mytmp/mysql.done ]; do
+ echo -n . >&2
+ sleep 1
+ count=".$count"
+ if [ "$count" = "...................." ]; then
+ echo "hrm... guess it never started?" >&2
+ return 0
+ fi
+ done
+ echo ok. >&2
+}
+
+cvt_cleanup(){
+ local mysql_kids
+ rm -rf $mytmp
+ # kill any mysqld child processes left over. there *shouldn't* be any,
+ # but let's not take chances with that
+ mysql_kids=`ps o 'pid command' --ppid $$ | grep -E '^[[:digit:]]+ mysqld ' | cut -d' ' -f1`
+ if [ "$mysql_kids" ]; then
+ echo "strange, some mysql processes left around. killing them now." >&2
+ kill $mysql_kids
+ sleep 10
+ mysql_kids=`ps o 'pid command' --ppid $$ | grep -E '^[[:digit:]]+ mysqld ' | cut -d' ' -f1`
+ if [ "$mysql_kids" ]; then
+ echo "okay, they're really not getting the hint..." >&2
+ kill -9 $mysql_kids
+ fi
+ fi
+}
+
+################################ main() ##########################
+
+# to be sure
+stop_server
+
+# test if upgrading from non conffile state
+if [ "$1" = "upgrade" ] && [ -x /usr/sbin/mysqld ]; then
+ cvt_datadir=`cvt_get_param datadir`
+ # test for ISAM tables, which we must convert NOW
+ if [ -n "`find $cvt_datadir -name '*.ISM' 2>/dev/null`" ]; then
+ set +e
+ cat << EOF >&2
+----------------------------------------
+WARNING WARNING WARNING
+----------------------------------------
+
+It has been detected that are are using ISAM format on some of your
+mysql database tables. This format has been deprecated and no longer
+supported. to prevent these databases from essentially disappearing,
+an attempt at format conversion will now be made. please check after
+your upgrade that all tables are present and accounted for.
+
+apologies for the noise, but we thought you'd appreciate it :)
+
+----------------------------------------
+WARNING WARNING WARNING
+----------------------------------------
+EOF
+ cvt_setup_stuff
+ ($cvt_mysqld >$cvt_log 2>&1; touch $mytmp/mysql.done ) &
+
+ if cvt_wait_for_server; then
+ dbs=`cvt_get_databases`
+ for db in $dbs; do
+ tables=`cvt_get_tables $db`
+ for tbl in $tables; do
+ cvt_convert_table $db $tbl
+ done
+ done
+ else
+ cvt_error="yes"
+ fi
+
+ echo shutting down server... >&2
+ $cvt_mysqladmin shutdown
+ cvt_wait_for_exit
+ echo "all done!" >&2
+ if [ ! "$cvt_error" = "yes" ]; then
+ cvt_cleanup
+ else
+ echo "you might want to look in $mytmp..." >&2
+ fi
+
+ set -e
+ fi
+fi
+
+exit 0
diff --git a/debian/mysql-server.preinst.in b/debian/mysql-server.preinst.in
new file mode 100644
index 00000000000..7440c476f55
--- /dev/null
+++ b/debian/mysql-server.preinst.in
@@ -0,0 +1,191 @@
+#!/bin/bash -e
+#
+# summary of how this script can be called:
+# * <new-preinst> install
+# * <new-preinst> install <old-version>
+# * <new-preinst> upgrade <old-version>
+# * <old-preinst> abort-upgrade <new-version>
+#
+
+if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
+${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
+
+export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
+
+# Try to stop the server in a sane way. If it does not success let the admin
+# do it himself. No database directories should be removed while the server
+# is running! Another mysqld in e.g. a different chroot is fine for us.
+stop_server() {
+ if [ ! -x /etc/init.d/mysql ]; then return; fi
+
+ set +e
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ cmd="invoke-rc.d mysql stop"
+ else
+ cmd="/etc/init.d/mysql stop"
+ fi
+ $cmd
+ errno=$?
+ set -e
+
+ # 0=ok, 100=no init script (fresh install)
+ if [ "$errno" != 0 -a "$errno" != 100 ]; then
+ echo "${cmd/ */} returned $errno" 1>&2
+ echo "There is a MySQL server running, but we failed in our attempts to stop it." 1>&2
+ echo "Stop it yourself and try again!" 1>&2
+ exit 1
+ fi
+}
+
+##### here's a bunch of helper functions for converting database formats ######
+
+cvt_get_param(){
+ /usr/sbin/mysqld --print-defaults \
+ | tr " " "\n" \
+ | grep -- "--$1" \
+ | tail -n 1 \
+ | cut -d= -f2
+}
+
+cvt_setup_stuff(){
+ mytmp=`mktemp -d -t mysql-ISAM-convert.XXXXXX`
+ cvt_log="$mytmp/conversion.log"
+ if [ ! -d "$mytmp" ]; then
+ echo "can't create temporary directory, oh well." >&2
+ exit 1
+ fi
+
+ chgrp mysql $mytmp
+ chmod g+rwx $mytmp
+ cvt_socket=${mytmp}/mysql.sock
+
+ cvt_mysqld="mysqld --skip-grant-tables --skip-networking --socket $cvt_socket"
+ cvt_mysql="mysql --socket $cvt_socket"
+ cvt_mysqladmin="mysqladmin --socket $cvt_socket"
+}
+
+cvt_get_databases(){
+ echo fetching database list ... >&2
+ $cvt_mysql -e 'show databases' | sed -n -e '2,$p'
+}
+
+cvt_get_tables(){
+ echo querying tables in $1 ... >&2
+ $cvt_mysql $1 -e 'show table status' | sed -n -e '2,$p' | \
+ cut -f 1,2 | grep -w 'ISAM$' | cut -f 1
+}
+
+cvt_convert_table(){
+ echo converting $1.$2 ... >&2
+ $cvt_mysql $1 -e "alter table $2 type=MyISAM"
+}
+
+cvt_wait_for_server(){
+ local count
+ echo -n waiting for server startup.. >&2
+ while ! $cvt_mysql </dev/null >/dev/null 2>&1; do
+ echo -n . >&2
+ sleep 1
+ count=".$count"
+ if [ -f $mytmp/mysql.done ]; then
+ echo "sorry... looks like the server crashed :(" >&2
+ return 1
+ elif [ "$count" = "...................." ]; then
+ echo "sorry... looks like the server didn't start :(" >&2
+ return 1
+ fi
+ done
+ echo ok. >&2
+}
+
+cvt_wait_for_exit(){
+ local count
+ echo -n waiting for server shutdown.. >&2
+ while [ ! -f $mytmp/mysql.done ]; do
+ echo -n . >&2
+ sleep 1
+ count=".$count"
+ if [ "$count" = "...................." ]; then
+ echo "hrm... guess it never started?" >&2
+ return 0
+ fi
+ done
+ echo ok. >&2
+}
+
+cvt_cleanup(){
+ local mysql_kids
+ rm -rf $mytmp
+ # kill any mysqld child processes left over. there *shouldn't* be any,
+ # but let's not take chances with that
+ mysql_kids=`ps o 'pid command' --ppid $$ | grep -E '^[[:digit:]]+ mysqld ' | cut -d' ' -f1`
+ if [ "$mysql_kids" ]; then
+ echo "strange, some mysql processes left around. killing them now." >&2
+ kill $mysql_kids
+ sleep 10
+ mysql_kids=`ps o 'pid command' --ppid $$ | grep -E '^[[:digit:]]+ mysqld ' | cut -d' ' -f1`
+ if [ "$mysql_kids" ]; then
+ echo "okay, they're really not getting the hint..." >&2
+ kill -9 $mysql_kids
+ fi
+ fi
+}
+
+################################ main() ##########################
+
+# to be sure
+stop_server
+
+# test if upgrading from non conffile state
+if [ "$1" = "upgrade" ] && [ -x /usr/sbin/mysqld ]; then
+ cvt_datadir=`cvt_get_param datadir`
+ # test for ISAM tables, which we must convert NOW
+ if [ -n "`find $cvt_datadir -name '*.ISM' 2>/dev/null`" ]; then
+ set +e
+ cat << EOF >&2
+----------------------------------------
+WARNING WARNING WARNING
+----------------------------------------
+
+It has been detected that are are using ISAM format on some of your
+mysql database tables. This format has been deprecated and no longer
+supported. to prevent these databases from essentially disappearing,
+an attempt at format conversion will now be made. please check after
+your upgrade that all tables are present and accounted for.
+
+apologies for the noise, but we thought you'd appreciate it :)
+
+----------------------------------------
+WARNING WARNING WARNING
+----------------------------------------
+EOF
+ cvt_setup_stuff
+ ($cvt_mysqld >$cvt_log 2>&1; touch $mytmp/mysql.done ) &
+
+ if cvt_wait_for_server; then
+ dbs=`cvt_get_databases`
+ for db in $dbs; do
+ tables=`cvt_get_tables $db`
+ for tbl in $tables; do
+ cvt_convert_table $db $tbl
+ done
+ done
+ else
+ cvt_error="yes"
+ fi
+
+ echo shutting down server... >&2
+ $cvt_mysqladmin shutdown
+ cvt_wait_for_exit
+ echo "all done!" >&2
+ if [ ! "$cvt_error" = "yes" ]; then
+ cvt_cleanup
+ else
+ echo "you might want to look in $mytmp..." >&2
+ fi
+
+ set -e
+ fi
+fi
+
+exit 0
diff --git a/debian/mysql-storage-BASE.dirs.in b/debian/mysql-storage-BASE.dirs.in
new file mode 100644
index 00000000000..236670a2d0f
--- /dev/null
+++ b/debian/mysql-storage-BASE.dirs.in
@@ -0,0 +1 @@
+usr/sbin
diff --git a/debian/mysql-storage-BASE.files.in b/debian/mysql-storage-BASE.files.in
new file mode 100644
index 00000000000..126c17cb802
--- /dev/null
+++ b/debian/mysql-storage-BASE.files.in
@@ -0,0 +1 @@
+usr/sbin/ndbd
diff --git a/debian/mysql-storage-BASE.mysql-storage.init.in b/debian/mysql-storage-BASE.mysql-storage.init.in
new file mode 100644
index 00000000000..32ec82c6244
--- /dev/null
+++ b/debian/mysql-storage-BASE.mysql-storage.init.in
@@ -0,0 +1,85 @@
+#!/bin/bash
+#
+### BEGIN INIT INFO
+# Provides: mysql-ndb
+# Required-Start: $syslog mysql mysql-ndb-mgm
+# Required-Stop: $syslog mysql mysql-ndb-mgm
+# Should-Start: $local_fs $remote_fs $network $named $time
+# Should-Stop: $local_fs $remote_fs $network $named $time
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Start and stop the mysql database cluster server daemon
+# Description: Controls the MySQL NDB Data Node daemon "ndbd".
+### END INIT INFO
+#
+set -e
+set -u
+${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
+
+# Variables
+SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
+DAEMON=/usr/sbin/ndbd
+CONF=/etc/mysql/my.cnf
+export HOME=/etc/mysql/
+
+# Safeguard (relative paths, core dumps..)
+cd /
+umask 077
+
+# Exit *silently* if we're not supposed to be started.
+#
+# The Debian scripts should execute these scripts to stop and start
+# the daemon when upgrading if it is started. On the other hand it should
+# remain silently if the server has not even been configured.
+# See /usr/share/doc/mysql-server-*/README.Debian for more information.
+test -x $DAEMON || exit 0
+if $DAEMON --help | grep -q '^ndb-connectstring.*No default value'; then exit 0; fi
+. /lib/lsb/init-functions
+
+#
+# main()
+#
+case "${1:-''}" in
+ 'start')
+ # Start daemon
+ # Creatign a PID file does not work as the master process forks
+ # a child with different PID and then terminates itself.
+ log_daemon_msg "Starting MySQL NDB Data Node" "ndbd"
+ if start-stop-daemon \
+ --start \
+ --exec $DAEMON \
+ --user mysql
+ then
+ log_end_msg 0
+ else
+ log_end_msg 1
+ log_warning_msg "Please take a look at the syslog."
+ exit 1
+ fi
+ ;;
+
+ 'stop')
+ log_daemon_msg "Stopping MySQL NDB Data Node" "ndbd"
+ if start-stop-daemon \
+ --stop \
+ --oknodo \
+ --exec $DAEMON
+ then
+ log_end_msg 0
+ else
+ log_end_msg 1
+ exit 1
+ fi
+ ;;
+
+ 'restart'|'force-reload')
+ set +e; $SELF stop; set -e
+ $SELF start
+ ;;
+
+ *)
+ echo "Usage: $SELF start|stop|restart|force-reload"
+ exit 1
+ ;;
+esac
+
diff --git a/debian/mysql-test-BASE.dirs.in b/debian/mysql-test-BASE.dirs.in
new file mode 100644
index 00000000000..b1eee9d9a12
--- /dev/null
+++ b/debian/mysql-test-BASE.dirs.in
@@ -0,0 +1,2 @@
+usr/bin
+usr/share/mysql/mysql-test
diff --git a/debian/mysql-test-BASE.files.in b/debian/mysql-test-BASE.files.in
new file mode 100644
index 00000000000..a6d4841b074
--- /dev/null
+++ b/debian/mysql-test-BASE.files.in
@@ -0,0 +1,2 @@
+usr/share/mysql-test/*
+usr/bin/mysql_client_test
diff --git a/debian/mysql-tools-BASE.dirs.in b/debian/mysql-tools-BASE.dirs.in
new file mode 100644
index 00000000000..00b2ed2562d
--- /dev/null
+++ b/debian/mysql-tools-BASE.dirs.in
@@ -0,0 +1,2 @@
+usr/bin
+usr/share/mysql
diff --git a/debian/mysql-tools-BASE.files.in b/debian/mysql-tools-BASE.files.in
new file mode 100644
index 00000000000..d2f37a570be
--- /dev/null
+++ b/debian/mysql-tools-BASE.files.in
@@ -0,0 +1,13 @@
+usr/bin/ndb_mgm
+usr/bin/ndb_restore
+usr/bin/ndb_waiter
+usr/bin/ndb_select_all
+usr/bin/ndb_select_count
+usr/bin/ndb_desc
+usr/bin/ndb_show_tables
+usr/bin/ndb_test_platform
+usr/bin/ndb_config
+usr/bin/ndb_error_reporter
+usr/bin/ndb_size
+
+
diff --git a/debian/po/POTFILES.in.in b/debian/po/POTFILES.in.in
new file mode 100644
index 00000000000..01e1e87fc55
--- /dev/null
+++ b/debian/po/POTFILES.in.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] mysql-server-@MYSQL_BRANDED_BASE_VERSION@.templates
diff --git a/debian/po/ca.po b/debian/po/ca.po
new file mode 100644
index 00000000000..9dc1fc0de77
--- /dev/null
+++ b/debian/po/ca.po
@@ -0,0 +1,290 @@
+# mysql-dfsg (debconf) translation to Catalan.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Aleix Badia i Bosch <abadia@ica.es> 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-4.1\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2004-01-31 19:20GMT\n"
+"Last-Translator: Aleix Badia i Bosch <abadia@ica.es>\n"
+"Language-Team: Debian L10n Catalan <debian-l10n-catalan@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Nota important pels usuaris de NIS/YP"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+#, fuzzy
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Per utilitzar la base de dades de MySQL heu d'afegir un usuari i grup "
+"equivalent al següent i assegurar-vos que el directori /var/lib/mysql tingui "
+"els permisos correctes."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Voleu que el MySQL s'iniciï a l'arrencada ?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+#, fuzzy
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"El MySQL es pot executar a l'arrencada o només si executeu manualment '/etc/"
+"init.d/mysql start'. Seleccioneu 'sí' si voleu que s'inicialitzi "
+"automàticament."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+
+#, fuzzy
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr ""
+#~ "Feu una ullada al document: http://www.mysql.com/doc/en/Upgrade.html"
+
+#, fuzzy
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "El MySQL només s'instal·la en cas de tenir un nom d'ordinador central que "
+#~ "no sigui numèric i que es pugui resoldre a través del fitxer /etc/hosts. "
+#~ "Ex. si l'ordre \"hostname\" retorna \"myhostname\", llavors hi ha d'haver "
+#~ "una línia com la següent \"10.0.0.1 myhostname\"."
+
+#, fuzzy
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Es crea un nou usuari de mysql \"debian-sys-maint\". S'utilitza per les "
+#~ "seqüències d'inicialització i aturada del cron, no el suprimiu."
+
+#, fuzzy
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Recordeu posar una contrasenya al superusuari del MySQL. Si utilitzeu un "
+#~ "fitxer /root/.my.cnf, escriviu sempre allà les línies \"user\" i "
+#~ "\"password\".; mai només la contrasenya. Per a més informació feu una "
+#~ "ullada a /usr/share/doc/mysql-server/README.Debian."
+
+#, fuzzy
+#~ msgid ""
+#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
+#~ "mysql-server package?"
+#~ msgstr ""
+#~ "Voleu suprimir totes les bases de dades en purgar el paquet mysql-server ?"
+
+#~ msgid ""
+#~ "Networking is disabled by default for security reasons. You can enable it "
+#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
+#~ msgstr ""
+#~ "La xarxa està inhabilitada per defecte per a raons de seguretat. La podeu "
+#~ "habilitar descomentant l'opció de skip-networking del fitxer /etc/mysql/"
+#~ "my.cnf."
+
+#~ msgid "security and update notice"
+#~ msgstr "Avís de seguretat i actualització"
+
+#~ msgid "Please run mysql_fix_privilege_tables !"
+#~ msgstr "Executeu mysql_fix_privilege_tables"
+
+#~ msgid ""
+#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
+#~ "other than root and mysql with mysql."
+#~ msgstr ""
+#~ "S'asseguren els permisos de seguretat de /var/lib/mysql canviant a mysql "
+#~ "tots els GIDs diferents a root i mysql."
+
+#~ msgid ""
+#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
+#~ msgstr ""
+#~ "Per habilitar el suport de SSL podeu seguir les instruccions de /usr/"
+#~ "share/doc/mysql-server/"
+
+#~ msgid "mysql_fix_privileges_tables will be executed"
+#~ msgstr "s'executa mysql_fix_privileges_tables"
+
+#~ msgid ""
+#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
+#~ "system. To make use of it, some new fields must be added to the tables "
+#~ "in the \"mysql\" database. This is done by the "
+#~ "mysql_fix_privilege_tables script during this upgrade regardless of if "
+#~ "the server is currently running or not!"
+#~ msgstr ""
+#~ "Les últimes versions de MySQL tenen un sistema de privilegis més "
+#~ "elaborat. Per utilitzar-lo cal afegir nous camps a les taules de la base "
+#~ "de dades \"mysql\". Aquesta tasca la realitza la seqüència "
+#~ "mysql_fix_privilege_tables durant l'actualització independentment de si "
+#~ "el servidor s'està executant o no!"
+
+#~ msgid ""
+#~ "This script is not supposed to give any user more rights that he had "
+#~ "before, if you encounter such a case, please contact me."
+#~ msgstr ""
+#~ "Aquesta seqüència no assigna privilegis d'usuari diferents als que ja "
+#~ "tenia, en cas que us trobéssiu en aquesta situació, poseu-vos en contacte "
+#~ "amb mi."
+
+#~ msgid ""
+#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
+#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
+#~ "remove everything including the configuration) somewhen? (default is not)"
+#~ msgstr ""
+#~ "Voleu suprimir tots els continguts de /var/lib/mysql quan es purgui el "
+#~ "paquet mysql-server amb l'ordre \"dpkg --purge mysql-server\". (ex. "
+#~ "suprimir-ho tot inclòs la configuració) ? (per defecte no)"
+
+#~ msgid "Make MySQL reachable via network?"
+#~ msgstr "Voleu fer accessible el MySQL via xarxa ?"
+
+#~ msgid ""
+#~ "Should MySQL listen on a network reachable TCP port? This is not "
+#~ "necessary for use on a single computer and could be a security problem."
+#~ msgstr ""
+#~ "Voleu que el MySQL escolti a un port TCP accessible des de la xarxa ? "
+#~ "Aquesta opció no és imprescindible en ordinadors aïllats i podria "
+#~ "provocar un problema de seguretat."
+
+#~ msgid "Enable chroot mode?"
+#~ msgstr "Permetre el mode chroot ?"
+
+#~ msgid ""
+#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
+#~ "that users cannot modify any files outside this directory. This improves "
+#~ "resistence against crackers, too, as they are not able to modify system "
+#~ "files."
+#~ msgstr ""
+#~ "El MySQL es pot executar en una entorn tancat al directori /var/lib/"
+#~ "mysql_jail perquè els usuaris no puguin modificar cap fitxer fora del "
+#~ "directori.Aquesta opció també augmenta la seguretat envers els crackers, "
+#~ "jaque no poden modificar els fitxers del sistema."
diff --git a/debian/po/cs.po b/debian/po/cs.po
new file mode 100644
index 00000000000..33e4f213bb2
--- /dev/null
+++ b/debian/po/cs.po
@@ -0,0 +1,259 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 12:49+0100\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Opravdu chcete degradovat?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"VAROVÃNÃ: Existuje soubor /var/lib/mysql/debian-*.flag, což znamená, že již "
+"byl instalován balíÄek mysql-server s vyšší verzí. Nemůžeme zaruÄit, zda "
+"tato verze umí použít data z novÄ›jšího balíÄku."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Důležitá poznámka pro uživatele NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Abyste mohli mysql používat, musíte do následujících souborů přidat "
+"ekvivalentního uživatele a skupinu a zajistit, že /var/lib/mysql má správná "
+"práva (uid/gid se mohou lišit)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Odstranit databáze používané všemi verzemi MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Skript se chystá odstranit datový adresář /var/lib/mysql. Jestliže pouze "
+"plánujete nainstalovat novější verzi MySQL, nebo pokud tato data souběžně "
+"využívá jiný balík mysql-server, měli byste data ponechat."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Má se MySQL spustit při startu systému?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL se může spouÅ¡tÄ›t automaticky pÅ™i startu systému, nebo ruÄnÄ› příkazem '/"
+"etc/init.d/mysql start'."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nové heslo MySQL uživatele \"root\":"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr "Nastavit heslo u správcovského úÄtu \"root\" je silnÄ› doporuÄeno."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "Nezadáte-li heslo, žádné zmÄ›ny se s úÄtem neprovedou."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Nelze nastavit heslo MySQL uživatele \"root\""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Během nastavování hesla pro správcovského uživatele MySQL se vyskytla chyba. "
+"To se mohlo stát třeba proto, protože uživatel již měl neslo nastaveno, nebo "
+"protože nastal problém v komunikaci s MySQL serverem."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Po skonÄení instalace byste mÄ›li ověřit, že je úÄet chránÄ›n heslem (více "
+"informací naleznete v souboru README.Debian)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Podporovat MySQL pÅ™ipojení z poÄítaÄů používajících Debian Sarge nebo starší?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"Způsob, jakým se dříve ukládala hesla, nebyl příliÅ¡ bezpeÄný. To se nyní "
+"změnilo, ale nevýhodou je, že se klienti z Debianu 3.1 Sarge nebudou moci "
+"pÅ™ipojit na nové úÄty, nebo na úÄty, u nichž se zmÄ›nilo heslo. Podrobnosti "
+"viz /usr/share/doc/mysql-server-5.0/README.Debian."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "Aktualizace nelze provést pokud jsou přítomny tabulky ISAM!"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "Poslední verze MySQL již nemohou používat starý formát tabulek ISAM a "
+#~ "před aktualizací je nutné převést tyto tabulky např. do formátu MyISAM "
+#~ "pomocí \"mysql_convert_table_format\" nebo \"ALTER TABLE x ENGINE=MyISAM"
+#~ "\". Instalace mysql-server-5.0 se nyní přeruší. V případě, že se mezitím "
+#~ "odinstaloval původní mysql-server-4.1, jednoduše jej znovu nainstalujte a "
+#~ "tabulky pÅ™eveÄte."
+
+#~ msgid "Update Hints"
+#~ msgstr "Poznámky k aktualizaci"
+
+#~ msgid ""
+#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
+#~ "corrupted! This script also enhances the privilege tables but is not "
+#~ "supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Po aktualizaci ještě musíte spustit \"mysql_upgrade\", protože jinak by "
+#~ "se tabulky mohly narušit! Tento skript také rozšiřuje tabulky privilegií, "
+#~ "ovšem neměl by uživatelům přidat více práv, než měli dosud."
+
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "Také si pÅ™eÄtÄ›te http://www.mysql.com/doc/en/Upgrade.html"
+
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "MySQL se nainstaluje pouze v případě, že používáte nenumerické jméno "
+#~ "poÄítaÄe, které se dá pÅ™eložit pÅ™es soubor /etc/hosts. NapÅ™. když příkaz "
+#~ "\"hostname\" vrátí \"diamond\", tak v /etc/hosts musí existovat obdobný "
+#~ "řádek jako \"10.0.0.1 diamond\"."
+
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Bude vytvoÅ™en nový mysql uživatel \"debian-sys-maint\". Tento mysql úÄet "
+#~ "se používá ve startovacích, ukonÄovacích a cronových skriptech. Nemažte "
+#~ "jej."
+
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Nezapomeňte nastavit heslo pro úÄet administrátora MySQL! Používáte-li /"
+#~ "root/.my.cnf, vždy zde zadejte jak řádek \"user\", tak řádek \"password"
+#~ "\". Nikdy zde nezadávejte jenom heslo!"
+
+#~ msgid ""
+#~ "See /usr/share/doc/mysql-server-5.0/README.Debian for more information."
+#~ msgstr ""
+#~ "Více informací naleznete v /usr/share/doc/mysql-server-5.0/README.Debian."
+
+#~ msgid ""
+#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
+#~ "by all MySQL versions, not necessarily only the one you are about to "
+#~ "purge?"
+#~ msgstr ""
+#~ "Mám odstranit kompletní adresářový strom /var/lib/mysql, který se používá "
+#~ "pro všechny verze MySQL, tedy ne nutně pouze pro verzi, kterou se "
+#~ "chystáte vyÄistit?"
diff --git a/debian/po/da.po b/debian/po/da.po
new file mode 100644
index 00000000000..5e93e3f7b33
--- /dev/null
+++ b/debian/po/da.po
@@ -0,0 +1,283 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+#
+# Claus Hindsgaul <claus_h@image.dk>, 2005, 2006.
+# Claus Hindsgaul <claus.hindsgaul@gmail.com>, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-4.1\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 10:42+0100\n"
+"Last-Translator: Claus Hindsgaul <claus.hindsgaul@gmail.com>\n"
+"Language-Team: Danish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Ønsker du virkelig at nedgradere?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"Advarsel: Filen /var/lib/mysql/debian-*.flag eksisterer. Det tyder på at der "
+"tidligere har været installeret en højere version af mysql-server-pakken. "
+"Det kan ikke garanteres at denne version kan benytte data fra den højere "
+"version."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Vigtig bemærkning for NIS/YP-brugere!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"For at kunne bruge mysql skal du installere en bruger og en gruppe, der "
+"svarer til nedenstående, og sikre dig at /var/lib/mysql har de rigtige "
+"adgangsrettigheder (uid/gid kan afvige)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr "etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Fjern de databaser, der benyttes af samtlige MySQL-versioner?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Scriptet skal til at fjerne datamappen /var/lib/mysql. Hvis du regner "
+"medblot at installere en højere MySQL-version, eller hvis der allerede kører "
+"en anden MySQL-serverpakke, bør dataene bevares."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Skal MySQL startes under systemopstart?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL kan enten startes op under systemopstarten eller kun hvis du manuelt "
+"skriver '/etc/init.d/mysql start'."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Ny adgangskode for MySQL's \"root\"-bruger:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Det anbefales kraftigt, at du sætter en adgangskode for MySQL's "
+"administrationsbruger \"root\"."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "If you do not provide a password no changes will be made to the account."
+msgstr "Hvis du ikke angiver en adgangskode, vil kontoen ikke blive ændret."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Kunne ikke sætte adgangskoden for MySQL's \"root\"-bruger"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Det lader til, at der opstod en fejl, da adgangskoden for MySQL's "
+"administrationsbruger skulle ændres. Dette kan være sket, fordi brugeren "
+"allerede har en adgangskode, eller fordi der var problemer med at "
+"kommunikere med MySQL-serveren."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Når installationen afsluttes, bør du tjekke at kontoen er ordentligt "
+"beskyttet med en adgangskode (se README.Debian for yderligere oplysninger)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "Understøt MySQL-forbindelser fra maskiner, der kører Debian \"Sarge\" eller ældre?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"Den måde, adgangskoder blev gemt på tidligere, var ikke ret sikker. Dette er "
+"blevet forbedret med den bivirkning, at klienter (f.eks. PHP) fra maskiner, "
+"der kører Debian 3.1 Sarge ikke vil kunne forbindes til en konto, der er ny, "
+"eller hvis adgangskode er blevet ændret. Se /usr/share/doc/mysql-server-5.0/"
+"README.Debian."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "Kan ikke opgradere hvis der er ISAM-tabeller!"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "Nyere versioner af MySQL kan ikke længere benytte det gamle ISAM-"
+#~ "tabelformat, og det er derfor nødvendigt at konvertere dine tabeller til "
+#~ "f.eks. MyISAM forud for opgraderingen med \"mysql_convert_table_format\" "
+#~ "eller \"ALTER TABLE x ENGINE=MyISAM\". Installationen af mysql-server-5.0 "
+#~ "afbrydes nu. Skulle din gamle mysql-server-4.1 alligevel bliver "
+#~ "afinstalleret, så geninstallér den blot og konverter tabellerne."
+
+#~ msgid "Update Hints"
+#~ msgstr "Opdateringstips"
+
+#~ msgid ""
+#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
+#~ "corrupted! This script also enhances the privilege tables but is not "
+#~ "supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Du skal køre \"mysql_upgrade\" efter opgraderingen, da tabellerne eller "
+#~ "kan blive ødelagt! Dette script forbedrer også rettighedstabellerne, men "
+#~ "burde ikke give nogen bruger flere rettigheder, end han havde tidligere,"
+
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "Læs også http://www.mysql.com/doc/en/Upgrade.html"
+
+#~ msgid "Install Hints"
+#~ msgstr "Installationstips"
+
+#~ msgid ""
+#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
+#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
+#~ "have manually be restored."
+#~ msgstr ""
+#~ "Ved opgraderinger fra MySQL 3.23, der fulgte med Debian Woody, kan de "
+#~ "symbolske /var/lib/mysql or /var/log/mysql blive fjernet ved et uheld, og "
+#~ "må genskabes manuelt."
+
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "MySQL vil kun blive installeret, hvis du har et ikke-numerisk værtsnavn, "
+#~ "som kan slås op i filen /ets/hosts. Hvis f.eks. kommandoen \"hostname\" "
+#~ "svarer med \"mitvaertsnavn\", skal du have en linje a'la \"10.0.0.1 "
+#~ "mitvaertsnavn\" i /etc/hosts."
+
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Det vil blive oprettet en ny mysql-bruger, \"debian-sys-maint\". Denne "
+#~ "mysql-konto bruges i start/stop-cron-scripterne. Slet den ikke."
+
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Husk at sætte en ADGANGSKODE for MySQLs root-bruger! Hvis du bruger en /"
+#~ "etc/.my.cnf, så skriv altid \"user\"- og \"password\"-linjer ind her, "
+#~ "ikke kun adgangskoden!"
+
+#~ msgid ""
+#~ "See /usr/share/doc/mysql-server-5.0/README.Debian for more information."
+#~ msgstr ""
+#~ "Se /usr/share/doc/mysql-server-5.0/README.Debian for yderligere "
+#~ "oplysninger."
+
+#~ msgid ""
+#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
+#~ "by all MySQL versions, not necessarily only the one you are about to "
+#~ "purge?"
+#~ msgstr ""
+#~ "Skal jeg fjerne hele mappetræet /var/lib/mysql, som benyttes af alle "
+#~ "MySQL-versioner, ikke kun den version, du er ved at slette?"
+
+#~ msgid ""
+#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
+#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
+#~ "script is not supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "En sjælden gang imellem, f.eks. ved nye hovedversioner, sker det at "
+#~ "rettighedssystemet forbedres. For at gøre brug af dette, skal "
+#~ "mysql_fix_privilege_tables køres manuelt. Scriptet vil ikke give nogen "
+#~ "bruger flere rettigheder, end vedkommende havde tidligere,"
+
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 00000000000..60c9a984622
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,195 @@
+# translation of mysql-dfsg-5.0_5.0.32-6_de.po to german
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+#
+# Alwin Meschede <ameschede@gmx.de>, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0_5.0.32-6_de\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-19 12:23+0100\n"
+"Last-Translator: Alwin Meschede <ameschede@gmx.de>\n"
+"Language-Team: german <debian-l10n-german@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Möchten Sie wirklich eine ältere Version einspielen?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"WARNUNG: Die Datei /var/lib/mysql/debian-*.flag existiert. Dies zeigt an, "
+"dass früher ein MySQL-Server-Paket mit einer höheren Version installiert "
+"worden war. Es kann nicht garantiert werden, dass diese Version dessen Daten "
+"benutzen kann."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Wichtige Anmerkung für NIS/YP-Benutzer!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Um MySQL benutzen zu können, müssen Sie einen zum folgenden Eintrag "
+"äquivalenten Benutzer und Gruppe einrichten, und sich vergewissern, dass /"
+"var/lib/mysql die richtigen Rechte hat (die UID/GID dürfen sich "
+"unterscheiden)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Die von allen MySQL-Versionen benutzten Datenbanken entfernen?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Dieses Skript wird das Daten-Verzeichnis /var/lib/mysql entfernen. Falls "
+"geplant ist, nur eine höhere Version von MySQL zu installieren oder ein "
+"anderes mysql-server-Paket dieses bereits benutzt, sollten die Daten "
+"behalten werden."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Soll MySQL automatisch beim Booten starten?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"Der MySQL-Dienst kann entweder beim Systemstart oder nur nach der Eingabe "
+"von /etc/init.d/mysql start gestartet werden."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Neues Passwort für den MySQL »root«-Benutzer:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Es wird nachdrücklich empfohlen für den administrativen MySQL »root«-Benutzer "
+"ein Passwort zu setzen."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "If you do not provide a password no changes will be made to the account."
+msgstr ""
+"Falls Sie kein Passwort angeben, werden keine Änderungen am Konto "
+"vorgenommen."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Konnte für den MySQL-»root«-Benutzer kein Passwort setzen"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Es scheint, dass beim Passwort setzen für den administrativen MySQL-Benutzer "
+"ein Fehler aufgetreten ist. Dies könnte daran liegen, dass der Benutzer "
+"bereits ein Passwort hat oder dass es ein Problem mit der Kommunikation mit "
+"dem MySQL-Server gibt."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Nach Ende der Installation sollten Sie überprüfen, ob das Konto angemessen "
+"mit einem Passwort geschützt ist (lesen Sie README.Debian für weitere "
+"Informationen)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Sollen MySQL-Verbindungen von Rechnern mit Debian »Sarge« oder älter "
+"unterstützt werden?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"Die Art, wie Passwörter bislang gespeichert wurden, war nicht sehr sicher. "
+"Dies wurde verbessert, allerdings werden Clients (z. B. PHP) von Hosts mit "
+"Debian 3.1 Sarge sich nicht mehr mit MySQL-Konten verbinden können, die neu "
+"angelegt werden oder deren Passwort geändert wird. Siehe auch /usr/share/doc/"
+"mysql-server-5.0/README.Debian."
+
diff --git a/debian/po/es.po b/debian/po/es.po
new file mode 100644
index 00000000000..ddbb77d9607
--- /dev/null
+++ b/debian/po/es.po
@@ -0,0 +1,288 @@
+# mysql-dfsg-5 translation to spanish
+# Copyright (C) 2005 Software in the Public Interest, SPI Inc.
+# This file is distributed under the same license as the XXXX package.
+#
+# Changes:
+# - Initial translation
+# Jesus Aneiros , 2006
+# - Updated
+# Javier Fernandez-Sanguino, 2006
+# - Revision
+# Nacho Barrientos Arias
+# Fernando Cerezal
+# David Martínez Moreno
+# Ricardo Mones
+# Carlos Galisteo
+# Javier Fernandez-Sanguino
+#
+#
+# Traductores, si no conoce el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+# http://www.debian.org/intl/spanish/
+# especialmente las notas y normas de traducción en
+# http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+# /usr/share/doc/po-debconf/README-trans
+# o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Si tiene dudas o consultas sobre esta traducción consulte con el último
+# traductor (campo Last-Translator) y ponga en copia a la lista de
+# traducción de Debian al español (<debian-l10n-spanish@lists.debian.org>)
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0_5.0.24-3\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 12:20+0100\n"
+"Last-Translator: Javier Fernández-Sanguino <jfs@debian.org>\n"
+"Language-Team: Debian l10 Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "¿Desea realmente instalar una versión anterior?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"ATENCIÓN: El archivo /var/lib/mysql/debian-*.flag existe. Esto indica que ya "
+"se instaló una versión superior del paquete mysql-server. No se puede "
+"garantizar que esta versión pueda usar sus datos."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "¡Nota importante para los usuarios de NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Para utilizar mysql debe instalar un usuario y grupo equivalente al "
+"siguiente y asegurarse de que /var/lib/mysql tiene los permisos correctos "
+"(los valores del «uid» y del «gid» pueden ser diferentes)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr ""
+"¿Eliminar las bases de datos utilizadas por todas las versiones de MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Este guión va a eliminar el directorio de datos «/var/lib/mysql». Debería "
+"mantener los datos si tiene planificado instalar una versión de MySQL "
+"superior o ya hay un paquete «mysql-server» que los está utilizando."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "¿Debería ejecutarse MySQL al iniciarse el sistema?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL puede iniciarse en el momento de arranque del sistema o solamente si "
+"se escribe «/etc/init.d/mysql start»."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nueva cContraseña para el usuario «root» de MySQL:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Se recomienda que configure una contraseña para el usuario "
+"«root» (administrador) de MySQL."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "No se hará ningún cambio en la cuenta si no introduce una contraseña."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "No se pudo fijar la contraseña para el usuario «root» de MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Parece que se produjo un error mientras intentaba fijar la contraseña para "
+"el usuario administrador de MySQL. Esto puede haber sucedido porque el "
+"usuario ya tenía una contraseña o porque se produjo un error de comunicación "
+"con el servidor MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Debería confirmar que la contraseña está correctamente protegida con una "
+"contraseña cuando termine la instalación (consulte el fichero README.Debian "
+"si desea más información)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "¿Soportar las conexiones MySQL establecidadas desde sistemas que ejecutan Debian Sarge o versiones anteriores?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"No era muy segura la forma en la que se almacenaban las contraseñas antes. "
+"Este problema se ha mejorado con el inconveniente, sin embargo, de que "
+"clientes (por ejemplo, PHP) que ejecutan Debian 3.1 «Sarge» no podrán "
+"conectarse a cuentas que son nuevas o a las que se le haya cambiado la "
+"contraseña. Para más información consulte «/usr/share/doc/mysql-server-5.0/"
+"README.Debian»."
+
+#~ msgid "Install Hints"
+#~ msgstr "Sugerencias para la instalación"
+
+#~ msgid ""
+#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
+#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
+#~ "have manually be restored."
+#~ msgstr ""
+#~ "Al actualizar a la versión de MySQL 3.23, la vrsión proporcionada en "
+#~ "Debian Woody, se eliminan de manera accidental, los enlaces simbólicos a "
+#~ "«/var/lib/mysql» o «/var/log/mysql» y tienen que restaurarse manualmente."
+
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "Sólo se instalará MySQL si tiene un nombre de equipo que no sea una "
+#~ "dirección IP y pueda resolverse a través del archivo /etc/hosts. Por "
+#~ "ejemplo, si la orden «hostname» devuelve «MiNombreEquipo» entonces deberá "
+#~ "existir una línea «10.0.0.1 MiNombreEquipo» en dicho archivo."
+
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Se creará un nuevo usuario «debian-sys-maint». Esta cuenta de mysql se "
+#~ "utilizará en los scripts de inicio y parada y en los scripts «cron». No "
+#~ "la elimine."
+
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "¡Por favor, recuerde crear una CONTRASEÑA para el usuario «root» de "
+#~ "MySQL! ¡Si utiliza /root/.my.cnf debe escribir las líneas «user» y "
+#~ "«password» en dicho archivo, no incluya sólo la contraseña!"
+
+#~ msgid ""
+#~ "See /usr/share/doc/mysql-server-5.0/README.Debian for more information."
+#~ msgstr ""
+#~ "Revise /usr/share/doc/mysql-server-5.0/README.Debian para más información."
+
+#~ msgid ""
+#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
+#~ "by all MySQL versions, not necessarily only the one you are about to "
+#~ "purge?"
+#~ msgstr ""
+#~ "¿Debería eliminar el árbol de directorio /var/lib/mysql completo? Tenga "
+#~ "en cuenta que lo utilizan todas las versiones de MySQL y no sólo la que "
+#~ "está a punto de purgar."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "¡No se puede actualizar si ya hay tablas ISAM!"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "Las versiones recientes de MySQL ya no soportan el antiguo formato de "
+#~ "tabla ISAM. Antes de realizar la actualización es necesario convertir sus "
+#~ "tablas a por ejemplo, MyISAM, usando «mysql_convert_table_format» o "
+#~ "«ALTER TABLE x ENGINE=MyISAM». Se va a interrumpir ahora la instalación "
+#~ "de mysql-server-5.0. Si aún así su mysql-server-4.1 se elimina aún así, "
+#~ "puede reinstalarlo para convertir ese tipo de tablas."
diff --git a/debian/po/eu.po b/debian/po/eu.po
new file mode 100644
index 00000000000..ce50519e8be
--- /dev/null
+++ b/debian/po/eu.po
@@ -0,0 +1,163 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Piarres BEobide <pi@beobide.net>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0_5.0.26-3-debconf_eu\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-19 09:33+0100\n"
+"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
+"Language-Team: Euskara <Librezale@librezale.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 0.10.1\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Benetan bertsio zaharragora itzuli nahi duzu?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr "Oharra: /var/lib/mysql/debian-*.flag dago.. Honek aurretik bertsio berriagoko mysql-zerbitzari bat instalatu dela adierazten du. Ezin da ziurtatu bertsio honek datu horiek erabili ahal izango dituenik."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "NIS/YP erabiltzaileentzat ohar garrantzitsua!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Mysql erabili ahal izateko beharrezko erabiltzaile eta taldea sortu eta /var/"
+"lib/mysql-ek beharrezko baimenak dituela ziurtatu behar duzu (uid/gid-a "
+"ezberdina izan daiteke)"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "MySQL bertsio guztiek erabilitako databaseak ezabatu?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr "Script-a /var/lib/mysql data direktorioa ezabatzera doa. MySQL bertsio berriago bat instalatu behar bada edo beste mysql-server pakete bat berau erabiltzen ari bada, datuak mantendu egingo dira."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Sistema abiaraztean MySQL abiarazi behar al da?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr "MySQL abiaraztean automatikoki abiarazi daiteke edo eskuz /etc/init.d/mysql start' eginaz."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "MySQL \"root\" erabiltzailearen pasahitz berria:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Oso gomendagarria da MySQL administratzaile \"root\" erabiltzaileari "
+"pasahitz bat ezartzea."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "Ez baduzu pasahitzik ezartzen ez da aldaketarik egingo kontuan."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Ezinda MySQL \"root\" erabiltzailearen pasahitza ezarri"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr "Dirudienez errore bat gertatu da MySQL administratzaile kontuaren pasahitza ezartzean. Hau erabiltzaileak dagoeneko pasahitz bat duelako edo MySQL zerbitzariarekiko konexioan erroreak daudelako gertatu daiteke."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Instalazio amaitzean, kontua pasahitzez babesturik dagoela ziurtatu beharko "
+"zenuke (README.Debian irakurri xehetasun gehiagotarako)"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "Debian \"sarge\" edo zaharragoak erabiltzen duten ostalarietatik MySQL konexioak onartu?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr "Pasahitzak biltegiratzeko modua ez da oso ziurra. Hau hobetua izan da baina Debian 3.1 Sarge erabiltzaileak ezingo dira kontu berri edo pasahitza aldatu duten kontuetara konektatu. Begiratu /usr/share/doc/mysql-server-5.0/README.Debian argibide gehiagorako."
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644
index 00000000000..51196a0cba8
--- /dev/null
+++ b/debian/po/fr.po
@@ -0,0 +1,204 @@
+# translation of fr.po to French
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+# Christian Perrier <bubulle@debian.org>, 2004, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2006-11-23 20:47+0100\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"debian.org>\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Faut-il vraiment revenir à la version précédente ?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"Un fichier /var/lib/mysql/debian-*.flag est présent. Cela indique qu'une "
+"version plus récente du paquet mysql-server a été précédemment installée. Il "
+"n'est pas garanti que cette version puisse en utiliser les données."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Note importante pour les utilisateurs NIS/YP"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Pour utiliser MySQL, vous devez créer un utilisateur et un groupe similaires "
+"à ce qui suit et vérifier que /var/lib/mysql possède les permissions "
+"appropriées (les identifiants numériques de groupe et d'utilisateur, uid et "
+"gid, peuvent être différents)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd : mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group : mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql : drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Supprimer les bases de données de toutes les versions de MySQL ?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Les données du répertoire /var/lib/mysql seront supprimées. Si vous prévoyez "
+"d'installer une version plus récente de MySQL ou si un autre paquet mysql-"
+"server les utilise déjà, vous devriez les conserver."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Faut-il lancer MySQL au démarrage ?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL peut être lancé soit au démarrage, soit en entrant la commande « /etc/"
+"init.d/mysql start ». Choisissez cette option si vous voulez que MySQL soit "
+"lancé automatiquement."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Mot de passe du superutilisateur de MySQL :"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Il est très fortement recommandé d'établir un mot de passe pour le compte "
+"d'administration de MySQL (« root »)."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "Si ce champ est laissé vide, le mot de passe ne sera pas changé."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr ""
+"Impossible de changer le mot de passe de l'utilisateur « root » de MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Une erreur semble s'être produite lors du changement de mot de passe du "
+"compte d'administration. Un mot de passe existait peut-être déjà ou il n'a "
+"pas été possible de communiquer avec le serveur MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"À la fin de l'installation, veuillez vérifier que le compte possède bien un "
+"mot de passe (veuillez consulter le fichier README.Debian pour plus "
+"d'informations)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Gérer les connexions d'hôtes qui utilisent les versions Debian « sarge » ou antérieures  ?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"La méthode de stockage des mots de passe n'était pas très sûre dans les "
+"version précédentes de ce paquet. Cette méthode a été améliorée mais les "
+"modifications empêchent la connexion avec de nouveaux comptes ou des comptes "
+"dont le mot de passe a été modifié, pour les clients (p. ex. PHP) depuis des "
+"hôtes qui utilisent Debian 3.1 « sarge ». Veuillez consulter le fichier /usr/"
+"share/doc/mysql-server-5.0/README.Debian pour plus d'informations."
+
+#~ msgid "internal"
+#~ msgstr "interne"
+
+#~ msgid "Only internally used."
+#~ msgstr ""
+#~ "message utilisé en interne uniquement et que cet andouille de mainteneur "
+#~ "a marqué comme traduisible"
diff --git a/debian/po/gl.po b/debian/po/gl.po
new file mode 100644
index 00000000000..44fd58872cc
--- /dev/null
+++ b/debian/po/gl.po
@@ -0,0 +1,279 @@
+# Galician translation of mysql-dfsg-5.0's debconf templates
+# This file is distributed under the same license as the mysql-dfsg-5.0 package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 15:42+0100\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <trasno@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "¿Quere pasar a unha versión anterior?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"AVISO: O ficheiro /var/lib/mysql/debian-*.flag existe. Isto indica que se "
+"instalou antes un paquete mysql-server dunha versión maior. Non se pode "
+"garantir que esta versión poida empregar os seus datos."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Nota importante para usuarios de NIS/YP"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Para empregar mysql debe instalar un usuario e grupo equivalentes aos "
+"seguintes e asegurarse de que /var/lib/mysql teña os permisos correctos (o "
+"uid/gid poden ser diferentes)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:Servidor MySQL:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "¿Eliminar as bases de datos empregadas por tódalas versións de MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"O script vai eliminar o directorio de datos /var/lib/mysql. Se se planea "
+"instalar unha versión superior de MySQL ou se hai outro paquete mysql-server "
+"que o estean a empregar, debería conservar os datos."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "¿MySQL debería iniciarse co ordenador?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL pode arrincar automaticamente ao iniciar o ordenador ou só se escribe "
+"\"/etc/init.d/mysql start\" a man."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Novo contrasinal para o usuario \"root\" de MySQL"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Recoméndase encarecidamente que estabreza un contrasinal para o usuario "
+"administrativo \"root\" de MySQL."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "Se non fornece un contrasinal non se ha facer ningún cambio na conta."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Non se puido establecer o contrasinal para o usuario \"root\" de MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Semella que houbo un erro ao establecer o contrasinal para o usuario "
+"administrativo de MySQL. Puido ocorrer porque o usuario xa teña un "
+"contrasinal ou porque teña habido un problema ao se comunicar co servidor "
+"MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Ao rematar a instalación debería comprobar que a conta estea correctamente "
+"protexida cun contrsinal (consulte o ficheiro README.Debian para ter máis "
+"información)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"¿Soportar as conexións a MySQL de máquinas que empreguen Debian \"sarge\" ou "
+"anterior?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"O xeito no que se armacenaban os contrasinais non era moi seguro. Isto "
+"mellorouse co inconveniente de que os clientes (por exemplo, PHP) das "
+"máquinas que executen Debian 3.1 Sarge non se han poder conectar a contas "
+"novas ou nas que se cambiara o contrasinal. Consulte /usr/share/doc/mysql-"
+"server-5.0/README.Debian."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "Non se pode actualizar se hai táboas ISAM presentes"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "As versións recentes de MySQL xa non poden empregar o antigo formato de "
+#~ "táboas ISAM e é necesario converter as táboas a, por exemplo, MyISAM "
+#~ "antes de actualizar, empregando \"mysql_convert_table_format\" ou \"ALTER "
+#~ "TABLE x ENGINE=MyISAM\". A instalación de mysql-server-5.0 hase abortar "
+#~ "agora. Se o seu antigo mysql-server-4.1 se elimina volva instalalo para "
+#~ "converter esas táboas."
+
+#~ msgid "Update Hints"
+#~ msgstr "Consellos de actualización"
+
+#~ msgid ""
+#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
+#~ "corrupted! This script also enhances the privilege tables but is not "
+#~ "supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Ten que executar \"mysql_upgrade\" trala actualización; se non o fai, as "
+#~ "táboas poden quedar corrompidas. Este script tamén mellora as táboas de "
+#~ "privilexios, pero non se supón que vaia dar a ningún usuario máis "
+#~ "dereitos dos que tiña antes."
+
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "Lea tamén http://www.mysql.com/doc/en/Upgrade.html"
+
+#~ msgid "Install Hints"
+#~ msgstr "Consellos de instalación"
+
+#~ msgid ""
+#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
+#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
+#~ "have manually be restored."
+#~ msgstr ""
+#~ "Nas actualizacións desde MySQL 3.23, tal como se fornecía con Debian "
+#~ "Woody, as ligazóns simbólicas no lugar de /var/lib/mysql ou /var/log/"
+#~ "mysql quedan eliminadas por accidente e hai que as restaurar a man."
+
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "MySQL só se ha instalar se ten un nome de máquina non numérico que se "
+#~ "poida resolver polo ficheiro /etc/hosts. Por exemplo, se a orde \"hostname"
+#~ "\" devolve \"omeuordenador\" ten que haber unha liña coma \"10.0.0.1 "
+#~ "omeuordenador\"."
+
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Hase crear un novo usuario de mysql, \"debian-sys-maint\". Esta conta de "
+#~ "mysql emprégase nos scripts de inicio/parada e de cron. Non o borre."
+
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Lembre estabrecer sempre un contrasinal para o usuario administrador de "
+#~ "MySQL. Se emprega un ficheiro /root/.my.cnf escriba sempre nel as liñas "
+#~ "\"user\" e \"password\", nunca o contrasinal só."
+
+#~ msgid ""
+#~ "See /usr/share/doc/mysql-server-5.0/README.Debian for more information."
+#~ msgstr ""
+#~ "Consulte /usr/share/doc/mysql-server-5.0/README.Debian para máis "
+#~ "información."
+
+#~ msgid ""
+#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
+#~ "by all MySQL versions, not necessarily only the one you are about to "
+#~ "purge?"
+#~ msgstr ""
+#~ "¿Débese eliminar a árbore completa de directorios de /var/lib/mysql que "
+#~ "se emprega en tódalas versións de MySQL, non só necesariamente na que vai "
+#~ "eliminar?"
+
+#~ msgid ""
+#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
+#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
+#~ "script is not supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Moi de cando en vez, por exemplo nos cambios grandes de versión, "
+#~ "mellórase o sistema de privilexios. Para poder empregalo hai que executar "
+#~ "manualmente mysql_fix_privilege_tables. Suponse que o script non vai dar "
+#~ "a ningún usuario máis dereitos dos que xa tiña antes."
diff --git a/debian/po/it.po b/debian/po/it.po
new file mode 100644
index 00000000000..9a8741c5e90
--- /dev/null
+++ b/debian/po/it.po
@@ -0,0 +1,184 @@
+# Italian (it) translation of debconf templates for mysql-dfsg-5.0
+# Copyright (C) 2006 Software in the Public Interest
+# This file is distributed under the same license as the mysql-dfsg-5.0 package.
+# Luca Monducci <luca.mo@tiscali.it>, 2006, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0 5.0.32-6 italian debconf templates\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 15:09+0100\n"
+"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Si vuole realmente degradare?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"ATTENZIONE: Esiste un file /var/lib/mysql/debian-*.flag. Questo indica che "
+"precedenza è stata installata una versione più recente del pacchetto mysql-"
+"server. Non si garantisce che la versione che si sta installando possa usare "
+"i dati."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Nota per gli utenti NIS/YP"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Per usare mysql si deve installare un utente e un gruppo equivalenti ai "
+"seguenti e assicurarsi di avere su /var/lib/mysql i permessi corretti (uid e "
+"gid possono anche essere diversi)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Eliminare i database usati da tutte le versioni di MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Lo script sta per eliminare la directory con i dati /var/lib/mysql. Se ciò "
+"che si intende fare è un semplice aggiornamento a una nuova versione di "
+"MySQL oppure se è in uso un'altra di versione del pacchetto mysql-server, i "
+"dati non devono essere eliminati."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Far partire MySQL all'avvio del sistema?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL può partire automaticamente all'avvio del sistema oppure solo "
+"manualmente con il comando «/etc/init.d/mysql start»."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nuova password per l'utente «root» di MySQL:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Si raccomanda d'impostare una password per l'utente d'amministrazione "
+"(«root») di MySQL."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr ""
+"Se non si fornisce la password non saranno fatte modifiche all'account."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Impossible impostare la password per l'utente «root» di MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Pare che si sia verificato un errore durante l'impostazione della password "
+"per l'utente d'amministrazione di MySQL. Questo può essere dovuto al fatto "
+"che la password è già impostata oppure a un problema di comunicazione con il "
+"server MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Al termine dell'installazione si deve verificare che l'account root sia "
+"correttamente protetto da una password (si veda README.Debian per maggiori "
+"informazioni)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Supportare connessioni MySQL da macchine con Debian \"sarge\" o precedente?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"La modalità con la quale erano memorizzate le password in passato non era "
+"molto sicura; è stata migliorata con lo svantaggio che i client (per esempio "
+"PHP) presenti su una macchina con Debian 3.1 Sarge non saranno in grado di "
+"connettersi a un nuovo account oppure a un account la cui password sia stata "
+"cambiata. Si veda /usr/share/doc/mysql-server-5.0/README.Debian."
diff --git a/debian/po/ja.po b/debian/po/ja.po
new file mode 100644
index 00000000000..14d97ed977b
--- /dev/null
+++ b/debian/po/ja.po
@@ -0,0 +1,278 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0 5.0.32-6\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 22:25+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "本当ã«ãƒ€ã‚¦ãƒ³ã‚°ãƒ¬ãƒ¼ãƒ‰ã—ã¾ã™ã‹?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"警告: /var/lib/mysql/debian-*.flag ファイルãŒå­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚ã“ã‚Œã¯ã€ä»¥å‰ã«ã‚ˆ"
+"ã‚Šæ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® mysql-server パッケージãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ãŸã“ã¨ã‚’示"
+"ã—ã¾ã™ã€‚データをã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ä½¿ãˆã‚‹ã‹ã©ã†ã‹ã€ä¿è¨¼ã§ãã¾ã›ã‚“。"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "NIS/YP ユーザã¸é‡è¦ãªæ³¨æ„!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"mysql を利用ã™ã‚‹ã«ã¯ 以下ã®ãƒ¦ãƒ¼ã‚¶ã¨ã‚°ãƒ«ãƒ¼ãƒ—を作æˆã—ã€/var/lib/mysql ãŒæ­£ã—ã„"
+"権é™ã«ãªã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ (ãŠãらã uid/gid ãŒé•ã„ã¾"
+"ã™)。"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "å…¨ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® MySQL ã§åˆ©ç”¨ã•ã‚Œã¦ã„るデータベースを削除ã—ã¾ã™ã‹?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã¯ãƒ‡ãƒ¼ã‚¿ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª /var/lib/mysql を削除ã™ã‚‹ãŸã‚ã®ã‚‚ã®ã§"
+"ã™ã€‚å˜ã«æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® MySQL をインストールã—よã†ã¨ã—ã¦ã„ã‚‹ã€ã‚ã‚‹ã„ã¯åˆ¥"
+"ã® mysql-server パッケージを既ã«ä½¿ã£ã¦ã„ã‚‹å ´åˆã€ãƒ‡ãƒ¼ã‚¿ã¯ä¿æŒã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾"
+"ã™ã€‚"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "MySQL をシステム起動時ã«é–‹å§‹ã—ã¾ã™ã‹?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL ã®èµ·å‹•æ–¹æ³•ã«ã¤ã„ã¦ã€ã‚·ã‚¹ãƒ†ãƒ èµ·å‹•æ™‚ã«è‡ªå‹•çš„ã«é–‹å§‹ã™ã‚‹ã‹ã€ã‚ã‚‹ã„㯠'/etc/"
+"init.d/mysql start' ã¨æ‰‹ã§å…¥åŠ›ã—ãŸæ™‚ã®ã¿èµ·å‹•ã™ã‚‹ã‹ã‚’é¸ã¹ã¾ã™ã€‚"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "MySQL ã® \"root\" ユーザã«å¯¾ã™ã‚‹æ–°ã—ã„パスワード:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"MySQL を管ç†ã™ã‚‹ \"root\" ユーザã®ãƒ‘スワードを設定ã™ã‚‹ã“ã¨ã‚’å¼·ããŠå‹§ã‚ã—ã¾"
+"ã™ã€‚"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "パスワードを入力ã—ãªã„å ´åˆã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«å¯¾ã—ã¦å¤‰æ›´ã¯åŠ ãˆã‚‰ã‚Œã¾ã›ã‚“。"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "MySQL ã® \"root\" ユーザã®ãƒ‘スワードを設定ã§ãã¾ã›ã‚“"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"MySQL ã®ç®¡ç†è€…ユーザã«å¯¾ã—ã¦ãƒ‘スワードを設定ã—よã†ã¨ã—ãŸéš›ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸ"
+"よã†ã§ã™ã€‚ã“ã‚Œã¯æ—¢ã«ç®¡ç†è€…ユーザã«ãƒ‘スワードãŒè¨­å®šã•ã‚Œã¦ã„ãŸã‹ã€MySQL サーãƒ"
+"ã¨ã®æŽ¥ç¶šã«å•é¡ŒãŒã‚ã£ãŸãŸã‚ã ã¨æ€ã‚ã‚Œã¾ã™ã€‚"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"インストールãŒçµ‚了ã—ãŸéš›ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒãƒ‘スワードã§ãã¡ã‚“ã¨ä¿è­·ã•ã‚Œã¦ã„ã‚‹ã‹ã©"
+"ã†ã‹ã‚’確èªã—ã¦ãã ã•ã„ (詳細ã«ã¤ã„ã¦ã¯ README.Debian ã‚’å‚ç…§ã—ã¦ãã ã•ã„)。"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Debian \"Sarge\" ã‚ã‚‹ã„ã¯ãれよりもå¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒç¨¼åƒã—ã¦ã„るホストã‹ã‚‰ã® "
+"MySQL 接続をサãƒãƒ¼ãƒˆã—ã¾ã™ã‹?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"パスワードã®ä¿å­˜æ–¹æ³•ã¯ã€ã‚ã¾ã‚Šå®‰å…¨ãªæ–¹æ³•ã§è¡Œã‚ã‚Œã¦ã„ã¾ã›ã‚“ã§ã—ãŸã€‚ã“ã‚Œã¯æ”¹å–„"
+"ã•ã‚Œã¾ã—ãŸãŒã€Debian 3.1 Sarge ãŒç¨¼åƒã—ã¦ã„るホストã‹ã‚‰ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆ (PHP ãª"
+"ã©) ãŒæ–°ã—ã„アカウントやパスワードãŒå¤‰æ›´ã•ã‚ŒãŸã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ã¯æŽ¥ç¶šã§ããªããªã‚‹"
+"ã¨ã„ã†æ¬ ç‚¹ã‚‚ã§ã¦ã„ã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ /usr/share/doc/mysql-server-5.0/"
+"README.Debian ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "ISAM テーブルãŒã‚ã‚‹å ´åˆã¯ã‚¢ãƒƒãƒ—グレードã§ãã¾ã›ã‚“!"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "MySQL ã®æœ€è¿‘ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ä»¥å‰ã® ISAM テーブル形å¼ã¯åˆ©ç”¨ã§ããªããªã£ã¦ã„"
+#~ "ã¾ã™ã€‚ãã®ãŸã‚ã€ä¾‹ãˆã° \"mysql_convert_table_format\" ã‚ã‚‹ã„㯠\"ALTER "
+#~ "TABLE x ENGINE=MyISAM\" ã¨ã—ã¦ã‚¢ãƒƒãƒ—グレードå‰ã« MyISAM ã«ã‚³ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ã“"
+#~ "ã¨ãªã©ãŒå¿…è¦ã§ã™ã€‚mysql-server-5.0 ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’中断ã—ã¾ã™ã€‚以å‰ã® "
+#~ "mysql-server-4.1 ãŒå‰Šé™¤ã•ã‚Œã¦ã—ã¾ã£ãŸå ´åˆã§ã‚ã£ã¦ã‚‚ã€ãƒ†ãƒ¼ãƒ–ルをコンãƒãƒ¼ãƒˆ"
+#~ "ã™ã‚‹ãŸã‚ã«å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’ã—ã¦ãã ã•ã„。"
+
+#~ msgid "Install Hints"
+#~ msgstr "インストールã®ãƒ’ント"
+
+#~ msgid ""
+#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
+#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
+#~ "have manually be restored."
+#~ msgstr ""
+#~ "Debian Woody ã§ãƒªãƒªãƒ¼ã‚¹ã•ã‚ŒãŸ MySQL 3.23 ã‹ã‚‰ã®ã‚¢ãƒƒãƒ—グレードã§ã¯ã€/var/"
+#~ "lib/mysql ã‚ã‚‹ã„㯠/var/log/mysql ã®ä»£ã‚ã‚Šã«ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã¯å¶ç„¶ã«ã‚‚削"
+#~ "除ã•ã‚Œã¦ã—ã¾ã£ã¦ã„ã‚‹ã®ã§ã€æ‰‹å‹•ã§ã®ãƒªã‚¹ãƒˆã‚¢ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚"
+
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "MySQL 㯠/etc/hosts ファイル経由ã§è§£æ±ºã§ãる「数字ã®ã¿ã§æ§‹æˆã•ã‚Œã¦ãªã„ã€ãƒ›"
+#~ "ストåã®å ´åˆã®ã¿ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¾ã™ã€‚ã¤ã¾ã‚Šã€\"hostname\" コマンド㌠"
+#~ "\"myhostname\" ã‚’è¿”ã™ãªã‚‰ã€\"10.0.0.1 myhostname\" ã¨ã„ã†è¡ŒãŒ /etc/hosts "
+#~ "ファイルã«ã‚ã‚‹ã¯ãšã§ã™ã€‚"
+
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "æ–°è¦ã« mysql ユーザã¨ã—㦠\"debian-sys-maint\" ãŒä½œæˆã•ã‚Œã¾ã™ã€‚ã“ã® mysql "
+#~ "アカウント㯠start/stop 時㨠cron スクリプトã§åˆ©ç”¨ã•ã‚Œã¾ã™ã€‚消ã•ãªã„ã§ãã "
+#~ "ã•ã„。"
+
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "MySQL ã® root ユーザã«å¯¾ã—ã¦ã€Œãƒ‘スワードã®è¨­å®šã€ã‚’忘れãªã„ã§ãã ã•ã„! /"
+#~ "root/.my.cnf を使ã£ã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ä¸­ã® \"user\" 行㨠\"password"
+#~ "\" 行を記述ã—ã¦ãã ã•ã„。決ã—ã¦ãƒ‘スワードã ã‘ã§ã¯ã„ã‘ã¾ã›ã‚“!"
+
+#~ msgid ""
+#~ "See /usr/share/doc/mysql-server-5.0/README.Debian for more information."
+#~ msgstr ""
+#~ "詳細㯠/usr/share/doc/mysql-server-5.0/README.Debian ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+
+#~ msgid ""
+#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
+#~ "by all MySQL versions, not necessarily only the one you are about to "
+#~ "purge?"
+#~ msgstr ""
+#~ "ã“ã‚Œã‹ã‚‰ purge ã—よã†ã¨ã—ã¦ã„ã‚‹ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã ã‘ã§ã¯ç„¡ãã€å…¨ã¦ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® "
+#~ "MySQL ㌠/var/lib/mysql ディレクトリを使用ã—ã¦ã„ã¾ã™ã€‚ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’完"
+#~ "å…¨ã«å‰Šé™¤ã—ã¾ã™ã‹?"
+
+#~ msgid "Update Hints"
+#~ msgstr "æ›´æ–°ã®ãƒ’ント"
+
+#~ msgid ""
+#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
+#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
+#~ "script is not supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "ã¾ã‚Œã«ã€ã¤ã¾ã‚Šã¯æ–°ã—ã„メジャーãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ãŠã„ã¦ã€ç‰¹æ¨©ã‚·ã‚¹ãƒ†ãƒ ãŒæ”¹å–„ã•ã‚Œã¾"
+#~ "ã™ã€‚ã“れを行ã†ã«ã¯ã€mysql_fix_privilege_table を手動ã§å®Ÿè¡Œã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾"
+#~ "ã™ã€‚スクリプトã¯ã€ã©ã®ã‚ˆã†ãªãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦ã‚‚ã€ä»¥å‰ã«ä¿æŒã—ã¦ã„ãŸä»¥ä¸Šã®æ¨©é™"
+#~ "を与ãˆã‚‹ã‚ˆã†ã«ã¯ãªã£ã¦ã„ã¾ã›ã‚“。"
+
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "http://www.mysql.com/doc/ja/Upgrade.html ã‚‚å‚ç…§ã—ã¦ãã ã•ã„"
diff --git a/debian/po/nb.po b/debian/po/nb.po
new file mode 100644
index 00000000000..e7a58534863
--- /dev/null
+++ b/debian/po/nb.po
@@ -0,0 +1,179 @@
+# translation of mysql_nb.po to Norwegian Bokmål
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Bjørn Steensrud <bjornst@powertech.no>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql_nb\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 12:13+0100\n"
+"Last-Translator: Bjørn Steensrud <bjornst@powertech.no>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.2\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Er du sikker på at du vil nedgradere?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"ADVARSEL: Fila /var/lib/mysql/debian-*.flag finnes. Dette viser at en "
+"mysql-server-pakke med et høyere versjonsnummer har vært installert før. "
+"Det kan ikke garanteres at denne versjonen kan bruke data fra den høyere versjonen."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Viktig merknad for NIS/YP-brukere!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"For å bruke MySQL må du installere en bruker og gruppe tilsvarende den "
+"nedenfor og se til at /var/lib/mysql har riktige rettigheter (uid/gid kan "
+"være forskjellig)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Skal databasene brukt av alle MySQL-versjoner fjernes?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Dette skriptet skal til å fjerne data-mappa /var/lib/mysql. Denne mappa "
+"bør beholdes hvis det bare skal installeres en høyere MySQL-versjon, "
+"eller hvis en annen mysql-server-pakke allerede bruker den."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Skal MySQL startes ved maskinoppstart?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL kan startes automatisk når maskinen starter, eller bare hvis du "
+"skriver «/etc/init.d/mysql start»."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nytt passord for MySQLs «root»-bruker:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Det anbefales sterkt at du oppgir et passord for den administrative "
+"«root»-brukeren i MySQl."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "If you do not provide a password no changes will be made to the account."
+msgstr "Hvis du ikke oppgir et passord blir det ikke gjort noen endringer med kontoen."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Klarer ikke angi passord for MySQLs «root»-bruker"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Det ser ut til at det oppsto en feil mens det ble satt et passord for "
+"MySQLs administrative bruker. Dette kan være fordi brukeren allerede "
+"har et passord, eller fordi det var et kommunikasjonsproblem med "
+"MySQL-tjeneren."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Når installasjonen er ferdig bør det sjekkes at kontoen er ordentlig "
+"beskyttet med et passord (mer informasjon finnes i README.Debian)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Skal MySQL-tilkoblinger støttes fra vertsmaskiner som kjører Debian «sarge» "
+"eller eldre?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"Passord ble tidligere lagret på en lite sikker måte. Dette er nå forbedret, "
+"med den ulempen at klienter (f.eks. PHP) fra verter som kjører Debian 3.1 Sarge "
+"ikke vil kunne koble til en konto som er ny eller har fått endret passordet. "
+"Se /usr/share/doc/mysql-server-5.0/README.Debian."
+
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644
index 00000000000..13b3e8c02b8
--- /dev/null
+++ b/debian/po/nl.po
@@ -0,0 +1,187 @@
+# Dutch mysql-dfsg-5.0 po-debconf translation,
+# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mysql-dfsg-5.0 package.
+# Vincent Zweije <zweije@xs4all.nl>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0 5.0.30-1\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2006-02-19 10:20+0100\n"
+"Last-Translator: Thijs Kinkhorst <thijs@debian.org>\n"
+"Language-Team: Debian-Dutch <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Wilt u echt een oude versie herstellen?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"Waarschuwing: waarschijnlijk is een hogere versie van het mysql-server "
+"pakket geïnstalleerd geweest (het bestand /var/lib/mysql/debian-*.flag "
+"bestaat). Er is geen garantie dat de gegevensbestanden, bewerkt met die "
+"hogere versie, kunnen worden gebruikt met de versie van mysql die u nu "
+"installeert."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Belangrijke opmerking voor gebruikers van NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Om mysql te gebruiken dient u een gebruiker en groep aan te maken, "
+"gelijkwaardig aan onderstaand voorbeeld, en u dient ervoor te zorgen dat /"
+"var/lib/mysql de bijbehorende toegangsrechten heeft (uid en gid mogen anders "
+"zijn)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Databases verwijderen die door alle MySQL versies worden gebruikt?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Het script staat op het punt de datamap /var/lib/mysql te verwijderen. Als "
+"het plan alleen maar is om een hogere MySQL versie te installeren, of als "
+"een ander mysql-serverpakket de datamap al gebruikt, dan zou de data moeten "
+"worden behouden."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Moet MySQL starten als de computer start?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL kan automatisch starten bij het starten van de computer, of slechts "
+"wanneer u '/etc/init.d/mysql start' handmatig uitvoert."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nieuw wachtwoord voor de MySQL \"root\"-gebruiker:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"Het wordt sterk aangeraden een wachtwoord in te stellen voor de "
+"administratieve MySQL \"root\"-gebruiker."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr ""
+"Indien u geen wachtwoord opgeeft zal het account niet worden gewijzigd."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Kan het wachtwoord voor de MySQL \"root\"-gebruiker niet instellen"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Er lijkt een fout te zijn opgetreden bij het instellen van het wachtwoord "
+"van de MySQL administratieve gebruiker. Dat kan komen doordat de gebruiker "
+"al een wachtwoord heeft, of omdat er een probleem was bij het communiceren "
+"met de MySQL server."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Wanneer de installatie klaar is, dient u te verifiëren dat het account "
+"netjes beschermd is met een wachtwoord (zie README.Debian voor meer "
+"informatie)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Moet u MySQL-verbindingen accepteren van computers die Debian \"sarge\" "
+"of ouder draaien?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"De wijze waarop wachtwoorden werden bewaard was niet erg veilig. Dit is "
+"verbeterd, maar helaas zullen programma's van computers die Debian 3.1 Sarge "
+"draaien, geen verbinding meer kunnen maken met accounts die nieuw zijn, of "
+"waarvan het wachtwoord is gewijzigd. Zie /usr/share/doc/mysql-server-5.0/"
+"README.Debian."
diff --git a/debian/po/pt.po b/debian/po/pt.po
new file mode 100644
index 00000000000..cb330e1932b
--- /dev/null
+++ b/debian/po/pt.po
@@ -0,0 +1,198 @@
+# Portuguese translation for mysql-dfsg-5.0's debconf messages
+# Copyright (C) 2006 Miguel Figueiredo <elmig@debianpt.org>
+# This file is distributed under the same license as the mysql-dfsg-5.0 package.
+# Miguel Figueiredo <elmig@debianpt.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 10:38+0000\n"
+"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
+"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Deseja mesmo fazer downgrade?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"AVISO: o ficheiro /var/lib/mysql/debian-*.flag existe. Isto significa que "
+"antes foi instalado um pacote mysql-server com número de versão superior. "
+"Não pode ser garantido que esta versão utilize esses dados."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Nota importante para utilizadores de NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Para utilizar mysql e instalar um utilizador e grupo equivalentes para o "
+"seguinte e assegurar-se que /var/lib/mysql têm as permissões correctas (o "
+"uid/gid podem ser diferentes)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Remover as bases de dados utilizadas por todas as versões de MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"O script está prestes a remover o directório de dados /var/lib/mysql. Se o "
+"planeado é apenas instalar uma versão superior do MySQL ou se um pacote "
+"mysql-server diferente já os estão a utilizar, os dados devem ser mantidos."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "O MySQL deve iniciar no arranque?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"O MySQL pode iniciar automaticamente no arranque ou apenas se digitar '/etc/"
+"init.d/mysql start'."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nova password para o utilizador \"root\" do MySQL:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"É fortemente recomendado que defina uma password para o utilizador "
+"administrativo \"root\" do MySQL."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr ""
+"Se não disponibilizar uma password não serão feitas alterações nesta conta."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr ""
+"Não foi possível definir a password para o utilizador \"root\" do MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Parece que ocorreu um erro enquanto era definida a password para o "
+"utilizador administrativo do MySQL. Isto pode ter acontecido porque o "
+"utilizador já tem uma password, ou porque ocorreu um problema ao comunicar "
+"com o servidor MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Quando terminar a instalação, deve verificar se a conta está devidamente "
+"protegida com uma password (para mais informações veja README.Debian)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "Suportar ligações MySQL de máquinas que corram Debian \"sarge\" ou mais antigos?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"O modo como as passwords eram guardadas não era muito seguro. Isto foi "
+"melhorado com o senão que clientes (e.g. PHP) e máquinas que corram Debian "
+"3.1 Sarge não irão conseguir ligar às contas que sejam novas ou cuja "
+"password foi alterada. Veja /usr/share/doc/mysql-server-5.0/README.Debian."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "Não é possível actualizar se estiverem presentes tabelas ISAM!"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "As versões recentes de MySQL já não podem utilizar o antigo formato de "
+#~ "tabelas ISAM e é por isso necessário converter as suas tabelas pra e.g. "
+#~ "MyISAM antes da actualização, utilizando \"mysql_convert_table_format\" "
+#~ "ou \"ALTER TABLE x ENGINE=MyISAM\". A instalação de mysql-server-5.0 irá "
+#~ "agora ser cancelada. Se o seu antigo mysql-server-4.1 for removido apenas "
+#~ "reinstale para converter essas tabelas."
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
new file mode 100644
index 00000000000..51557b006e6
--- /dev/null
+++ b/debian/po/pt_BR.po
@@ -0,0 +1,339 @@
+# Brazilian Portuguese (pt_BR) debconf template translation for
+# Debian's mysql-dfsg source package.
+# Debian-BR Project <debian-l10n-portuguese@lists.debian.org>
+# André Luís Lopes, <andrelop@debian.org> , 2004
+# André Luís Lopes, <andrelop@debian.org> , 2006
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2006-12-19 20:32-0200\n"
+"Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Você realmente quer atualizar?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"AVISO: O arquivo /var/lib/mysql/debian-*.flag existe. Isso indica que um "
+"pacote mysql-server com uma versão maior foi instalado antes. Não há como "
+"garantir que esta versão poderá usar seus dados."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Aviso importante para usuários NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Para utilizar o MySQL, você deve instalar um usuário e um grupo equivalentes "
+"ao usuário e grupo a seguir para se certificar de que o diretório /var/lib/"
+"mysql possua as permissões correctas (o uid/gid podem ser diferentes)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Remover as bases de dados utilizadas por todas as versões do MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"O script está prestes a remover o diretório de dados /var/lib/mysql. Caso "
+"seja planejado somente instalar uma versão mais nova do MySQL ou caso um "
+"pacote mysql-server diferente já os esteja usando, os dados devem ser "
+"mantidos."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "O MySQL deve ser iniciado na inicialização da máquina?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"O MySQL pode ser iniciado automaticamente na inicialização da máquina ou "
+"apenas caso você use o comando '/etc/init.d/mysql start' manualmente."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nova senha para o usuário \"root\" do MySQL:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+"É altamente recomendado que você defina uma senha para o usuário "
+"administrativo \"root\" do MySQL."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "Caso você não forneça uma senha, nenhuma mudança será feita na conta."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Impossível definir senha para o usuário \"root\" do MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+"Parece que um erro cocrreu durante a definição da senha para o usuário "
+"administrativo do MySQL. Isso pode ter acontecido devido ao usuário já "
+"possuir uma senha definida ou devido a ocorrência de um problema de "
+"comunicação com o servidor MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+"Quando a instalação finalizar, você deverá verificar se a conta está "
+"apropriadamente protegida com uma senha (consulte o arquivo README.Debian "
+"para maiores informações)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+"Suportar conexões MySQL originadas de hosts executando o Debian \"sarge\" "
+"ou mais antigos ?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+"A maneira com que as senhas eram armazenadas não era muito segura. Isso foi "
+"melhorado, mas com o incômodo de que clientes (por exemplo, o PHP) em hosts "
+"executando o Debian 3.1 (Sarge) não serão capazes de conectar em contas "
+"novas ou para as quais as senhas tenham sido modificadas. Consulte /usr/"
+"share/doc/mysql-server-5.0/README.Debian."
+
+#~ msgid "internal"
+#~ msgstr "interno"
+
+#~ msgid "Only internally used."
+#~ msgstr "Somente utilizado internamente."
+
+#, fuzzy
+#~ msgid "Update Hints"
+#~ msgstr "Dicas de atualização"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
+#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
+#~ "script is not supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Raramente, por exemplo, em novas versões maiores, o sistema de "
+#~ "privilégios é melhorado. Para fazer uso disso, o script "
+#~ "mysql_fix_privilege_tables deve ser executado manualmente. O script não "
+#~ "atribuirá a nenhum usuário mais direitos do que os mesmos já possuíam "
+#~ "anteriormente."
+
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "Por favor, leia http://www.mysql.com/doc/en/Upgrade.html"
+
+#, fuzzy
+#~ msgid "Install Hints"
+#~ msgstr "Dicas de instalação"
+
+#, fuzzy
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "O MySQL será instalado somente caso você possua um nome de host NÃO "
+#~ "NUMÉRICO que possa ser resolvido através do arquivo /etc/hosts, ou seja, "
+#~ "caso o comando \"hostname\" retorne \"myhostname\", uma linha como "
+#~ "\"10.0.0.1 myhostname\" deverá existir no arquivo /etc/hosts."
+
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Um novo usuário MySQL de nome \"debian-sys-maint\" será criado. Essa "
+#~ "conta MySQL é utilizada pelos scripts de inicialização/parada e pelos "
+#~ "scripts cron. Não remova esse usuário."
+
+#, fuzzy
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Por favor, lembre-se de definir uma SENHA para o usuário root do MySQL ! "
+#~ "Caso você utilize um arquivo /root/.my.cnf, sempre inclua as linhas \"user"
+#~ "\" e \"password\" nesse arquivo, nunca somente a senha ! Consulte o "
+#~ "arquivo /usr/share/doc/mysql-server/README.Debian para mais informações."
+
+#~ msgid "Remove all databases?"
+#~ msgstr "Remover todas as bases de dados ?"
+
+#~ msgid ""
+#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
+#~ "mysql-server package?"
+#~ msgstr ""
+#~ "Todas as base de dados sob o diretório /var/lib/mysql devem ser removidas "
+#~ "quando você remover o pacote pacote mysql-server ?"
+
+#~ msgid ""
+#~ "Networking is disabled by default for security reasons. You can enable it "
+#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
+#~ msgstr ""
+#~ "O suporte ao funcionamento em rede está desativado por padrão por "
+#~ "questões de segurança. Você poderá ativá-lo comentando a opção 'skip-"
+#~ "networking' no arquivo /etc/mysql/my.cnf."
+
+#~ msgid "security and update notice"
+#~ msgstr "aviso de segurança e actualização"
+
+#~ msgid ""
+#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
+#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
+#~ "remove everything including the configuration) somewhen? (default is not)"
+#~ msgstr ""
+#~ "Devo remover tudo abaixo de /var/lib/mysql quando fizer o purge do pacote "
+#~ "mysql-server com o comando \"dpkg --purge mysql-server\" (ou seja, "
+#~ "remover tudo incluíndo a configuração)? (o padrão é não remover)"
+
+#~ msgid "Make MySQL reachable via network?"
+#~ msgstr "Fazer com que o MySQL seja acessível via rede?"
+
+#~ msgid ""
+#~ "Should MySQL listen on a network reachable TCP port? This is not "
+#~ "necessary for use on a single computer and could be a security problem."
+#~ msgstr ""
+#~ "O MySQL deve aguardar ligações numa porta TCP acessível via rede? Isto "
+#~ "não é necessário para uso num único computador e pode ser um problema de "
+#~ "segurança."
+
+#~ msgid "Enable chroot mode?"
+#~ msgstr "Activar o modo chroot?"
+
+#~ msgid ""
+#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
+#~ "that users cannot modify any files outside this directory. This improves "
+#~ "resistence against crackers, too, as they are not able to modify system "
+#~ "files."
+#~ msgstr ""
+#~ "O MySQL é capaz de se prender no diretório /var/lib/mysql_jail, assim os "
+#~ "utilizadores não poderão modificar ficheiros fora deste directório. Isto "
+#~ "aumenta também a resistência contra crackers, pois eles não poderão "
+#~ "modificar arquivos de sistema."
+
+#~ msgid "Please run mysql_fix_privilege_tables !"
+#~ msgstr "Por favor execute mysql_fix_privilege_tables !"
+
+#~ msgid ""
+#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
+#~ "other than root and mysql with mysql."
+#~ msgstr ""
+#~ "Permissões seguras para o diretório /var/lib/mysql serão asseguradas "
+#~ "substituíndo GIDs diferentes de root e mysql por mysql."
+
+#~ msgid ""
+#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
+#~ msgstr ""
+#~ "Instruções sobre como activar o suporte de SSL estão disponíveis no "
+#~ "directório /usr/share/doc/mysql-server/."
+
+#, fuzzy
+#~ msgid "mysql_fix_privileges_tables should be executed"
+#~ msgstr "mysql_fix_privileges_tables será executado"
+
+#, fuzzy
+#~ msgid ""
+#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
+#~ "system. To make use of it, some new fields must be added to the tables "
+#~ "in the \"mysql\" database. This will not happen automatically."
+#~ msgstr ""
+#~ "As últimas versões do MySQL possuem um sistema de privilégios melhorado e "
+#~ "mais refinado. Para utilizá-lo, alguns novos campos devem ser adicionados "
+#~ "as tabelas na base de dados \"mysql\". Isto é feito pelo script "
+#~ "mysql_fix_privileges_tables durante esta actualização independente do "
+#~ "servidor estar a correr ou não !"
+
+#~ msgid ""
+#~ "This script is not supposed to give any user more rights that he had "
+#~ "before, if you encounter such a case, please contact me."
+#~ msgstr ""
+#~ "Este script não deverá fornecer mais direitos a um utilizador além dos "
+#~ "quais ele já possua anteriormente. SE encontrar um caso desses, por favor "
+#~ "entre em contacto com o mantainer deste pacote Debian."
diff --git a/debian/po/ro.po b/debian/po/ro.po
new file mode 100644
index 00000000000..f344ab5eca0
--- /dev/null
+++ b/debian/po/ro.po
@@ -0,0 +1,193 @@
+# Romanian translation of mysql-dfsg.
+# Copyright (C) 2006 THE mysql-dfsg'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the mysql-dfsg package.
+#
+# Stan Ioan-Eugen <stan.ieugen@gmail.com>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: po-debconf://mysql-dfsg\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2006-12-20 21:27+0200\n"
+"Last-Translator: stan ioan-eugen <stan.ieugen@gmail.com>\n"
+"Language-Team: romanian <debian-l10n-romanian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Sunteţi sigur că doriţi să instalaţi o versiune mai veche?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"AVERTISMENT: Fişierul /var/lib/mysql/debian-*.flag există. Acest lucru "
+"indică faptul că anterior a fost instalată o versiune nouă a pachetului "
+"mysql-server. Nu se poate garanta că versiunea instalată acum poate folosi "
+"datele versiunii instalate anterior."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Notă importantă pentru utilizatorii NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Pentru a folosi mysql trebuie să adăugaţi un utilizator şi grup echivalent "
+"şi să vă asiguraţi că /var/lib/mysql are permisiunile stabilite corect (uid/"
+"gid pot aveavalori diferite)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr "/etc/passwd:\tmysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group:\tmysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql:\tdrwxr-xr-x\tmysql\tmysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Doriţi să ştergeţi bazele de date folosite de toate versiune MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+"Scriptul urmează să şteargă directorul de date /var/lib/mysql. Dacă plănuiţi "
+"doar să instalaţi o versiune nouă MySQL sau datele sunt folosite de către un "
+"alt pachet mysql-server, atunci ar trebui păstraţi datele."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Doriţi ca MySQL să pornească la initializarea sistemului?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL poate porni automat la iniţializarea sistemului sau doar dacă rulaţi "
+"comanda „/etc/init.d/mysql startâ€."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Noua parolă pentru utilizatorul „root†al MySQL:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr "Este recomandat să stabiliţi o parolă pentru utilizatorul administrativ „root†al MySQL."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr "Dacă nu introduceţi nici o parolă, nici o schimbare nu va fi luată în considerare."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Nu s-a putut stabili parola pentru utilizatorul „root†al MySQL"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr "Se pare că a intervenit o eroare în stabilirea parolei pentru utilizatorul administrativ "
+"al MySQL. Acest lucru se poate întâmpla dacă utilizatorul are deja o parolă, sau a existat o "
+"problemă în comunicarea cu serverul MySQL."
+
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr "După finalizarea instalării, ar trebui să verificaţi dacă contul este protejat"
+" cu o parolă (citiţi fişierul README.Debian pentru informaţii suplimentare)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "Suportaţi conexiuni MySQL de la staţii ce rulează sistemul Debian „sarge†sau mai vechi?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr "Modul în care erau păstrate parolele nu era foarte sigur. Acest lucru a fost îmbunătăţit"
+"cu dezajantajul că clienţii (de ex. PHP) de pe staţii ce rulează sistemul Debian 3.1 Sarge"
+"nu se vor putea conecta la conturi noi sau ale căror parole au fost schimbate. Citiţi "
+"/usr/share/doc/mysql-server-5.0/README.Debian."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "Nu se poate face actualizarea dacă sunt prezente tabele ISAM!"
+
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "Versiunile recente MySQL nu mai pot folosi vechiul format de tabele ISAM "
+#~ "şieste necesar să convertiţi tabelele dumneavoastră de ex. la formatul "
+#~ "MyISAM înainte de a face actualizarea folosind comanda "
+#~ "„mysql_convert_table_format†sau „ALTER TABLE x ENGINE=MyISAMâ€. "
+#~ "Instalarea mysql-server-5.0 va eşua. În caz că ştergeţiversiunea "
+#~ "anterioară mysql-server-4.1 va trebui reinstalată pentru a converti "
+#~ "tabelele."
diff --git a/debian/po/ru.po b/debian/po/ru.po
new file mode 100644
index 00000000000..1ab02e4437c
--- /dev/null
+++ b/debian/po/ru.po
@@ -0,0 +1,172 @@
+# translation of mysql-dfsg-5.0_5.0.32-6_ru.po to Russian
+# Russian messages:
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+# Ilgiz Kalmetev <translator@ilgiz.pp.ru>, 2003.
+# Yuriy Talakan' <yt@amur.elektra.ru>, 2005, 2006.
+# Yuriy Talakan' <yt@drsk.ru>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0_5.0.32-6_ru\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-19 11:28+0900\n"
+"Last-Translator: Yuriy Talakan' <yt@drsk.ru>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Ð’Ñ‹ дейÑтвительно желаете понизить верÑию?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+"Ð’ÐИМÐÐИЕ: Ðайден файл /var/lib/mysql/debian-*.flag. Это означает, что ранее "
+"был уÑтановлен пакет mysql-server более выÑокой верÑии. Ðевозможно "
+"гарантировать, что Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñможет иÑпользовать его данные."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Важное замечание Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ NIS/YP!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Чтобы иÑпользовать mysql, Ð’Ñ‹ должны уÑтановить Ñквивалентные Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ "
+"группу, как указано ниже и убедитьÑÑ, что /var/lib/mysql имеет правильные "
+"права (uid/gid могут отличатьÑÑ)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Удалить базы данных, иÑпользуемые вÑеми верÑиÑми MySQL?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr "Сценарий ÑобираетÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ директорию данных /var/lib/mysql. ЕÑли планируетÑÑ ÑƒÑтановить новую верÑию MySQL или еÑÑ‚ÑŒ другие пакеты mysql-server, иÑпользующие Ñту директорию, то данные надо Ñохранить."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "ЗапуÑкать MySQL при загрузке ÑиÑтемы?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL может запуÑкатьÑÑ Ð¿Ñ€Ð¸ загрузке ÑиÑтемы, либо только еÑли вы вручную "
+"введете команду '/etc/init.d/mysql start'. "
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Ðовый пароль Ð´Ð»Ñ MySQL Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"root\":"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr "Крайне рекомендуетÑÑ ÑƒÑтановить пароль Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтративного MySQL Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"root\"."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "If you do not provide a password no changes will be made to the account."
+msgstr "ЕÑли вы не зададите пароль, то ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ не будет изменена."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Ðевозможно задать пароль MySQL пользователю \"root\""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr "Ð’ процеÑÑе Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтративного MySQL Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка. Это могло произойти еÑли у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÐ¶Ðµ был задан пароль, или из-за проблем ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером MySQL."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr "Когда уÑтановка завершитÑÑ, вы должны убедитьÑÑ, что ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ защищена паролем (подробную информацию Ñм. в README.Debian)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "Ðужна поддержка подключений к MySQL Ñ Ð¼Ð°ÑˆÐ¸Ð½, работающих под Debian \"sarge\" или Ñтарше?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr "Метод Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±Ñ‹Ð» не очень безопаÑен. Это было Ñделано из-за того, клиенты (например, PHP) Ñ Ð¼Ð°ÑˆÐ¸Ð½, работающих под Debian 3.1 Sarge не Ñмогут подключитьÑÑ Ðº учетной запиÑи еÑли она новаÑ, или пароль был изменен. См. /usr/share/doc/mysql-server-5.0/README.Debian."
+
diff --git a/debian/po/sv.po b/debian/po/sv.po
new file mode 100644
index 00000000000..54ef9246236
--- /dev/null
+++ b/debian/po/sv.po
@@ -0,0 +1,225 @@
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# Developers do not need to manually edit POT or PO files.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-5.0 5.0.21-3\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2007-02-18 14:48+0100\n"
+"Last-Translator: Andreas Henriksson <andreas@fatal.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr "Vill du verkligen nedgradera?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a mysql-server package with a higher version has been installed before. It can not be guaranteed that this version can use its data."
+msgstr "VARNING: Filen /var/lib/mysql/debian-*.flag existerar. Detta betyder att paketet mysql-server med högre versionsnummer har installerats tidigare. Det kan inte garanteras att denna version kan använda dess data."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "Viktig notering för NIS/YP-användare!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "To use mysql you must install an equivalent user and group to the following and ensure yourself that /var/lib/mysql has the right permissions (the uid/gid may be different)."
+msgstr "För att använda MySQL måste du installera en motsvarande användare och grupp till följande och se till att /var/lib/mysql har korrekta rättigheter satta (uid/gid kan vara olika)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr "Ta bort databaserna som används av alla MySQL-versioner?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "The script is about to remove the data directory /var/lib/mysql. If it is planned to just install a higher MySQL version or if a different mysql-server package is already using it, the data should be kept."
+msgstr "Scriptet kommer strax ta bort data-katalogen /var/lib/mysql. Om det planerade var att bara installera en högre MySQL-version eller om ett annan mysql-server paket redan använde det, skall datan sparas."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "Ska MySQL startas när systemet startar upp?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "The MySQL can start automatically on boot time or only if you manually type '/etc/init.d/mysql start'."
+msgstr "MySQL kan startas när systemet startas upp eller endast om du manuellt skriver '/etc/init.d/mysql start'."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr "Nytt lösenord för MySQLs \"root\"-användare:"
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "It is highly recommended that you set a password for the MySQL administrative \"root\" user."
+msgstr "Det är starkt rekommenderat att du sätter ett lösenord för MySQLs administrativa \"root\"-användare."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "If you do not provide a password no changes will be made to the account."
+msgstr "Om du inte anger ett lösenord kommer inga ändringar att göras för kontot."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr "Lyckades inte sätta lösenord för MySQLs \"root\"-användare"
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "It seems an error occurred while setting the password for the MySQL administrative user. This may have happened because the user already has a password, or because there was a problem communicating with the MySQL server."
+msgstr "Det verkar som ett fel uppstod när det skulle sättas ett lösenord för MySQLs administrativa användare. Detta kan ha skett för att användaren redan har ett lösenord satt, eller på grund av problem med att kommunicera med MySQL-servern."
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "When installation finishes, you should verify that the account is properly protected with a password (see README.Debian for more information)."
+msgstr "När installationen är klar, bör du kontrollera så att kontot är riktigt skyddat av ett lösenord (läs README.Debian för mer information)."
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr "Behöver du MySQL-anslutningar från system som kör Debian \"Sarge\" eller äldre?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "The way passwords were stored was not very secure. This has been improved with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 Sarge will not be able to connect to account which are new or whose password have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr "Sättet som lösenorden lagrades på var inte särskilt säkert. Detta har förbättrats på bekostnad av att klienter (t.ex. PHP) från system som kör Debian 3.1 Sarge inte kan ansluta till konton som är nya eller vars lösenord har ändrats. Se /usr/share/doc/mysql-server-5.0/README.Debian."
+
+#~ msgid "Cannot upgrade if ISAM tables are present!"
+#~ msgstr "Kan inte uppgradera om ISAM-tabeller finns!"
+#~ msgid ""
+#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
+#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
+#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
+#~ "The installation of mysql-server-5.0 will now abort. In case your old "
+#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
+#~ "those tables."
+#~ msgstr ""
+#~ "Senaste versionerna av MySQL kan inte längre använda gamla ISAM-"
+#~ "tabellformatet och det är nödvändigt att konvertera dina tabeller till "
+#~ "exempelvis MyISAM före uppgradering med \"mysql_convert_table_format\" "
+#~ "eller \"ALTER TABLE x ENGINE=MyISAM\". Installationen av mysql-server-5.0 "
+#~ "kommer nu att avbrytas. Om ditt gamla mysql-server-4.1-paket tas bort är "
+#~ "det bara att installera om det för att konvertera de tabellerna."
+#~ msgid "Update Hints"
+#~ msgstr "Uppdateringstips"
+#~ msgid ""
+#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
+#~ "corrupted! This script also enhances the privilege tables but is not "
+#~ "supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Du måste köra \"mysql_upgrade\" efter uppgraderingen, annars kan "
+#~ "tabellerna vara skadade! Detta skript utökar även privilegietabellerna "
+#~ "men är inte tänkte att ge någon användare mer befogenhet än vad han hade "
+#~ "tidigare,"
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "Läs även http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgid "Install Hints"
+#~ msgstr "Installationstips"
+#~ msgid ""
+#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
+#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
+#~ "have manually be restored."
+#~ msgstr ""
+#~ "Vid uppgraderingar från MySQL 3.23 som skickades med Debian Woody har "
+#~ "symboliska länkar i /var/lib/mysql eller /var/log/mysql av misstag tagits "
+#~ "bort och måste manuellt återskapas."
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "MySQL kan endast installeras om du har ett icke-numeriskt värdnamn som "
+#~ "kan slås upp via filen /etc/hosts. Exempelvis om kommandot \"hostname\" "
+#~ "returnerar \"mittnamn\" så bör det finnas en rad som liknar \"10.0.0.1 "
+#~ "mittnamn\"."
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "En ny MySQL-användare kallad \"debian-sys-maint\" kommer att skapas. "
+#~ "Detta MySQL-konto används för start/stopp och cron-skript. Ta inte bort "
+#~ "det."
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Tänk på att sätta ett LÖSENORD för MySQL:s root-användare! Om du "
+#~ "använder /root/.my.cnf, skriv då alltid en \"user\"-rad och en \"password"
+#~ "\"-rad i den, aldrig med endast lösenordet!"
+#~ msgid ""
+#~ "See /usr/share/doc/mysql-server-5.0/README.Debian for more information."
+#~ msgstr ""
+#~ "Se /usr/share/doc/mysql-server-5.0/README.Debian för mer information."
+#~ msgid ""
+#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
+#~ "by all MySQL versions, not necessarily only the one you are about to "
+#~ "purge?"
+#~ msgstr ""
+#~ "Ska jag ta bort hela katalogträdet i /var/lib/mysql som används av alla "
+#~ "MySQL-versioner och inte bara för den som du nu kommer att rensa ut?"
+#~ msgid ""
+#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
+#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
+#~ "script is not supposed to give any user more rights that he had before,"
+#~ msgstr ""
+#~ "Sällan, exempelvis i nya större versioner, har behörighetssystemet "
+#~ "förbättrats. För att använda det måste skriptet "
+#~ "mysql_fix_privilege_tables köras manuellt. Skriptet är inte tänkt att ge "
+#~ "någon användare högre behörighet än han hade tidigare."
+
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 00000000000..e4ec4e95ca5
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,155 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
diff --git a/debian/po/tr.po b/debian/po/tr.po
new file mode 100644
index 00000000000..20b4df45b6e
--- /dev/null
+++ b/debian/po/tr.po
@@ -0,0 +1,290 @@
+# Turkish translation of mysql-server.
+# This file is distributed under the same license as the mysql-server package.
+# Gürkan Aslan <gurkan@iaslan.com>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mysql-dfsg-4.1\n"
+"Report-Msgid-Bugs-To: ch@debian.org\n"
+"POT-Creation-Date: 2007-02-16 22:27+0100\n"
+"PO-Revision-Date: 2004-06-05 08:53+0300\n"
+"Last-Translator: Gürkan Aslan <gurkan@iaslan.com>\n"
+"Language-Team: Turkish <debian-l10n-turkish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid "Do you really want to downgrade?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:1001
+msgid ""
+"WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates that a "
+"mysql-server package with a higher version has been installed before. It can "
+"not be guaranteed that this version can use its data."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "Important note for NIS/YP users!"
+msgstr "NIS/YP kullanıcıları için önemli not!"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"To use mysql you must install an equivalent user and group to the following "
+"and ensure yourself that /var/lib/mysql has the right permissions (the uid/"
+"gid may be different)."
+msgstr ""
+"Mysql'i kullanmak için aşağıdakiyle eşdeğer bir kullanıcı ve grup "
+"tanımlamalı, ve /var/lib/mysql izinlerinin uygun şekilde ayarlandığından "
+"emin olmalısınız (uid/gid farklı olabilir)."
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+msgstr ""
+"/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/etc/group: mysql:x:101:"
+msgstr "/etc/group: mysql:x:101:"
+
+#. Type: note
+#. Description
+#: ../mysql-server-5.0.templates:2001
+msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
+msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid "Remove the databases used by all MySQL versions?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:3001
+msgid ""
+"The script is about to remove the data directory /var/lib/mysql. If it is "
+"planned to just install a higher MySQL version or if a different mysql-"
+"server package is already using it, the data should be kept."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+msgid "Should MySQL start on boot?"
+msgstr "MySQL açılış sırasında başlatılsın mı?"
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:4001
+#, fuzzy
+msgid ""
+"The MySQL can start automatically on boot time or only if you manually type "
+"'/etc/init.d/mysql start'."
+msgstr ""
+"MySQL açılış sırasında veya '/etc/init.d/mysql start' komutunu vermeniz "
+"halinde elle başlatılabilir. Eğer açılışta otomatik olarak başlatılmasını "
+"istiyorsanız burada 'evet'i seçin."
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid "New password for MySQL \"root\" user:"
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"It is highly recommended that you set a password for the MySQL "
+"administrative \"root\" user."
+msgstr ""
+
+#. Type: password
+#. Description
+#: ../mysql-server-5.0.templates:5001
+msgid ""
+"If you do not provide a password no changes will be made to the account."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid "Unable to set password for MySQL \"root\" user"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"It seems an error occurred while setting the password for the MySQL "
+"administrative user. This may have happened because the user already has a "
+"password, or because there was a problem communicating with the MySQL server."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../mysql-server-5.0.templates:6001
+msgid ""
+"When installation finishes, you should verify that the account is properly "
+"protected with a password (see README.Debian for more information)."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid "Support MySQL connections from hosts running Debian \"sarge\" or older?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../mysql-server-5.0.templates:7001
+msgid ""
+"The way passwords were stored was not very secure. This has been improved "
+"with the drawback that clients (e.g. PHP) from hosts running Debian 3.1 "
+"Sarge will not be able to connect to account which are new or whose password "
+"have been changed. See /usr/share/doc/mysql-server-5.0/README.Debian."
+msgstr ""
+
+#, fuzzy
+#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
+#~ msgstr "Lütfen http://www.mysql.com/doc/en/Upgrade.html belgesini okuyun"
+
+#, fuzzy
+#~ msgid ""
+#~ "MySQL will only install if you have a non-numeric hostname that is "
+#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
+#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
+#~ "myhostname\"."
+#~ msgstr ""
+#~ "MySQL sadece /etc/hosts dosyası yoluyla çözülebilir NUMERİK OLMAYAN bir "
+#~ "makine adına sahipseniz kurulacaktır. Örneğin, eğer \"hostname\" komutu "
+#~ "\"makinem\" ismini döndürüyorsa, bu dosya içinde \"10.0.0.1 makinem\" "
+#~ "gibi bir satır olmalıdır."
+
+#, fuzzy
+#~ msgid ""
+#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
+#~ "is used in the start/stop and cron scripts. Don't delete."
+#~ msgstr ""
+#~ "Yeni mysql kullanıcısı \"debian-sys-maint\" yaratılacak. Bu hesap, "
+#~ "başlangıç betiklerinde ve cron içinde kullanılıyor. Bu hesabı silmeyin."
+
+#, fuzzy
+#~ msgid ""
+#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
+#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
+#~ "there, never only the password!"
+#~ msgstr ""
+#~ "Lütfen MySQL root kullanıcısı için bir PAROLA girmeyi unutmayın! Eğer /"
+#~ "root/.my.cnf kullanıyorsanız, \"user\" ve \"password\" satırlarını her "
+#~ "zaman buraya ekleyin, sadece parolayı değil! Daha fazla bilgi için /usr/"
+#~ "share/doc/mysql-server/README.Debian dosyasını okuyun."
+
+#, fuzzy
+#~ msgid ""
+#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
+#~ "mysql-server package?"
+#~ msgstr ""
+#~ "mysql-server paketi kaldırıldıktan sonra bütün veritabanları silinsin mi?"
+
+#~ msgid ""
+#~ "Networking is disabled by default for security reasons. You can enable it "
+#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
+#~ msgstr ""
+#~ "Ağ, öntanımlı olarak güvenlik gerekçeleriyle devre dışı bırakıldı. Bu "
+#~ "özelliği /etc/mysql/my.cnf dosyası içindeki \"skip-networking\" "
+#~ "seçeneğini kaldırarak etkinleştirebilirsiniz."
+
+#~ msgid "security and update notice"
+#~ msgstr "güvenlik ve güncelleme duyurusu"
+
+#~ msgid ""
+#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
+#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
+#~ "remove everything including the configuration) somewhen? (default is not)"
+#~ msgstr ""
+#~ "mysql-server paketini temizlemek için \"dpkg --purge mysql-server\" "
+#~ "komutunu kullandığınızda (yani yapılandırma dahil herşeyi silmek) /var/"
+#~ "lib/mysql altındaki herşeyi sileyim mi? (öntanımlı cevap hayır'dır)."
+
+#~ msgid "Please run mysql_fix_privilege_tables !"
+#~ msgstr "Lütfen mysql_fix_privilege_tables komutunu çalıştırın!"
+
+#~ msgid ""
+#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
+#~ "other than root and mysql with mysql."
+#~ msgstr ""
+#~ "/var/lib/mysql'in izinlerinin güvenli olmasını sağlamak amacıyla, buna "
+#~ "ait GID'leri root ve mysql'den farklı olacak şekilde değiştireceğim."
+
+#~ msgid ""
+#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
+#~ msgstr ""
+#~ "SSL desteğini nasıl etkinleştirebileceğinize ilişkin talimatlar /usr/"
+#~ "share/doc/mysql-server/ içinde."
+
+#~ msgid "mysql_fix_privileges_tables will be executed"
+#~ msgstr "mysql_fix_privileges_tables çalıştırılacak"
+
+#~ msgid ""
+#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
+#~ "system. To make use of it, some new fields must be added to the tables "
+#~ "in the \"mysql\" database. This is done by the "
+#~ "mysql_fix_privilege_tables script during this upgrade regardless of if "
+#~ "the server is currently running or not!"
+#~ msgstr ""
+#~ "En son MySQL sürümleri zenginleştirilmiş, daha ayrıntılandırılmış bir "
+#~ "ayrıcalık (privilege) sistemine sahiptir. Yeni sistemi kullanmak için, "
+#~ "\"mysql\" veritabanındaki tablolara bazı yeni alanlar eklenmelidir. Bu "
+#~ "işlem, sunucunun çalışıp çalışmamasına bağlı olmaksızın "
+#~ "mysql_fix_privilege_tables betiği tarafından bu yükseltme sırasında "
+#~ "yapılır."
+
+#~ msgid ""
+#~ "This script is not supposed to give any user more rights that he had "
+#~ "before, if you encounter such a case, please contact me."
+#~ msgstr ""
+#~ "Bu betiğin hiç bir kullanıcıya öncekinden daha fazla hak kazandırmadığı "
+#~ "varsayılıyor. Eğer bunun aksinde bir durumla karşılaşırsanız, lütfen "
+#~ "benimle bağlantıya geçin."
+
+#~ msgid "Make MySQL reachable via network?"
+#~ msgstr "MySQL network üzerinden ulaşılabilir olsun mu?"
+
+#~ msgid ""
+#~ "Should MySQL listen on a network reachable TCP port? This is not "
+#~ "necessary for use on a single computer and could be a security problem."
+#~ msgstr ""
+#~ "MySQL ağ üzerinde ulaşılabilen bir TCP portunu dinlesin mi? Tek olan bir "
+#~ "bilgisayar için bu ayar gerekli değildir ve bir güvenlik sorunu "
+#~ "oluÅŸturabilir."
+
+#~ msgid "Enable chroot mode?"
+#~ msgstr "chroot kipi etkinleÅŸtirilsin mi?"
+
+#~ msgid ""
+#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
+#~ "that users cannot modify any files outside this directory. This improves "
+#~ "resistence against crackers, too, as they are not able to modify system "
+#~ "files."
+#~ msgstr ""
+#~ "MySQL kendini /var/lib/mysql_jail dizinine hapsederek kullanıcıların bu "
+#~ "dizin dışındaki hiç bir dosyayı değiştirmemesini sağlayabilir. Bu "
+#~ "düzenleme, sistem dosyalarını değiştirmelerini engelleyeceğinden, "
+#~ "cracker'lara karşı dayanıklılığı arttırır."
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 00000000000..123cccac3f9
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,405 @@
+#!/usr/bin/make -f
+
+export SHELL = /bin/bash
+
+export DH_VERBOSE=1
+
+include debian/defs.mk
+
+changelog_values := $(shell dpkg-parsechangelog \
+ | awk '/^(Version|Source|Distribution):/ {print $$2}')
+PKGSOURCE := $(word 1, $(changelog_values))
+PKGVERSION := $(word 2, $(changelog_values))
+PKGDISTRO := $(word 3, $(changelog_values))
+PKGFLAVOR := $(shell echo $(PKGSOURCE) | perl -nle 's/mysql-(.*?)-\d+.*/$$1/ && print ')
+
+ifeq ("x$(MYSQL_FLAVOR)","x")
+ export MYSQL_FLAVOR=$(PKGFLAVOR)
+endif
+
+ifneq ("x$(MYSQL_FLAVOR)","x")
+ MYSQL_BRANDED_BASE_VERSION:=$(MYSQL_FLAVOR)-$(MYSQL_BASE_VERSION)
+ MYSQL_BRANDED_PREVIOUS_BASE_VERSION:=$(MYSQL_FLAVOR)-$(MYSQL_PREVIOUS_BASE_VERSION)
+else
+ ifeq ( "$(MYSQL_BRANDED_BASE_VERSION)","@MYSQL_BRANDED_BASE_VERSION@" )
+ MYSQL_BRANDED_BASE_VERSION:=$(MYSQL_BASE_VERSION)
+ MYSQL_BRANDED_PREVIOUS_BASE_VERSION:=$(MYSQL_PREVIOUS_BASE_VERSION)
+ else
+ MYSQL_BRANDED_BASE_VERSION:=$(MYSQL_BRANDED_BASE_VERSION)
+ MYSQL_BRANDED_PREVIOUS_BASE_VERSION:=$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION)
+ endif
+endif
+
+PACKAGE=mysql-$(MYSQL_BRANDED_BASE_VERSION)
+
+PWD=$(shell pwd)
+TMP=$(PWD)/debian/tmp/
+
+
+ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+
+MAKE_J = $(shell if grep -q processor.*3 /proc/cpuinfo; then echo "-j 4"; else echo ""; fi )
+
+ifeq ($(findstring $(ARCH),i386 sparc),$(ARCH))
+ USE_ASSEMBLER=--enable-assembler
+endif
+
+ifeq ($(findstring $(ARCH), arm),$(ARCH))
+ FOMIT_FRAME_POINTER=
+else
+ FOMIT_FRAME_POINTER=-fomit-frame-pointer
+endif
+
+# trying to raise stability on i386. See #116631
+# don't use it on ia64
+ifeq ($(findstring $(ARCH),i386),$(ARCH))
+ FNO_EXCEPTIONS=-fno-exceptions
+endif
+
+# This causes seg11 crashes if LDAP is used for groups in /etc/nsswitch.conf
+# so it is disabled by default although, according to MySQL, it brings >10%
+# performance gain if enabled. See #299382.
+ifeq ($(STATIC_MYSQLD), 1)
+ USE_STATIC_MYSQLD=--with-mysqld-ldflags=-all-static
+endif
+
+ifneq ("$(MYSQL_BUILD_TEST)","yes")
+ MYSQL_BUILD_TEST=no
+endif
+
+control-file:
+ @echo "## This file is autogenerated you want to edit control.in instead" > debian/control.tmp
+ sed -e "s/@MYSQL_BASE_VERSION@/$(MYSQL_BASE_VERSION)/g" \
+ -e "s/@MYSQL_BRANDED_BASE_VERSION@/$(MYSQL_BRANDED_BASE_VERSION)/g" \
+ -e "s/@VERSIONSTRING@/$(VERSIONSTRING)/g" \
+ -e "s/@MYSQL_PREVIOUS_BASE_VERSION@/$(MYSQL_PREVIOUS_BASE_VERSION)/g" \
+ -e "s/@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@/$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION)/g" \
+ -e "s/@MYSQL_SOURCE_BASE_VERSION@/$(MYSQL_SOURCE_BASE_VERSION)/g" \
+ -e "s/@SHARED_LIB_MAJOR_VERSION@/$(SHARED_LIB_MAJOR_VERSION)/g" \
+ -e "s/@NDB_SHARED_LIB_MAJOR_VERSION@/$(NDB_SHARED_LIB_MAJOR_VERSION)/g" \
+ debian/control.in >> debian/control.tmp
+ [ -e debian/control ] \
+ && cmp -s debian/control debian/control.tmp \
+ && rm -f debian/control.tmp && exit 0; \
+ mv debian/control.tmp debian/control
+
+
+missing:
+ ./BUILD/autorun.sh
+
+configure: configure-stamp
+configure-stamp:
+ @echo "RULES.configure-stamp"
+ dh_testdir
+
+ifneq ($(ARCH_OS),hurd)
+ @if [ ! -d /proc/self ]; then echo "/proc IS NEEDED" 1>&2; exit 1; fi
+endif
+
+ @cp debian/control debian/control.sav
+ ( \
+ CC="$(MYSQL_BUILD_CC)" \
+ CXX="$(MYSQL_BUILD_CXX)" \
+ BUILD_OPTS="${MYSQL_BUILD_OPTS:-''}" \
+ CFLAGS="${MYSQL_BUILD_CFLAGS:-'-DBIG_JOINS=1 -O2'}" \
+ CXXFLAGS="${MYSQL_BUILD_CXXFLAGS:-'-DBIG_JOINS=1 -felide-constructors -fno-rtti -O2'}" \
+ ./configure \
+ --build=${DEB_BUILD_GNU_TYPE} \
+ --host=${DEB_HOST_GNU_TYPE} \
+ \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --libexecdir=/usr/sbin \
+ --datadir=/usr/share \
+ --localstatedir=/var/lib/mysql \
+ --includedir=/usr/include \
+ --infodir=/usr/share/info \
+ --mandir=/usr/share/man \
+ \
+ --with-comment="MySQL Server (custom build)" \
+ --with-server-suffix="-custom" \
+ \
+ --enable-shared \
+ --enable-thread-safe-client \
+ $(USE_ASSEMBLER) \
+ --enable-local-infile \
+ \
+ --with-big-tables \
+ --with-unix-socket-path=/var/run/mysqld/mysqld.sock \
+ --with-mysqld-user=mysql \
+ $(USE_STATIC_MYSQLD) \
+ --without-bench \
+ --with-zlib-dir=bundled \
+ --with-ssl \
+ --with-readline \
+ --with-extra-charsets=all \
+ --with-innodb \
+ --with-blackhole-storage-engine \
+ --with-example-storage-engine \
+ \
+ --with-isam \
+ --with-archive-storage-engine \
+ --with-csv-storage-engine \
+ --with-federated-storage-engine \
+ --without-embedded-server \
+ --with-ndbcluster \
+ --with-ndb-shm \
+ --without-ndb-sci \
+ --without-ndb-test \
+ --with-ndb-docs \
+ $(MYSQL_BUILD_OPTS) \
+ )
+
+ @mv debian/control.sav debian/control
+
+ touch configure-stamp
+
+
+build: build-stamp
+build-stamp: configure
+ dh_testdir
+
+ $(MAKE) $(MAKE_J)
+
+ if [ -f sql/.libs/mysqld ] ; then \
+ nm --numeric-sort sql/.libs/mysqld > sql/mysqld.sym ; \
+ else \
+ nm --numeric-sort sql/mysqld > sql/mysqld.sym ; \
+ fi
+
+
+ if [ "${MYSQL_BUILD_TEST}" != "no" ] ; then \
+ ( cd mysql-test ;\
+ MTR_BUILD_THREAD=auto ; \
+ export MTR_BUILD_THREAD ; \
+ perl ./mysql-test-run.pl --force --report-features ; \
+ perl ./mysql-test-run.pl --force --ps-protocol ; \
+ true ) \
+ fi
+
+
+ touch build-stamp
+
+stamp-control:
+ # We have to prepare the various control files
+
+ echo "in stamp-control - BASE_VER==$(MYSQL_BASE_VERSION)"
+ # We have some naming inconsistencies here...
+ for f in debian/*.in debian/po/POTFILES.in.in ; do \
+ f2=`echo $$f | sed "s,BASE,$(MYSQL_BRANDED_BASE_VERSION),g;\
+ s,PREV,$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION),g;\
+ s,NLIB,$(NDB_SHARED_LIB_MAJOR_VERSION),g;\
+ s,SLIB,$(SHARED_LIB_MAJOR_VERSION),g;s,\.in$$,,"`; \
+ if [ $$f2 != debian/control -a $$f2 != debian/Makefile ]; then \
+ sed -e "s/@MYSQL_BASE_VERSION@/$(MYSQL_BASE_VERSION)/g" \
+ -e "s/@MYSQL_BRANDED_BASE_VERSION@/$(MYSQL_BRANDED_BASE_VERSION)/g" \
+ -e "s/@VERSIONSTRING@/$(VERSIONSTRING)/g" \
+ -e "s/@PRIORITY@/$(PRIORITY)/g" \
+ -e "s/@MYSQL_PREVIOUS_BASE_VERSION@/$(MYSQL_PREVIOUS_BASE_VERSION)/g" \
+ -e "s/@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@/$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION)/g" \
+ -e "s/@MYSQL_SOURCE_BASE_VERSION@/$(MYSQL_SOURCE_BASE_VERSION)/g" \
+ -e "s/@SHARED_LIB_MAJOR_VERSION@/$(SHARED_LIB_MAJOR_VERSION)/g" \
+ -e "s/@NDB_SHARED_LIB_MAJOR_VERSION@/$(NDB_SHARED_LIB_MAJOR_VERSION)/g" \
+ -e "s,@SCRIPTDIR@,/$(scriptdir),g" \
+ -e "s,@INFO@,$(findstring info, $(doc_dependencies)),g" \
+ <$$f >$$f2; \
+ fi; \
+ done
+ echo "MYSQL_BUILD_OPTS=$(MYSQL_BUILD_OPTS)" >> debian/defs.mk
+ echo "MYSQL_BUILD_CXXFLAGS=$(MYSQL_BUILD_CXXFLAGS)" >> debian/defs.mk
+ echo "MYSQL_BUILD_CFLAGS=$(MYSQL_BUILD_CFLAGS)" >> debian/defs.mk
+ echo "MYSQL_BUILD_CC=$(MYSQL_BUILD_CC)" >> debian/defs.mk
+ echo "MYSQL_BUILD_CXX=$(MYSQL_BUILD_CXX)" >> debian/defs.mk
+
+
+# depending on two files we expect to be in the root
+# to protect from accidentally deleting a whole bunch of
+# files somewhere else.
+clean: configure.in Makefile.am control-file
+
+ rm -f debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql.init
+
+ # We depend on this later, and delete the results in the mean time
+ $(MAKE) -f debian/rules stamp-control
+ dh_testdir
+ dh_testroot
+ rm -f configure-stamp
+ rm -f build-stamp
+
+ cp debian/defs.mk debian/defs.mk.sav
+ cp debian/control debian/control.sav
+ -make distclean
+ mv debian/defs.mk.sav debian/defs.mk
+ mv debian/control.sav debian/control
+
+ debconf-updatepo
+
+ for f in debian/*.in; do \
+ f2=`echo $$f | sed "s,BASE,$(MYSQL_BRANDED_BASE_VERSION),g;\
+ s,PREV,$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION),g;\
+ s,NLIB,$(NDB_SHARED_LIB_MAJOR_VERSION),g;\
+ s,SLIB,$(SHARED_LIB_MAJOR_VERSION),g;s,\.in$$,,"`; \
+ if [ $$f2 != debian/control -a $$f2 != debian/Makefile -a $$f2 != debian/defs.mk ]; then \
+ rm -f $$f2; \
+ fi; \
+ done
+ rm -f po/POTFILES.in
+
+ dh_clean -v
+
+
+
+install:
+install: build stamp-control
+ @echo "RULES.install"
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Sort of hackish way to make sure we have a init script
+ # for dh_installinit
+ cp support-files/mysql.server debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql.init
+
+ mkdir -p $(TMP)/usr/lib/mysql/mysqld.sym
+ cp sql/mysqld.sym $(TMP)/usr/lib/mysql/mysqld.sym
+
+ # TODO: need real man pages!
+ #for f in mysql mysqldump mysqlaccess mysqladmin mysqlshow myisam_ftdump myisamlog myisampack mysql_explain_log mysqld_multi mysqld_safe mysql_fix_privilege_tables mysql_upgrade mysql_tzinfo_to_sql mysql_zap perror replace safe_mysqld ; do touch $(TMP)/usr/share/man/man1/$$f.1 ; done
+ #for f in mysqld mysqlmanager ; do touch $(TMP)/usr/share/man/man8/$$f.8 ; done
+ # make install (trailing slash needed for innobase)
+ $(MAKE) install DESTDIR=$(TMP)/
+
+ # After installing, remove rpath to make lintian happy.
+ set +e; \
+ find ./debian/tmp/ -type f -print0 \
+ | xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \
+ | fgrep RPATH= \
+ | cut -d: -f 1 \
+ | xargs --no-run-if-empty chrpath -d; \
+ set -e
+
+ # libmysqlclient: move shared libraries (but not the rest like libheap.a & co)
+ mv $(TMP)/usr/lib/mysql/libmysqlclient* $(TMP)/usr/lib
+ mv $(TMP)/usr/lib/mysql/libndbclient* $(TMP)/usr/lib
+ perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient.la
+ perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient_r.la
+ perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libndbclient.la
+
+ # Check if our beloved versioned symbols are really there
+ if [ "`objdump -T $(TMP)/usr/lib/libmysqlclient.so.$(SHARED_LIB_MAJOR_VERSION).0.0 | grep -c libmysqlclient_$(SHARED_LIB_MAJOR_VERSION)`" -lt 500 ]; then \
+ echo "ERROR: versioned symbols are absent"; \
+ exit 1; \
+ fi
+ if [ "`objdump -T $(TMP)/usr/lib/libndbclient.so.$(NDB_SHARED_LIB_MAJOR_VERSION).0.0 | grep -c libndbclient_$(NDB_SHARED_LIB_MAJOR_VERSION)`" -lt 500 ]; then \
+ echo "ERROR: versioned symbols are absent from libndbclient"; \
+ exit 1; \
+ fi
+
+ # libmysqlclient-dev: forgotten header file since 3.23.25?
+ cp include/my_config.h $(TMP)/usr/include/mysql/
+ cp include/my_dir.h $(TMP)/usr/include/mysql/
+
+ # mysql-common: We now provide our own config file.
+ install -d $(TMP)/etc/mysql
+ install -m 0644 debian/additions/my.cnf $(TMP)/etc/mysql/my.cnf
+
+ pod2man scripts/mysqlhotcopy $(TMP)/usr/share/man/man1/mysqlhotcopy.1
+
+ # mysql-server
+ install -m 0755 scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe
+ mkdir -p $(TMP)/usr/share/doc/mysql-server-$(MYSQL_BRANDED_BASE_VERSION)/examples
+ mv $(TMP)/usr/share/mysql/*cnf $(TMP)/usr/share/doc/mysql-server-$(MYSQL_BRANDED_BASE_VERSION)/examples/
+ rm -vf $(TMP)/usr/share/mysql/mi_test_all* \
+ $(TMP)/usr/share/mysql/mysql-log-rotate \
+ $(TMP)/usr/share/mysql/mysql.server \
+ $(TMP)/usr/share/mysql/binary-configure
+
+ # we can't install *.pl into /usr/bin - so we have to rename it.
+ sed "s#filename => 'ndb_size.tmpl#filename => '/usr/share/mysql/ndb_size.tmpl#" < $(TMP)/usr/bin/ndb_size.pl > $(TMP)/usr/bin/ndb_size
+ cp -a mysql-test $(TMP)/usr/share/mysql/
+ cp -a sql-bench $(TMP)/usr/share/mysql/
+ # lintian overrides
+ mkdir -p $(TMP)/usr/share/lintian/overrides/
+ cp debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-server-$(MYSQL_BRANDED_BASE_VERSION)
+ cp debian/mysql-client-$(MYSQL_BRANDED_BASE_VERSION).lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-client-$(MYSQL_BRANDED_BASE_VERSION)
+
+ # For 4.1 -> 5.0 transition
+ d=$(TMP)/usr/share/mysql-common/internal-use-only/; \
+ mkdir -p $$d; \
+ cp debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql.init $$d/_etc_init.d_mysql; \
+ cp debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql-server.logrotate $$d/_etc_logrotate.d_mysql-server; \
+
+ dh_movefiles
+
+# Build architecture-independent files here.
+binary-indep: build install
+ @echo "RULES.binary-indep"
+ dh_testdir -i
+ dh_testroot -i
+ dh_installdebconf -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installmenu -i
+ dh_installlogrotate -i
+ dh_installinit -i
+ dh_installcron -i
+ dh_installman -i
+ dh_installinfo -i
+ dh_installlogcheck -i
+ dh_installchangelogs -i
+ dh_link -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_perl -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ @echo "RULES.binary-arch"
+ dh_testdir
+ dh_testroot
+
+ dh_installdebconf -a
+ dh_installdocs -a
+ dh_installexamples -a
+ dh_installmenu -a
+ dh_installlogrotate -a --name mysql-server
+ # Start mysql in runlevel 19 before 20 where apache, proftpd etc gets
+ # started which might depend on a running database server.
+ dh_installinit -a --name=mysql-storage -- defaults 19 21
+ dh_installinit -a --name=mysql -- defaults 19 21
+ dh_installinit -a --name=mysql-management -- defaults 20
+ dh_installcron -a --name mysql-server
+ dh_installman -a
+ dh_installinfo -a
+ dh_installlogcheck -a
+ dh_installchangelogs -a
+ dh_strip -a
+ dh_link -a # .so muss nach .so.1.2.3 installier werden!
+ dh_compress -a
+ dh_fixperms -a
+ dh_makeshlibs -a
+ dh_makeshlibs -plibmysqlclient$(SHARED_LIB_MAJOR_VERSION) -V"libmysqlclient$(SHARED_LIB_MAJOR_VERSION) (>= $(PKGVERSION))"
+ dh_makeshlibs -plibndbclient$(NDB_SHARED_LIB_MAJOR_VERSION) -V"libndbclient2 (>= $(PKGVERSION))"
+ dh_installdeb -a
+ dh_perl -a
+ dh_shlibdeps -a -l debian/libmysqlclient$(SHARED_LIB_MAJOR_VERSION)/usr/lib -L libmysqlclient$(SHARED_LIB_MAJOR_VERSION)
+ dh_shlibdeps -a -l debian/libndbclient$(NDB_SHARED_LIB_MAJOR_VERSION)/usr/lib -L libndbclient$(NDB_SHARED_LIB_MAJOR_VERSION)
+ dh_gencontrol -a
+ dh_md5sums -a
+ dh_builddeb -a
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: clean stamp-control control-file configure build binary binary-indep binary-arch install
+
+# vim: ts=8
diff --git a/debian/source.lintian-overrides.in b/debian/source.lintian-overrides.in
new file mode 100644
index 00000000000..22a9164cf66
--- /dev/null
+++ b/debian/source.lintian-overrides.in
@@ -0,0 +1,6 @@
+maintainer-script-lacks-debhelper-token debian/mysql-server-@MYSQL_BRANDED_BASE_VERSION@.postinst
+maintainer-script-lacks-debhelper-token debian/mysql-server-@MYSQL_BRANDED_BASE_VERSION@.postrm
+outdated-autotools-helper-file bdb/dist/config.sub 2002-07-03
+outdated-autotools-helper-file bdb/dist/config.guess 2002-07-23
+bad-distribution-in-changes-file sarge
+bad-distribution-in-changes-file etch
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 00000000000..35a12186d19
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,3 @@
+version=3
+opts="uversionmangle=s/-(rc|beta)/$1/" \
+ ftp://ftp.mysql.com/pub/mysql/src/mysql-([\d\.]*(?:-beta|-rc)?).tar.gz debian
diff --git a/extra/yassl/taocrypt/src/misc.cpp b/extra/yassl/taocrypt/src/misc.cpp
index 726d9e630e6..402645c93fd 100644
--- a/extra/yassl/taocrypt/src/misc.cpp
+++ b/extra/yassl/taocrypt/src/misc.cpp
@@ -192,27 +192,32 @@ bool HaveCpuId()
}
return true;
#else
- typedef void (*SigHandler)(int);
-
- SigHandler oldHandler = signal(SIGILL, SigIllHandler);
- if (oldHandler == SIG_ERR)
- return false;
-
- bool result = true;
- if (setjmp(s_env))
- result = false;
- else
+ word32 eax, ebx;
__asm__ __volatile
(
- // save ebx in case -fPIC is being used
- "push %%ebx; mov $0, %%eax; cpuid; pop %%ebx"
- :
+ /* Put EFLAGS in eax and ebx */
+ "pushf;"
+ "pushf;"
+ "pop %0;"
+ "movl %0,%1;"
+
+ /* Flip the cpuid bit and store back in EFLAGS */
+ "xorl $0x200000,%0;"
+ "push %0;"
+ "popf;"
+
+ /* Read EFLAGS again */
+ "pushf;"
+ "pop %0;"
+ "popf"
+ : "=r" (eax), "=r" (ebx)
:
- : "%eax", "%ecx", "%edx"
+ : "cc"
);
- signal(SIGILL, oldHandler);
- return result;
+ if (eax == ebx)
+ return false;
+ return true;
#endif
}
diff --git a/include/Makefile.am b/include/Makefile.am
index 15f1a83c79d..990954b7cbf 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -16,7 +16,7 @@
# MA 02111-1307, USA
# FIXME 'abi_check' should be in BUILT_SOURCES, disabled for now
-BUILT_SOURCES = $(HEADERS_GEN)
+BUILT_SOURCES = $(HEADERS_GEN) link_sources
HEADERS_GEN = mysql_version.h my_config.h
HEADERS_ABI = mysql.h mysql_com.h mysql_time.h \
my_list.h my_alloc.h typelib.h
@@ -48,9 +48,10 @@ EXTRA_DIST = mysql_h.ic
DISTCLEANFILES = sched.h $(CLEANFILES)
link_sources:
- -$(RM) -fr readline
+ -$(RM) -f readline openssl
@readline_h_ln_cmd@
@yassl_h_ln_cmd@
+ echo timestamp > link_sources
my_config.h: ../config.h
$(CP) ../config.h my_config.h
diff --git a/include/abi_check b/include/abi_check
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/include/abi_check
+++ /dev/null
diff --git a/include/my_global.h b/include/my_global.h
index 8b35f995a48..daecd74a80b 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -77,6 +77,13 @@
#endif
#endif /* _WIN32... */
+/* Make it easier to add conditionl code for windows */
+#ifdef __WIN__
+#define IF_WIN(A,B) (A)
+#else
+#define IF_WIN(A,B) (B)
+#endif
+
#ifndef EMBEDDED_LIBRARY
#ifdef WITH_NDB_BINLOG
#define HAVE_NDB_BINLOG 1
diff --git a/libmysql/Makefile.am b/libmysql/Makefile.am
index 38680c98d53..ebfe15774ff 100644
--- a/libmysql/Makefile.am
+++ b/libmysql/Makefile.am
@@ -70,6 +70,7 @@ link_sources:
@LN_CP_F@ $(top_srcdir)/sql/net_serv.cc net.c ; \
rm -f password.c; \
@LN_CP_F@ $(top_srcdir)/sql/password.c password.c
+ echo timestamp > link_sources
# This part requires GNUmake
#
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index dc6d658fcdf..c24c6ab52db 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -79,8 +79,11 @@ target_libadd = $(mysysobjects) $(mystringsobjects) $(dbugobjects) \
$(sql_cmn_objects) $(vio_objects) $(sqlobjects)
target_ldflags = -version-info @SHARED_LIB_VERSION@ @LD_VERSION_SCRIPT@
vio_objects= vio.lo viosocket.lo viossl.lo viosslfactories.lo
+
+BUILT_SOURCES = link_sources
+
CLEANFILES = $(target_libadd) $(SHLIBOBJS) \
- $(target)
+ $(target) $(BUILT_SOURCES)
DEFS = -DDEFAULT_CHARSET_HOME="\"$(MYSQLBASEdir)\"" \
-DDATADIR="\"$(MYSQLDATAdir)\"" \
-DDEFAULT_HOME_ENV=MYSQL_HOME \
@@ -103,8 +106,7 @@ clean-local:
`echo $(vio_objects) | sed "s;\.lo;.c;g"` \
`echo $(sql_cmn_objects) | sed "s;\.lo;.c;g"` \
$(CHARSET_SRCS) $(CHARSET_OBJS) \
- $(mystringsextra) $(mysysheaders) $(vioheaders)\
- ../linked_libmysql_sources ../linked_libmysql_r_sources \
+ $(mystringsextra) $(mysysheaders) $(vioheaders) \
net.c
conf_to_src_SOURCES = conf_to_src.c
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index 453407127d2..cef91899e62 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -179,11 +179,11 @@ endif
#libmysqld_la_LDFLAGS = -version-info @SHARED_LIB_VERSION@
#CLEANFILES = $(libmysqld_la_LIBADD) libmysqld.la
-# This is called from the toplevel makefile. If we can link now
-# to an existing file in source, we do that, else we assume it
-# will show up in the build tree eventually (generated file).
+BUILT_SOURCES = link_sources
+
+CLEANFILES = $(BUILT_SOURCES)
+
link_sources:
- set -x; \
for f in $(sqlsources); do \
rm -f $$f; \
if test -e $(top_srcdir)/sql/$$f ; \
@@ -217,12 +217,13 @@ link_sources:
done; \
fi; \
rm -f client_settings.h; \
- @LN_CP_F@ $(top_srcdir)/libmysql/client_settings.h client_settings.h
+ @LN_CP_F@ $(top_srcdir)/libmysql/client_settings.h \
+ client_settings.h; \
+ echo timestamp > link_sources
clean-local:
- rm -f `echo $(sqlsources) $(libmysqlsources) $(sqlstoragesources) $(storagesources) | sed "s;\.lo;.c;g"` \
- $(top_srcdir)/linked_libmysqld_sources; \
+ rm -f `echo $(sqlsources) $(libmysqlsources) $(sqlstoragesources) $(storagesources) | sed "s;\.lo;.c;g"`; \
rm -f client_settings.h
# Don't update the files from bitkeeper
diff --git a/libmysqld/examples/Makefile.am b/libmysqld/examples/Makefile.am
index f8c60ab3694..3e4769c564d 100644
--- a/libmysqld/examples/Makefile.am
+++ b/libmysqld/examples/Makefile.am
@@ -17,10 +17,10 @@ noinst_PROGRAMS = mysql
bin_PROGRAMS = mysqltest_embedded mysql_client_test_embedded
client_sources = $(mysqltest_embedded_SOURCES) $(mysql_SOURCES)
tests_sources = $(mysql_client_test_embedded_SOURCES)
-CLEANFILES = $(client_sources) $(tests_sources)
+BUILT_SOURCES = link_sources
+CLEANFILES = $(client_sources) $(tests_sources) $(BUILT_SOURCES)
link_sources:
- set -x; \
for f in $(client_sources); do \
rm -f $$f; \
@LN_CP_F@ $(top_srcdir)/client/$$f $$f; \
@@ -29,6 +29,7 @@ link_sources:
rm -f $$f; \
@LN_CP_F@ $(top_srcdir)/tests/$$f $$f; \
done
+ echo timestamp > link_sources
DEFS = -DEMBEDDED_LIBRARY
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir) \
diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc
index f0d143c4570..34e2ac1048a 100644
--- a/mysql-test/include/mix1.inc
+++ b/mysql-test/include/mix1.inc
@@ -415,7 +415,39 @@ DROP TABLE t1;
--source include/innodb_rollback_on_timeout.inc
+#
+# Bug #27210: INNODB ON DUPLICATE KEY UPDATE
+#
+
+set @save_qcache_size=@@global.query_cache_size;
+set @save_qcache_type=@@global.query_cache_type;
+set global query_cache_size=10*1024*1024;
+set global query_cache_type=1;
+connect (con1,localhost,root,,);
+connection con1;
+drop table if exists `test`;
+CREATE TABLE `test` (`test1` varchar(3) NOT NULL,
+ `test2` varchar(4) NOT NULL,PRIMARY KEY (`test1`))
+ ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678');
+disconnect con1;
+connect (con2,localhost,root,,);
+connection con2;
+select * from test;
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '1234')
+ ON DUPLICATE KEY UPDATE `test2` = '1234';
+select * from test;
+flush tables;
+select * from test;
+disconnect con2;
+connection default;
+drop table test;
+set global query_cache_type=@save_qcache_type;
+set global query_cache_size=@save_qcache_size;
+
--echo End of 5.0 tests
+
+
#
# Test of behaviour with CREATE ... SELECT
#
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl
index 2c563f23e5a..cdbd29148f9 100644
--- a/mysql-test/lib/mtr_cases.pl
+++ b/mysql-test/lib/mtr_cases.pl
@@ -354,6 +354,13 @@ sub collect_one_test_case($$$$$$$) {
next;
}
+ $value= mtr_match_prefix($opt, "--slave-num=");
+ if ( defined $value )
+ {
+ $tinfo->{'slave_num'}= $value;
+ next;
+ }
+
$value= mtr_match_prefix($opt, "--result-file=");
if ( defined $value )
{
diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl
index 53bf37bcc83..ac2e049a67c 100644
--- a/mysql-test/lib/mtr_process.pl
+++ b/mysql-test/lib/mtr_process.pl
@@ -1099,6 +1099,13 @@ sub mtr_kill_processes ($) {
foreach my $pid (@$pids)
{
+
+ if ($pid <= 0)
+ {
+ mtr_warning("Trying to kill illegal pid: $pid");
+ next;
+ }
+
foreach my $sig (15, 9)
{
last if mtr_im_kill_process([ $pid ], $sig, 10, 1);
diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl
index 78986674c62..016caa95889 100644
--- a/mysql-test/lib/mtr_report.pl
+++ b/mysql-test/lib/mtr_report.pl
@@ -296,6 +296,18 @@ sub mtr_report_stats ($) {
}
}
}
+
+ if ( $::opt_check_testcases )
+ {
+ # Look for warnings produced by mysqltest in testname.warnings
+ foreach my $test_warning_file
+ ( glob("$::glob_mysql_test_dir/r/*.warnings") )
+ {
+ $found_problems= 1;
+ print WARN "Check myqltest warnings in $test_warning_file\n";
+ }
+ }
+
if ( $found_problems )
{
mtr_warning("Got errors/warnings while running tests, please examine",
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 7f775bd0942..9ba1a1de31a 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -571,6 +571,7 @@ sub command_line_setup () {
'manual-debug' => \$opt_manual_debug,
'ddd' => \$opt_ddd,
'client-ddd' => \$opt_client_ddd,
+ 'manual-ddd' => \$opt_manual_ddd,
'debugger=s' => \$opt_debugger,
'client-debugger=s' => \$opt_client_debugger,
'strace-client' => \$opt_strace_client,
@@ -725,8 +726,6 @@ sub command_line_setup () {
{
$mysqld_variables{'port'}= 3306;
$mysqld_variables{'master-port'}= 3306;
- $opt_skip_ndbcluster= 1;
- $opt_skip_im= 1;
}
if ( $opt_comment )
@@ -1073,7 +1072,7 @@ sub command_line_setup () {
# On some operating systems, there is a limit to the length of a
# UNIX domain socket's path far below PATH_MAX, so try to avoid long
# socket path names.
- $sockdir = tempdir(CLEANUP => 0) if ( length($sockdir) > 80 );
+ $sockdir = tempdir(CLEANUP => 0) if ( length($sockdir) >= 80 );
$master->[0]=
{
@@ -1236,6 +1235,7 @@ sub command_line_setup () {
{
# Turn off features not supported when running with extern server
$opt_skip_rpl= 1;
+ $opt_skip_ndbcluster= 1;
# Setup master->[0] with the settings for the extern server
$master->[0]->{'path_sock'}= $opt_socket ? $opt_socket : "/tmp/mysql.sock";
@@ -2031,10 +2031,7 @@ sub environment_setup () {
$ENV{'MYSQL_FIX_SYSTEM_TABLES'}= $cmdline_mysql_fix_system_tables;
}
- if (!$opt_extern)
- {
- $ENV{'MYSQL_FIX_PRIVILEGE_TABLES'}= $file_mysql_fix_privilege_tables;
- }
+ $ENV{'MYSQL_FIX_PRIVILEGE_TABLES'}= $file_mysql_fix_privilege_tables;
# ----------------------------------------------------
# Setup env so childs can execute my_print_defaults
@@ -4857,8 +4854,7 @@ sub gdb_arguments {
if ( $opt_manual_gdb )
{
print "\nTo start gdb for $type, type in another window:\n";
- print "cd $glob_mysql_test_dir;\n";
- print "gdb -x $gdb_init_file $$exe\n";
+ print "gdb -cd $glob_mysql_test_dir -x $gdb_init_file $$exe\n";
# Indicate the exe should not be started
$$exe= undef;
@@ -4922,8 +4918,7 @@ sub ddd_arguments {
if ( $opt_manual_ddd )
{
print "\nTo start ddd for $type, type in another window:\n";
- print "cd $glob_mysql_test_dir;\n";
- print "ddd -x $gdb_init_file $$exe\n";
+ print "ddd -cd $glob_mysql_test_dir -x $gdb_init_file $$exe\n";
# Indicate the exe should not be started
$$exe= undef;
@@ -5142,6 +5137,8 @@ Options for debugging the product
running test(s)
manual-gdb Let user manually start mysqld in gdb, before running
test(s)
+ manual-ddd Let user manually start mysqld in ddd, before running
+ test(s)
master-binary=PATH Specify the master "mysqld" to use
slave-binary=PATH Specify the slave "mysqld" to use
strace-client Create strace output for mysqltest client
diff --git a/mysql-test/r/fix_priv_tabs.result b/mysql-test/r/fix_priv_tabs.result
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/mysql-test/r/fix_priv_tabs.result
+++ /dev/null
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 4d104c64fa9..8ba70ffd535 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -3177,3 +3177,28 @@ SELECT * FROM t1;
a
DDD
DROP TABLE t1;
+CREATE TABLE t1 (id int PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB
+AUTO_INCREMENT=42;
+INSERT INTO t1 VALUES (0),(347),(0);
+SELECT * FROM t1;
+id
+42
+347
+348
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=349 DEFAULT CHARSET=latin1
+CREATE TABLE t2 (id int PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t2 VALUES(42),(347),(348);
+ALTER TABLE t1 ADD CONSTRAINT t1_t2 FOREIGN KEY (id) REFERENCES t2(id);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`id`),
+ CONSTRAINT `t1_t2` FOREIGN KEY (`id`) REFERENCES `t2` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=349 DEFAULT CHARSET=latin1
+DROP TABLE t1,t2;
diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result
index e720c38ec8d..fcf70e6b741 100644
--- a/mysql-test/r/innodb_mysql.result
+++ b/mysql-test/r/innodb_mysql.result
@@ -387,6 +387,32 @@ a
2
5
drop table t1;
+set @save_qcache_size=@@global.query_cache_size;
+set @save_qcache_type=@@global.query_cache_type;
+set global query_cache_size=10*1024*1024;
+set global query_cache_type=1;
+drop table if exists `test`;
+Warnings:
+Note 1051 Unknown table 'test'
+CREATE TABLE `test` (`test1` varchar(3) NOT NULL,
+`test2` varchar(4) NOT NULL,PRIMARY KEY (`test1`))
+ENGINE=InnoDB DEFAULT CHARSET=latin1;
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678');
+select * from test;
+test1 test2
+tes 5678
+INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '1234')
+ON DUPLICATE KEY UPDATE `test2` = '1234';
+select * from test;
+test1 test2
+tes 1234
+flush tables;
+select * from test;
+test1 test2
+tes 1234
+drop table test;
+set global query_cache_type=@save_qcache_type;
+set global query_cache_size=@save_qcache_size;
End of 5.0 tests
CREATE TABLE t1 (a int, b int);
insert into t1 values (1,1),(1,2);
diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result
index 61d04deef51..57e1f2e4ef6 100644
--- a/mysql-test/r/mysql.result
+++ b/mysql-test/r/mysql.result
@@ -174,4 +174,6 @@ ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyrils_superlonghostnam
1
ERROR at line 1: DELIMITER cannot contain a backslash character
ERROR at line 1: DELIMITER cannot contain a backslash character
+1
+1
End of 5.0 tests
diff --git a/mysql-test/r/mysql_upgrade.result b/mysql-test/r/mysql_upgrade.result
index e24580632c9..95aa795a2eb 100644
--- a/mysql-test/r/mysql_upgrade.result
+++ b/mysql-test/r/mysql_upgrade.result
@@ -22,64 +22,9 @@ mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
-@hadGrantPriv:=1
-1
-1
-1
-@hadShowDbPriv:=1
-1
-1
-1
-@hadCreateViewPriv:=1
-1
-1
-1
-@hadCreateRoutinePriv:=1
-1
-1
-1
-@hadCreateUserPriv:=1
-1
-1
-1
-@hadEventPriv :=1
-1
-1
-1
-@hadTriggerPriv :=1
-1
-1
-1
Run it again - should say already completed
-@hadGrantPriv:=1
-1
-1
-1
-@hadShowDbPriv:=1
-1
-1
-1
-@hadCreateViewPriv:=1
-1
-1
-1
-@hadCreateRoutinePriv:=1
-1
-1
-1
-@hadCreateUserPriv:=1
-1
-1
-1
-@hadEventPriv :=1
-1
-1
-1
-@hadTriggerPriv :=1
-1
-1
-1
-Force should run it regardless of wheter it's been run before
+This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
+Force should run it regardless of wether it's been run before
mysql.columns_priv OK
mysql.db OK
mysql.event OK
@@ -103,31 +48,33 @@ mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
-@hadGrantPriv:=1
-1
-1
-1
-@hadShowDbPriv:=1
-1
-1
-1
-@hadCreateViewPriv:=1
-1
-1
-1
-@hadCreateRoutinePriv:=1
-1
-1
-1
-@hadCreateUserPriv:=1
-1
-1
-1
-@hadEventPriv :=1
-1
-1
-1
-@hadTriggerPriv :=1
-1
-1
-1
+CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
+GRANT ALL ON *.* TO mysqltest1@'%';
+Run mysql_upgrade with password protected account
+mysql.columns_priv OK
+mysql.db OK
+mysql.event OK
+mysql.func OK
+mysql.general_log OK
+mysql.help_category OK
+mysql.help_keyword OK
+mysql.help_relation OK
+mysql.help_topic OK
+mysql.host OK
+mysql.ndb_binlog_index OK
+mysql.plugin OK
+mysql.proc OK
+mysql.procs_priv OK
+mysql.servers OK
+mysql.slow_log OK
+mysql.tables_priv OK
+mysql.time_zone OK
+mysql.time_zone_leap_second OK
+mysql.time_zone_name OK
+mysql.time_zone_transition OK
+mysql.time_zone_transition_type OK
+mysql.user OK
+DROP USER mysqltest1@'%';
+Run mysql_upgrade with a non existing server socket
+mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
+FATAL ERROR: Upgrade failed
diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result
index 0188fe87bbd..c4ed4d8b19d 100644
--- a/mysql-test/r/mysqltest.result
+++ b/mysql-test/r/mysqltest.result
@@ -277,6 +277,9 @@ let $A = changed value of A;
# Content of $B is: initial value of B
let $B = changed value of B;
# Content of $A is: changed value of A
+var2: content of variable 1
+var3: content of variable 1 content of variable 1
+length of var3 is longer than 0
mysqltest: At line 1: Missing required argument 'filename' to command 'source'
mysqltest: At line 1: Could not open file ./non_existingFile
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep
@@ -538,4 +541,35 @@ hello
hello
mysqltest: At line 1: test of die
Some output
+create table t1( a int, b char(255), c timestamp);
+insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 2", '2007-04-05');
+insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 3", '2007-04-05');
+select * from t1;
+a b c
+1 Line 1 2007-04-05 00:00:00
+2 Part 2 2007-04-05 00:00:00
+1 Line 1 2007-04-05 00:00:00
+2 Part 3 2007-04-05 00:00:00
+select * from t1;
+a b c
+1 Line 1 2007-04-05 00:00:00
+1 Line 1 2007-04-05 00:00:00
+2 Part 2 2007-04-05 00:00:00
+2 Part 3 2007-04-05 00:00:00
+select * from t1;
+select '';
+
+
+select "h";
+h
+h
+select "he";
+he
+he
+select "hep";
+hep
+hep
+select "hepp";
+hepp
+hepp
End of tests
diff --git a/mysql-test/r/ndb_dd_alter.result b/mysql-test/r/ndb_dd_alter.result
index d101e6de791..e4bd96ab384 100644
--- a/mysql-test/r/ndb_dd_alter.result
+++ b/mysql-test/r/ndb_dd_alter.result
@@ -77,6 +77,16 @@ t1 CREATE TABLE `t1` (
`a10` blob,
PRIMARY KEY (`a1`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Smallint PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Int NOT NULL AT=FIXED ST=DISK
+a3 Bigint NOT NULL AT=FIXED ST=DISK
+a4 Char(10;latin1_swedish_ci) NULL AT=FIXED ST=DISK
+a5 Decimal(5,1) NULL AT=FIXED ST=DISK
+a6 Time NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Datetime NULL AT=FIXED ST=DISK
+a9 Varchar(255;latin1_swedish_ci) NULL AT=FIXED ST=DISK
+a10 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
SELECT * FROM test.t1 ORDER BY a1;
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
1 2 2000000001 aaa1 34.2 04:03:02 2006-01-01 1971-05-28 16:55:03 bbbbbbbbbbbbb1 binary data
@@ -166,6 +176,16 @@ t1 CREATE TABLE `t1` (
`a10` blob,
PRIMARY KEY (`a1`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Smallint PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Int NOT NULL AT=FIXED ST=DISK
+a3 Bigint NOT NULL AT=FIXED ST=DISK
+a4 Char(10;latin1_swedish_ci) NULL AT=FIXED ST=DISK
+a5 Decimal(5,1) NULL AT=FIXED ST=DISK
+a6 Time NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Datetime NULL AT=FIXED ST=DISK
+a9 Varchar(255;latin1_swedish_ci) NULL AT=FIXED ST=DISK
+a10 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
SELECT * FROM test.t1 ORDER BY a1;
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
1 2 2000000001 aaa1 34.2 04:03:02 2006-01-01 1971-05-28 16:55:03 bbbbbbbbbbbbb1 binary data
@@ -242,6 +262,16 @@ t1 CREATE TABLE `t1` (
`a10` blob,
PRIMARY KEY (`a1`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Smallint PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Int NOT NULL AT=FIXED ST=DISK
+a3 Bigint NOT NULL AT=FIXED ST=DISK
+a4 Char(10;latin1_swedish_ci) NULL AT=FIXED ST=DISK
+a5 Decimal(5,1) NULL AT=FIXED ST=DISK
+a6 Time NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Datetime NULL AT=FIXED ST=DISK
+a9 Varchar(255;latin1_swedish_ci) NULL AT=FIXED ST=DISK
+a10 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
ALTER TABLE test.t1 ENGINE=MyISAM;
SHOW CREATE TABLE test.t1;
Table Create Table
@@ -335,6 +365,39 @@ a1 a2 a3 hex(a4) a5 a6 a7 a8
19 20.2345 20000019 0 1 23475 2006-01-01 07:04:00
20 21.2345 20000020 0 1 23476 2006-01-01 07:04:00
ALTER TABLE test.t1 ADD a9 DATETIME, ADD a10 TINYTEXT, ADD a11 MEDIUMTEXT, ADD a12 LONGTEXT, ADD a13 TEXT, ADD a14 BLOB;
+SHOW CREATE TABLE test.t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a1` int(11) NOT NULL,
+ `a2` float DEFAULT NULL,
+ `a3` double DEFAULT NULL,
+ `a4` bit(1) DEFAULT NULL,
+ `a5` tinyint(4) DEFAULT NULL,
+ `a6` bigint(20) DEFAULT NULL,
+ `a7` date DEFAULT NULL,
+ `a8` time DEFAULT NULL,
+ `a9` datetime DEFAULT NULL,
+ `a10` tinytext,
+ `a11` mediumtext,
+ `a12` longtext,
+ `a13` text,
+ `a14` blob,
+ PRIMARY KEY (`a1`)
+) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Float NULL AT=FIXED ST=DISK
+a3 Double NULL AT=FIXED ST=DISK
+a4 Bit(1) NULL AT=FIXED ST=DISK
+a5 Tinyint NULL AT=FIXED ST=DISK
+a6 Bigint NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Time NULL AT=FIXED ST=DISK
+a9 Datetime NULL AT=FIXED ST=DISK
+a10 Text(256,0;0;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a11 Text(256,4000;8;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a12 Text(256,8000;4;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a13 Text(256,2000;16;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a14 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
SELECT a1, a2,a3,hex(a4),a5,a6,a7,a8,a9,a10,a11,a12,a13 FROM test.t1 ORDER BY a1;
a1 a2 a3 hex(a4) a5 a6 a7 a8 a9 a10 a11 a12 a13
1 2.2345 20000001 0 1 23457 2006-01-01 07:04:00 1971-05-28 16:55:03 abc abcdefg LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL Text Field
@@ -357,25 +420,6 @@ a1 a2 a3 hex(a4) a5 a6 a7 a8 a9 a10 a11 a12 a13
18 19.2345 20000018 0 1 23474 2006-01-01 07:04:00 1971-05-28 16:55:03 abc abcdefg LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL Text Field
19 20.2345 20000019 0 1 23475 2006-01-01 07:04:00 1971-05-28 16:55:03 abc abcdefg LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL Text Field
20 21.2345 20000020 0 1 23476 2006-01-01 07:04:00 1971-05-28 16:55:03 abc abcdefg LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL Text Field
-SHOW CREATE TABLE test.t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a1` int(11) NOT NULL,
- `a2` float DEFAULT NULL,
- `a3` double DEFAULT NULL,
- `a4` bit(1) DEFAULT NULL,
- `a5` tinyint(4) DEFAULT NULL,
- `a6` bigint(20) DEFAULT NULL,
- `a7` date DEFAULT NULL,
- `a8` time DEFAULT NULL,
- `a9` datetime DEFAULT NULL,
- `a10` tinytext,
- `a11` mediumtext,
- `a12` longtext,
- `a13` text,
- `a14` blob,
- PRIMARY KEY (`a1`)
-) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
ALTER TABLE test.t1 ADD INDEX a2_i (a2), ADD INDEX a3_i (a3);
SHOW CREATE TABLE test.t1;
Table Create Table
@@ -398,6 +442,20 @@ t1 CREATE TABLE `t1` (
KEY `a2_i` (`a2`),
KEY `a3_i` (`a3`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Float NULL AT=FIXED ST=MEMORY
+a3 Double NULL AT=FIXED ST=MEMORY
+a4 Bit(1) NULL AT=FIXED ST=DISK
+a5 Tinyint NULL AT=FIXED ST=DISK
+a6 Bigint NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Time NULL AT=FIXED ST=DISK
+a9 Datetime NULL AT=FIXED ST=DISK
+a10 Text(256,0;0;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a11 Text(256,4000;8;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a12 Text(256,8000;4;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a13 Text(256,2000;16;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a14 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
ALTER TABLE test.t1 DROP INDEX a2_i;
SHOW CREATE TABLE test.t1;
Table Create Table
@@ -419,6 +477,20 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`a1`),
KEY `a3_i` (`a3`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Float NULL AT=FIXED ST=DISK
+a3 Double NULL AT=FIXED ST=MEMORY
+a4 Bit(1) NULL AT=FIXED ST=DISK
+a5 Tinyint NULL AT=FIXED ST=DISK
+a6 Bigint NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Time NULL AT=FIXED ST=DISK
+a9 Datetime NULL AT=FIXED ST=DISK
+a10 Text(256,0;0;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a11 Text(256,4000;8;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a12 Text(256,8000;4;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a13 Text(256,2000;16;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a14 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
TRUNCATE TABLE test.t1;
SHOW CREATE TABLE test.t1;
Table Create Table
@@ -440,6 +512,20 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`a1`),
KEY `a3_i` (`a3`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
+a2 Float NULL AT=FIXED ST=DISK
+a3 Double NULL AT=FIXED ST=MEMORY
+a4 Bit(1) NULL AT=FIXED ST=DISK
+a5 Tinyint NULL AT=FIXED ST=DISK
+a6 Bigint NULL AT=FIXED ST=DISK
+a7 Date NULL AT=FIXED ST=DISK
+a8 Time NULL AT=FIXED ST=DISK
+a9 Datetime NULL AT=FIXED ST=DISK
+a10 Text(256,0;0;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a11 Text(256,4000;8;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a12 Text(256,8000;4;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a13 Text(256,2000;16;latin1_swedish_ci) NULL AT=FIXED ST=MEMORY
+a14 Blob(256,2000;16) NULL AT=FIXED ST=MEMORY
ALTER TABLE test.t1 DROP a14;
ALTER TABLE test.t1 DROP a13;
ALTER TABLE test.t1 DROP a12;
@@ -460,6 +546,12 @@ t1 CREATE TABLE `t1` (
`a5` tinyint(4) DEFAULT NULL,
KEY `a3_i` (`a3`)
) /*!50100 TABLESPACE ts STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=latin1
+a1 Int NOT NULL AT=FIXED ST=DISK
+a2 Float NULL AT=FIXED ST=DISK
+a3 Double NULL AT=FIXED ST=MEMORY
+a4 Bit(1) NULL AT=FIXED ST=DISK
+a5 Tinyint NULL AT=FIXED ST=DISK
+$PK Bigunsigned PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
DROP TABLE test.t1;
ALTER TABLESPACE ts
DROP DATAFILE './table_space/datafile.dat'
diff --git a/mysql-test/r/ndb_single_user.result b/mysql-test/r/ndb_single_user.result
index 732acc6f000..54ae99b2f4f 100644
--- a/mysql-test/r/ndb_single_user.result
+++ b/mysql-test/r/ndb_single_user.result
@@ -2,7 +2,66 @@ use test;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
create table t1 (a int key, b int unique, c int) engine ndb;
ERROR HY000: Can't create table 'test.t1' (errno: 299)
+CREATE LOGFILE GROUP lg1
+ADD UNDOFILE 'undofile.dat'
+INITIAL_SIZE 16M
+UNDO_BUFFER_SIZE = 1M
+ENGINE=NDB;
+ERROR HY000: Failed to create LOGFILE GROUP
+show warnings;
+Level Code Message
+Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
+Error 1516 Failed to create LOGFILE GROUP
create table t1 (a int key, b int unique, c int) engine ndb;
+CREATE LOGFILE GROUP lg1
+ADD UNDOFILE 'undofile.dat'
+INITIAL_SIZE 16M
+UNDO_BUFFER_SIZE = 1M
+ENGINE=NDB;
+CREATE TABLESPACE ts1
+ADD DATAFILE 'datafile.dat'
+USE LOGFILE GROUP lg1
+INITIAL_SIZE 12M
+ENGINE NDB;
+ERROR HY000: Failed to create TABLESPACE
+show warnings;
+Level Code Message
+Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
+Error 1516 Failed to create TABLESPACE
+DROP LOGFILE GROUP lg1
+ENGINE =NDB;
+ERROR HY000: Failed to drop LOGFILE GROUP
+show warnings;
+Level Code Message
+Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
+Error 1517 Failed to drop LOGFILE GROUP
+CREATE TABLESPACE ts1
+ADD DATAFILE 'datafile.dat'
+USE LOGFILE GROUP lg1
+INITIAL_SIZE 12M
+ENGINE NDB;
+ALTER TABLESPACE ts1
+DROP DATAFILE 'datafile.dat'
+ENGINE NDB;
+ERROR HY000: Failed to alter: DROP DATAFILE
+show warnings;
+Level Code Message
+Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
+Error 1521 Failed to alter: DROP DATAFILE
+ALTER TABLESPACE ts1
+DROP DATAFILE 'datafile.dat'
+ENGINE NDB;
+DROP TABLESPACE ts1
+ENGINE NDB;
+ERROR HY000: Failed to drop TABLESPACE
+show warnings;
+Level Code Message
+Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
+Error 1517 Failed to drop TABLESPACE
+DROP TABLESPACE ts1
+ENGINE NDB;
+DROP LOGFILE GROUP lg1
+ENGINE =NDB;
insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);
create table t2 as select * from t1;
select * from t1 where a = 1;
@@ -25,11 +84,12 @@ update t1 set b=b+100;
update t1 set b=b+100 where a > 7;
delete from t1;
insert into t1 select * from t2;
+create unique index new_index on t1 (b,c);
drop table t1;
ERROR 42S02: Unknown table 't1'
-create index new_index on t1 (c);
+create index new_index_fail on t1 (c);
ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from NDBCLUSTER
-insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);
+insert into t1 values (21,21,0),(22,22,0),(23,23,0),(24,24,0),(25,25,0),(26,26,0),(27,27,0),(28,28,0),(29,29,0),(210,210,0);
ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from NDBCLUSTER
select * from t1 where a = 1;
ERROR HY000: Got error 299 'Operation not allowed or aborted due to single user mode' from NDBCLUSTER
diff --git a/mysql-test/r/openssl_1.result b/mysql-test/r/openssl_1.result
index c6e077b2857..c01a9643e8a 100644
--- a/mysql-test/r/openssl_1.result
+++ b/mysql-test/r/openssl_1.result
@@ -51,6 +51,9 @@ SSL error: Unable to get private key from ''
mysqltest: Could not open connection 'default': 2026 SSL connection error
SSL error: Unable to get certificate from ''
mysqltest: Could not open connection 'default': 2026 SSL connection error
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
Variable_name Value
Ssl_cipher DHE-RSA-AES256-SHA
End of 5.0 tests
@@ -75,3 +78,108 @@ SSL_CALLBACK_CACHE_HITS 0.0000000
DROP TABLE thread_status;
SET GLOBAL event_scheduler=0;
End of 5.1 tests
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher AES128-SHA
+SHOW STATUS LIKE 'Ssl_cipher';
+Variable_name Value
+Ssl_cipher AES128-SHA
+mysqltest: Could not open connection 'default': 2026 SSL connection error
+CREATE TABLE t1(a int);
+INSERT INTO t1 VALUES (1), (2);
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL
+);
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL
+);
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+DROP TABLE IF EXISTS `t1`;
+CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL
+);
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2);
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+SSL error: Unable to get private key from 'MYSQL_TEST_DIR/std_data/client-cert.pem'
+mysqldump: Got error: 2026: SSL connection error when trying to connect
+DROP TABLE t1;
diff --git a/mysql-test/r/strict.result b/mysql-test/r/strict.result
index 94f4637cd05..3b2fda4248a 100644
--- a/mysql-test/r/strict.result
+++ b/mysql-test/r/strict.result
@@ -1393,4 +1393,10 @@ create table t1 (f1 set('a','a'));
ERROR HY000: Column 'f1' has duplicated value 'a' in SET
create table t1 (f1 enum('a','a'));
ERROR HY000: Column 'f1' has duplicated value 'a' in ENUM
+set @@sql_mode='NO_ZERO_DATE';
+create table t1(a datetime not null);
+select count(*) from t1 where a is null;
+count(*)
+0
+drop table t1;
End of 5.0 tests
diff --git a/mysql-test/r/variables-big.result b/mysql-test/r/variables-big.result
new file mode 100644
index 00000000000..ae1e20109b9
--- /dev/null
+++ b/mysql-test/r/variables-big.result
@@ -0,0 +1,20 @@
+set session transaction_prealloc_size=1024*1024*1024*1;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*2;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*3;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*4;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*5;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
diff --git a/mysql-test/t/fix_priv_tables.test b/mysql-test/t/fix_priv_tables.test
index 3a91f41dfcc..3051fd88076 100644
--- a/mysql-test/t/fix_priv_tables.test
+++ b/mysql-test/t/fix_priv_tables.test
@@ -1,6 +1,13 @@
# Embedded server doesn't support external clients
--source include/not_embedded.inc
+# Don't run this test if $MYSQL_FIX_PRIVILEGE_TABLES isn't set
+# to the location of mysql_fix_privilege_tables.sql
+if (`SELECT LENGTH("$MYSQL_FIX_PRIVILEGE_TABLES") <= 0`)
+{
+ skip Test need MYSQL_FIX_PRIVILEGE_TABLES;
+}
+
#
# This is the test for mysql_fix_privilege_tables
# It checks that a system tables from mysql 4.1.23
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index 75f2796abc6..439a7adc669 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -2320,6 +2320,26 @@ INSERT INTO t1 VALUES ('DDD');
SELECT * FROM t1;
DROP TABLE t1;
+#
+# Bug #23313 (AUTO_INCREMENT=# not reported back for InnoDB tables)
+# Bug #21404 (AUTO_INCREMENT value reset when Adding FKEY (or ALTER?))
+#
+
+CREATE TABLE t1 (id int PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB
+AUTO_INCREMENT=42;
+
+INSERT INTO t1 VALUES (0),(347),(0);
+SELECT * FROM t1;
+
+SHOW CREATE TABLE t1;
+
+CREATE TABLE t2 (id int PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t2 VALUES(42),(347),(348);
+ALTER TABLE t1 ADD CONSTRAINT t1_t2 FOREIGN KEY (id) REFERENCES t2(id);
+SHOW CREATE TABLE t1;
+
+DROP TABLE t1,t2;
+
#######################################################################
# #
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test
index b999c5c0029..08087f17e16 100644
--- a/mysql-test/t/mysql.test
+++ b/mysql-test/t/mysql.test
@@ -265,4 +265,13 @@ EOF
--exec $MYSQL --version 2>&1 > /dev/null
--enable_quary_log
+#
+# bug #26851: Mysql Client --pager Buffer Overflow
+#
+
+# allow error 7(invalid argument) since --pager does not always exist in mysql
+--error 0,7
+--exec $MYSQL --pager="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" > /dev/null 2>&1
+--exec $MYSQL --character-sets-dir="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" 2>&1
+
--echo End of 5.0 tests
diff --git a/mysql-test/t/mysql_upgrade.test b/mysql-test/t/mysql_upgrade.test
index c6133f8e85f..3f9626fcc42 100644
--- a/mysql-test/t/mysql_upgrade.test
+++ b/mysql-test/t/mysql_upgrade.test
@@ -8,16 +8,50 @@ select LENGTH("$MYSQL_UPGRADE")>0 as have_mysql_upgrade;
--enable_query_log
#
-# Basic test thta we can run mysql_upgrde and that it finds the
+# Basic test that we can run mysql_upgrde and that it finds the
# expected binaries it uses.
#
--echo Run mysql_upgrade once
---exec $MYSQL_UPGRADE 2> $MYSQLTEST_VARDIR/log/mysql_upgrade.err
+--exec $MYSQL_UPGRADE --skip-verbose 2>&1
+
+# It should have created a file in the MySQL Servers datadir
+file_exists $MYSQLTEST_VARDIR/master-data/mysql_upgrade_info;
--echo Run it again - should say already completed
---exec $MYSQL_UPGRADE 2> $MYSQLTEST_VARDIR/log/mysql_upgrade.err
+--replace_result $MYSQL_SERVER_VERSION VERSION
+--error 1
+--exec $MYSQL_UPGRADE --skip-verbose 2>&1
+
+# It should have created a file in the MySQL Servers datadir
+file_exists $MYSQLTEST_VARDIR/master-data/mysql_upgrade_info;
+
+--echo Force should run it regardless of wether it's been run before
+--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
+
+# It should have created a file in the MySQL Servers datadir
+file_exists $MYSQLTEST_VARDIR/master-data/mysql_upgrade_info;
---echo Force should run it regardless of wheter it's been run before
---exec $MYSQL_UPGRADE --force 2> $MYSQLTEST_VARDIR/log/mysql_upgrade.err
+#
+# Bug #25452 mysql_upgrade access denied.
+#
+
+# Password protect a root account and run mysql_upgrade
+
+CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
+GRANT ALL ON *.* TO mysqltest1@'%';
+--echo Run mysql_upgrade with password protected account
+--exec $MYSQL_UPGRADE --skip-verbose --force --user=mysqltest1 --password=sakila 2>&1
+
+DROP USER mysqltest1@'%';
+
+
+#
+# Bug #26639 mysql_upgrade exits successfully even if external command failed
+#
+--echo Run mysql_upgrade with a non existing server socket
+--replace_result $MYSQLTEST_VARDIR var
+--replace_regex /.*mysqlcheck.*: Got/mysqlcheck: Got/ /\([0-9]*\)/(errno)/
+--error 1
+--exec $MYSQL_UPGRADE --skip-verbose --force --host=not_existing_host 2>&1
diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test
index 1914f2794e2..328206626df 100644
--- a/mysql-test/t/mysqltest.test
+++ b/mysql-test/t/mysqltest.test
@@ -719,6 +719,21 @@ let $B = changed value of B;
--echo # Content of \$A is: $A
# ----------------------------------------------------------------------------
+# Test let from query with $variable
+# let $<var_name>=`<query with $variable>`;
+# ----------------------------------------------------------------------------
+
+let $var1=content of variable 1;
+let $var2= `select "$var1"`;
+let $var3= `select concat("$var1", " ", "$var2")`;
+echo var2: $var2;
+echo var3: $var3;
+if (`select length("$var3") > 0`)
+{
+ echo length of var3 is longer than 0;
+}
+
+# ----------------------------------------------------------------------------
# Test to assign let from query
# let $<var_name>=`<query>`;
# ----------------------------------------------------------------------------
@@ -1725,6 +1740,24 @@ EOF
--exec echo "echo Some output; exit; echo Not this;" | $MYSQL_TEST 2>&1
# ----------------------------------------------------------------------------
+# test for query_sorted
+# ----------------------------------------------------------------------------
+
+create table t1( a int, b char(255), c timestamp);
+insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 2", '2007-04-05');
+insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 3", '2007-04-05');
+select * from t1;
+query_sorted select * from t1;
+disable_result_log;
+query_sorted select * from t1;
+enable_result_log;
+query_sorted select '';
+query_sorted select "h";
+query_sorted select "he";
+query_sorted select "hep";
+query_sorted select "hepp";
+
+# ----------------------------------------------------------------------------
# Some coverage tests
# ----------------------------------------------------------------------------
diff --git a/mysql-test/t/ndb_dd_alter.test b/mysql-test/t/ndb_dd_alter.test
index ef7807e8723..7635a8944da 100644
--- a/mysql-test/t/ndb_dd_alter.test
+++ b/mysql-test/t/ndb_dd_alter.test
@@ -93,6 +93,8 @@ SHOW CREATE TABLE test.t1;
SELECT * FROM test.t1 ORDER BY a1;
ALTER TABLE test.t1 TABLESPACE ts STORAGE DISK ENGINE=NDB;
SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
SELECT * FROM test.t1 ORDER BY a1;
DROP TABLE test.t1;
@@ -125,6 +127,8 @@ SHOW CREATE TABLE test.t1;
SELECT * FROM test.t1 ORDER BY a1;
ALTER TABLE test.t1 TABLESPACE ts STORAGE DISK ENGINE=NDB;
SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
SELECT * FROM test.t1 ORDER BY a1;
#### Try to ALTER from Cluster Disk Data to InnoDB
@@ -133,10 +137,12 @@ ALTER TABLE test.t1 ENGINE=InnoDB;
SHOW CREATE TABLE test.t1;
SELECT * FROM test.t1 ORDER BY a1;
ALTER TABLE test.t1 TABLESPACE ts STORAGE DISK ENGINE=NDB;
+SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
#### Try to ALTER from Cluster Disk Data to MyISAM
-SHOW CREATE TABLE test.t1;
ALTER TABLE test.t1 ENGINE=MyISAM;
SHOW CREATE TABLE test.t1;
DROP TABLE test.t1;
@@ -188,6 +194,9 @@ enable_query_log;
SELECT a1,a2,a3,hex(a4), a5,a6,a7,a8 FROM test.t1 ORDER BY a1;
ALTER TABLE test.t1 ADD a9 DATETIME, ADD a10 TINYTEXT, ADD a11 MEDIUMTEXT, ADD a12 LONGTEXT, ADD a13 TEXT, ADD a14 BLOB;
+SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
disable_query_log;
set @d2 = 'dd2';
@@ -209,7 +218,6 @@ while ($1)
enable_query_log;
SELECT a1, a2,a3,hex(a4),a5,a6,a7,a8,a9,a10,a11,a12,a13 FROM test.t1 ORDER BY a1;
-SHOW CREATE TABLE test.t1;
#### Try to ALTER DD Tables and add Indexes
@@ -217,14 +225,23 @@ ALTER TABLE test.t1 ADD INDEX a2_i (a2), ADD INDEX a3_i (a3);
SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
+
ALTER TABLE test.t1 DROP INDEX a2_i;
SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
+
TRUNCATE TABLE test.t1;
SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
+
#### Try to ALTER DD Tables and drop columns
@@ -241,6 +258,9 @@ ALTER TABLE test.t1 DROP PRIMARY KEY;
SHOW CREATE TABLE test.t1;
+# Check column storage
+--exec $NDB_TOOLS_DIR/ndb_desc --no-defaults -d test t1 | grep 'ST='
+
DROP TABLE test.t1;
ALTER TABLESPACE ts
diff --git a/mysql-test/t/ndb_single_user.test b/mysql-test/t/ndb_single_user.test
index f2f47becb0c..3c6656be9f9 100644
--- a/mysql-test/t/ndb_single_user.test
+++ b/mysql-test/t/ndb_single_user.test
@@ -20,13 +20,67 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" --single-user >> $NDB_TOOLS_OUTPUT
# verify that we are indeed in single user mode
+# and test that some operations give correct errors
--connection server2
--error 1005
create table t1 (a int key, b int unique, c int) engine ndb;
+# Bug #27712 Single user mode. Creating logfile group and tablespace is allowed
+# - before bug fix these would succeed
+--error 1516
+CREATE LOGFILE GROUP lg1
+ADD UNDOFILE 'undofile.dat'
+INITIAL_SIZE 16M
+UNDO_BUFFER_SIZE = 1M
+ENGINE=NDB;
+show warnings;
# test some sql on first mysqld
--connection server1
create table t1 (a int key, b int unique, c int) engine ndb;
+# Check that we can create logfile group
+CREATE LOGFILE GROUP lg1
+ADD UNDOFILE 'undofile.dat'
+INITIAL_SIZE 16M
+UNDO_BUFFER_SIZE = 1M
+ENGINE=NDB;
+--connection server2
+--error ER_CREATE_FILEGROUP_FAILED
+CREATE TABLESPACE ts1
+ADD DATAFILE 'datafile.dat'
+USE LOGFILE GROUP lg1
+INITIAL_SIZE 12M
+ENGINE NDB;
+show warnings;
+--error ER_DROP_FILEGROUP_FAILED
+DROP LOGFILE GROUP lg1
+ENGINE =NDB;
+show warnings;
+--connection server1
+CREATE TABLESPACE ts1
+ADD DATAFILE 'datafile.dat'
+USE LOGFILE GROUP lg1
+INITIAL_SIZE 12M
+ENGINE NDB;
+--connection server2
+--error ER_ALTER_FILEGROUP_FAILED
+ALTER TABLESPACE ts1
+DROP DATAFILE 'datafile.dat'
+ENGINE NDB;
+show warnings;
+--connection server1
+ALTER TABLESPACE ts1
+DROP DATAFILE 'datafile.dat'
+ENGINE NDB;
+--connection server2
+--error ER_DROP_FILEGROUP_FAILED
+DROP TABLESPACE ts1
+ENGINE NDB;
+show warnings;
+--connection server1
+DROP TABLESPACE ts1
+ENGINE NDB;
+DROP LOGFILE GROUP lg1
+ENGINE =NDB;
insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);
create table t2 as select * from t1;
# read with pk
@@ -46,15 +100,18 @@ update t1 set b=b+100 where a > 7;
# delete with full table scan
delete from t1;
insert into t1 select * from t2;
+# Bug #27710 Creating unique index fails during single user mode
+# - prior to bugfix this would fail
+create unique index new_index on t1 (b,c);
# test some sql on other mysqld
--connection server2
--error 1051
drop table t1;
--error 1296
-create index new_index on t1 (c);
+create index new_index_fail on t1 (c);
--error 1296
-insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);
+insert into t1 values (21,21,0),(22,22,0),(23,23,0),(24,24,0),(25,25,0),(26,26,0),(27,27,0),(28,28,0),(29,29,0),(210,210,0);
--error 1296
select * from t1 where a = 1;
--error 1296
diff --git a/mysql-test/t/openssl_1.test b/mysql-test/t/openssl_1.test
index fd562089483..111c723e19c 100644
--- a/mysql-test/t/openssl_1.test
+++ b/mysql-test/t/openssl_1.test
@@ -97,6 +97,14 @@ drop table t1;
--exec $MYSQL_TEST --ssl-cert= --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
#
+# BUG#21611 Slave can't connect when master-ssl-cipher specified
+# - Apparently selecting a cipher doesn't work at all
+# - Usa a cipher that both yaSSL and OpenSSL supports
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--exec $MYSQL_TEST --ssl-cipher=DHE-RSA-AES256-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
# Bug#25309 SSL connections without CA certificate broken since MySQL 5.0.23
#
# Test that we can open encrypted connection to server without
@@ -142,3 +150,43 @@ SELECT variable_name, variable_value FROM thread_status;
DROP TABLE thread_status;
SET GLOBAL event_scheduler=0;
--echo End of 5.1 tests
+
+
+#
+# Test to connect using a list of ciphers
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--exec $MYSQL_TEST --ssl-cipher=UNKNOWN-CIPHER:AES128-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+
+# Test to connect using a specifi cipher
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--exec $MYSQL_TEST --ssl-cipher=AES128-SHA < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+# Test to connect using an unknown cipher
+#
+--exec echo "SHOW STATUS LIKE 'Ssl_cipher';" > $MYSQLTEST_VARDIR/tmp/test.sql
+--error 1
+--exec $MYSQL_TEST --ssl-cipher=UNKNOWN-CIPHER < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1
+
+#
+# Bug #27669 mysqldump: SSL connection error when trying to connect
+#
+
+CREATE TABLE t1(a int);
+INSERT INTO t1 VALUES (1), (2);
+
+# Run mysqldump
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test t1
+
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test
+
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test
+
+# With wrong parameters
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+--error 2
+--exec $MYSQL_DUMP --skip-create --skip-comments --ssl --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test 2>&1
+
+DROP TABLE t1;
diff --git a/mysql-test/t/strict.test b/mysql-test/t/strict.test
index fe731f4b0a1..7dd38920b3d 100644
--- a/mysql-test/t/strict.test
+++ b/mysql-test/t/strict.test
@@ -1258,4 +1258,12 @@ create table t1 (f1 set('a','a'));
--error 1291
create table t1 (f1 enum('a','a'));
+#
+# Bug #22824: strict, datetime, NULL, wrong warning
+#
+set @@sql_mode='NO_ZERO_DATE';
+create table t1(a datetime not null);
+select count(*) from t1 where a is null;
+drop table t1;
+
--echo End of 5.0 tests
diff --git a/mysql-test/t/system_mysql_db_fix30020.test b/mysql-test/t/system_mysql_db_fix30020.test
index 8220034b288..dc68f469d3a 100644
--- a/mysql-test/t/system_mysql_db_fix30020.test
+++ b/mysql-test/t/system_mysql_db_fix30020.test
@@ -1,9 +1,12 @@
# Embedded server doesn't support external clients
--source include/not_embedded.inc
-# Windows doesn't support execution of shell scripts (to fix!!)
---source include/not_windows.inc
-
+# Don't run this test if $MYSQL_FIX_SYSTEM_TABLES isn't set
+# to the location of mysql_fix_privilege_tables.sql
+if (`SELECT LENGTH("$MYSQL_FIX_SYSTEM_TABLES") <= 0`)
+{
+ skip Test need MYSQL_FIX_SYSTEM_TABLES;
+}
# check that CSV engine was compiled in, as the test relies on the presence
# of the log tables (which are CSV-based)
--source include/have_csv.inc
diff --git a/mysql-test/t/system_mysql_db_fix40123.test b/mysql-test/t/system_mysql_db_fix40123.test
index 7d909754824..419a9cd1827 100644
--- a/mysql-test/t/system_mysql_db_fix40123.test
+++ b/mysql-test/t/system_mysql_db_fix40123.test
@@ -1,6 +1,13 @@
# Embedded server doesn't support external clients
--source include/not_embedded.inc
+# Don't run this test if $MYSQL_FIX_PRIVILEGE_TABLES isn't set
+# to the location of mysql_fix_privilege_tables.sql
+if (`SELECT LENGTH("$MYSQL_FIX_PRIVILEGE_TABLES") <= 0`)
+{
+ skip Test need MYSQL_FIX_PRIVILEGE_TABLES;
+}
+
#
# This is the test for mysql_fix_privilege_tables
# It checks that a system tables from mysql 4.1.23
diff --git a/mysql-test/t/variables-big.test b/mysql-test/t/variables-big.test
new file mode 100644
index 00000000000..43326f3d016
--- /dev/null
+++ b/mysql-test/t/variables-big.test
@@ -0,0 +1,20 @@
+#
+# test variables big
+#
+
+--source include/big_test.inc
+
+#
+# Bug #27322 failure to allocate transaction_prealloc_size causes crash
+#
+
+set session transaction_prealloc_size=1024*1024*1024*1;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*2;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*3;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*4;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*5;
+show processlist;
diff --git a/mysys/charset.c b/mysys/charset.c
index 9fb02f1a39f..cce97677b14 100644
--- a/mysys/charset.c
+++ b/mysys/charset.c
@@ -388,7 +388,7 @@ my_bool STDCALL init_available_charsets(myf myflags)
static my_bool init_available_charsets(myf myflags)
#endif
{
- char fname[FN_REFLEN];
+ char fname[FN_REFLEN + sizeof(MY_CHARSET_INDEX)];
my_bool error=FALSE;
/*
We have to use charset_initialized to not lock on THR_LOCK_charset
@@ -519,7 +519,7 @@ CHARSET_INFO *get_charset(uint cs_number, myf flags)
if (!cs && (flags & MY_WME))
{
- char index_file[FN_REFLEN], cs_string[23];
+ char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)], cs_string[23];
strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
cs_string[0]='#';
int10_to_str(cs_number, cs_string+1, 10);
@@ -539,7 +539,7 @@ CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags)
if (!cs && (flags & MY_WME))
{
- char index_file[FN_REFLEN];
+ char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)];
strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
my_error(EE_UNKNOWN_COLLATION, MYF(ME_BELL), cs_name, index_file);
}
@@ -564,7 +564,7 @@ CHARSET_INFO *get_charset_by_csname(const char *cs_name,
if (!cs && (flags & MY_WME))
{
- char index_file[FN_REFLEN];
+ char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)];
strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
my_error(EE_UNKNOWN_CHARSET, MYF(ME_BELL), cs_name, index_file);
}
diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c
index edf1be1b2b6..b4ebaeba647 100644
--- a/mysys/my_alloc.c
+++ b/mysys/my_alloc.c
@@ -133,6 +133,10 @@ void reset_root_defaults(MEM_ROOT *mem_root, uint block_size,
mem->next= *prev;
*prev= mem_root->pre_alloc= mem;
}
+ else
+ {
+ mem_root->pre_alloc= 0;
+ }
}
}
else
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 75da07390ba..79a28ef04b0 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -79,11 +79,12 @@ static uint get_thread_lib(void);
my_bool my_thread_global_init(void)
{
+ int pth_ret;
thd_lib_detected= get_thread_lib();
- if (pthread_key_create(&THR_KEY_mysys,0))
+ if ((pth_ret= pthread_key_create(&THR_KEY_mysys, NULL)) != 0)
{
- fprintf(stderr,"Can't initialize threads: error %d\n",errno);
+ fprintf(stderr,"Can't initialize threads: error %d\n", pth_ret);
return 1;
}
diff --git a/netware/Makefile.am b/netware/Makefile.am
index b5de58060f6..0d45d001d11 100644
--- a/netware/Makefile.am
+++ b/netware/Makefile.am
@@ -44,12 +44,16 @@ netware_build_files = client/mysql.def client/mysqladmin.def \
storage/myisam/myisam_ftdump.def
link_sources:
- set -x; \
for f in $(netware_build_files); do \
rm -f ../$$f; \
org=`echo $$f | sed -e 's/.*\/\(.*\)/\1/g'`; \
@LN_CP_F@ $(srcdir)/$$org ../$$f; \
done
+ echo timestamp > link_sources
+
+BUILT_SOURCES = link_sources
+CLEANFILES = $(BUILT_SOURCES)
+
else
BUILT_SOURCES = libmysql.imp init_db.sql test_db.sql
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
new file mode 100755
index 00000000000..bca0581ecbc
--- /dev/null
+++ b/scripts/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Copyright (C) 2006 MySQL AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+ADD_EXECUTABLE(comp_sql comp_sql.c)
+TARGET_LINK_LIBRARIES(comp_sql dbug mysys strings)
+
+# Build comp_sql - used for embedding SQL in C or C++ programs
+GET_TARGET_PROPERTY(COMP_SQL_EXE comp_sql LOCATION)
+
+ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables_sql.c
+ COMMAND ${COMP_SQL_EXE}
+ mysql_fix_privilege_tables
+ mysql_fix_privilege_tables.sql
+ mysql_fix_privilege_tables_sql.c
+ DEPENDS comp_sql ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables.sql)
+
+ADD_CUSTOM_TARGET(GenFixPrivs
+ ALL
+ DEPENDS ${PROJECT_SOURCE_DIR}/scripts/mysql_fix_privilege_tables_sql.c)
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 934202b5c60..9d344118f2b 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -15,6 +15,11 @@
## Process this file with automake to create Makefile.in
+BUILT_SOURCES = mysql_fix_privilege_tables.sql \
+ mysql_fix_privilege_tables_sql.c
+
+noinst_PROGRAMS = comp_sql
+
bin_SCRIPTS = @server_scripts@ \
msql2mysql \
mysql_config \
@@ -57,7 +62,8 @@ EXTRA_DIST = $(EXTRA_SCRIPTS) \
mysqlaccess.conf \
mysqlbug \
make_win_bin_dist \
- mysql_system_tables_fix.sql
+ mysql_system_tables_fix.sql \
+ CMakeLists.txt
dist_pkgdata_DATA = fill_help_tables.sql \
mysql_fix_privilege_tables.sql \
@@ -82,7 +88,8 @@ CLEANFILES = @server_scripts@ \
mysqldumpslow \
mysql_tableinfo \
mysqld_multi \
- mysql_fix_privilege_tables.sql
+ mysql_fix_privilege_tables.sql \
+ mysql_fix_privilege_tables_sql.c
# mysqlbug should be distributed built so that people can report build
# failures with it.
@@ -99,6 +106,17 @@ mysql_fix_privilege_tables.sql: mysql_system_tables.sql \
@echo "Building $@";
@cat mysql_system_tables.sql mysql_system_tables_fix.sql > $@
+#
+# Build mysql_fix_privilege_tables_sql.c from
+# mysql_fix_privileges_tables.sql using comp_sql
+#
+mysql_fix_privilege_tables_sql.c: comp_sql.c mysql_fix_privilege_tables.sql
+ $(MAKE) $(AM_MAKEFLAGS) comp_sql$(EXEEXT)
+ $(top_builddir)/scripts/comp_sql$(EXEEXT) \
+ mysql_fix_privilege_tables \
+ $(top_srcdir)/scripts/mysql_fix_privilege_tables.sql $@
+
+
SUFFIXES = .sh
.sh:
@@ -154,5 +172,6 @@ SUFFIXES = .sh
@CHMOD@ +x $@-t
@MV@ $@-t $@
+
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/scripts/comp_sql.c b/scripts/comp_sql.c
new file mode 100644
index 00000000000..88e88e632b6
--- /dev/null
+++ b/scripts/comp_sql.c
@@ -0,0 +1,125 @@
+/* Copyright (C) 2004 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+/*
+ Written by Magnus Svensson
+*/
+
+/*
+ Converts a SQL file into a C file that can be compiled and linked
+ into other programs
+*/
+
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+FILE *in, *out;
+
+static void die(const char *fmt, ...)
+{
+ va_list args;
+
+ /* Print the error message */
+ fprintf(stderr, "FATAL ERROR: ");
+ if (fmt)
+ {
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+ }
+ else
+ fprintf(stderr, "unknown error");
+ fprintf(stderr, "\n");
+ fflush(stderr);
+
+ /* Close any open files */
+ if (in)
+ fclose(in);
+ if (out)
+ fclose(out);
+
+ exit(1);
+}
+
+
+int main(int argc, char *argv[])
+{
+ char buff[512];
+ char* struct_name= argv[1];
+ char* infile_name= argv[2];
+ char* outfile_name= argv[3];
+
+ if (argc != 4)
+ die("Usage: comp_sql <struct_name> <sql_filename> <c_filename>");
+
+ /* Open input and output file */
+ if (!(in= fopen(infile_name, "r")))
+ die("Failed to open SQL file '%s'", infile_name);
+ if (!(out= fopen(outfile_name, "w")))
+ die("Failed to open output file '%s'", outfile_name);
+
+ fprintf(out, "const char* %s={\n\"", struct_name);
+
+ while (fgets(buff, sizeof(buff), in))
+ {
+ char *curr= buff;
+ while (*curr)
+ {
+ if (*curr == '\n')
+ {
+ /*
+ Reached end of line, add escaped newline, escaped
+ backslash and a newline to outfile
+ */
+ fprintf(out, "\\n \"\n\"");
+ curr++;
+ }
+ else if (*curr == '\r')
+ {
+ curr++; /* Skip */
+ }
+ else
+ {
+ if (*curr == '"')
+ {
+ /* Needs escape */
+ fputc('\\', out);
+ }
+
+ fputc(*curr, out);
+ curr++;
+ }
+ }
+ if (*(curr-1) != '\n')
+ {
+ /*
+ Some compilers have a max string length,
+ insert a newline at every 512th char in long
+ strings
+ */
+ fprintf(out, "\"\n\"");
+ }
+ }
+
+ fprintf(out, "\\\n\"};\n");
+
+ fclose(in);
+ fclose(out);
+
+ exit(0);
+
+}
+
diff --git a/scripts/make_win_bin_dist b/scripts/make_win_bin_dist
index 2e10e530ca6..42fade7cbd2 100755
--- a/scripts/make_win_bin_dist
+++ b/scripts/make_win_bin_dist
@@ -352,7 +352,7 @@ mkdir -p $DESTDIR/scripts
for i in `cd scripts && ls`; do \
if echo $i | grep -q '\.sh'; then \
cp scripts/$i $DESTDIR/scripts/`echo $i | sed -e 's/\.sh$//'`; \
- elif [ $i = Makefile.am -o $i = Makefile.in -o -e scripts/$i.sh ] ; then \
+ elif [ -d scripts/$i -o $i = Makefile.am -o $i = Makefile.in -o -e scripts/$i.sh ] ; then \
: ; \
else \
cp scripts/$i $DESTDIR/scripts/$i; \
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 808179c0750..8ff7a9c11e1 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -135,17 +135,6 @@ else
fi
fi
-# Check that no previous MySQL installation exist
-if test -f "$ldata/mysql/db.frm"
-then
- echo "FATAL ERROR: Found already existing MySQL system tables"
- echo "in $ldata."
- echo "If you are upgrading from a previous MySQL version you"
- echo "should run '$bindir/mysql_upgrade', "
- echo "to upgrade all tables for this version of MySQL"
- exit 1;
-fi
-
# Find SQL scripts needed for bootstrap
fill_help_tables="fill_help_tables.sql"
create_system_tables="mysql_system_tables.sql"
diff --git a/scripts/mysql_system_tables.sql b/scripts/mysql_system_tables.sql
index 5c67477ce5b..c779d174d12 100644
--- a/scripts/mysql_system_tables.sql
+++ b/scripts/mysql_system_tables.sql
@@ -6,12 +6,17 @@ set storage_engine=myisam;
CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges';
+-- Remember for later if db table already existed
+set @had_db_table= @@warning_count != 0;
CREATE TABLE IF NOT EXISTS host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges';
CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, max_user_connections int(11) unsigned DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges';
+-- Remember for later if user table already existed
+set @had_user_table= @@warning_count != 0;
+
CREATE TABLE IF NOT EXISTS func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions';
@@ -60,15 +65,15 @@ CREATE TABLE IF NOT EXISTS proc ( db char(64) collate utf8_bin DEFAULT '' NOT NU
CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp(14), PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges';
-CREATE PROCEDURE create_general_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT, thread_id INTEGER, server_id INTEGER, command_type VARCHAR(64), argument MEDIUMTEXT) engine=CSV CHARACTER SET utf8 comment='General log'; END IF; END;
-CALL create_general_log_table();
-DROP PROCEDURE create_general_log_table;
-
-
-CREATE PROCEDURE create_slow_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT NOT NULL, query_time TIME NOT NULL, lock_time TIME NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512), last_insert_id INTEGER, insert_id INTEGER, server_id INTEGER, sql_text MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment='Slow log'; END IF; END;
-CALL create_slow_log_table();
-DROP PROCEDURE create_slow_log_table;
+delimiter ;;
+CREATE PROCEDURE create_general_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT, thread_id INTEGER, server_id INTEGER, command_type VARCHAR(64), argument MEDIUMTEXT) engine=CSV CHARACTER SET utf8 comment='General log'; END IF; END;;
+CALL create_general_log_table();;
+DROP PROCEDURE create_general_log_table;;
+CREATE PROCEDURE create_slow_log_table() BEGIN DECLARE is_csv_enabled int DEFAULT 0; SELECT @@have_csv = 'YES' INTO is_csv_enabled; IF (is_csv_enabled) THEN CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP NOT NULL, user_host MEDIUMTEXT NOT NULL, query_time TIME NOT NULL, lock_time TIME NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512), last_insert_id INTEGER, insert_id INTEGER, server_id INTEGER, sql_text MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment='Slow log'; END IF; END;;
+CALL create_slow_log_table();;
+DROP PROCEDURE create_slow_log_table;;
+delimiter ;
CREATE TABLE IF NOT EXISTS event ( db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', name char(64) CHARACTER SET utf8 NOT NULL default '', body longblob NOT NULL, definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', execute_at DATETIME default NULL, interval_value int(11) default NULL, interval_field ENUM('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') default NULL, created TIMESTAMP NOT NULL, modified TIMESTAMP NOT NULL, last_executed DATETIME default NULL, starts DATETIME default NULL, ends DATETIME default NULL, status ENUM('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL default 'ENABLED', on_completion ENUM('DROP','PRESERVE') NOT NULL default 'DROP', sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') DEFAULT '' NOT NULL, comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', originator int(10) NOT NULL, time_zone char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM', PRIMARY KEY (db, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events';
diff --git a/scripts/mysql_system_tables_data.sql b/scripts/mysql_system_tables_data.sql
index 0ac6f59b9ea..07aa932cda2 100644
--- a/scripts/mysql_system_tables_data.sql
+++ b/scripts/mysql_system_tables_data.sql
@@ -2,12 +2,20 @@
-- The inital data for system tables of MySQL Server
--
--- default grants for anyone to access database 'test' and 'test_%'
-INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
-INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
+-- Fill "db" table with default grants for anyone to
+-- access database 'test' and 'test_%' if "db" table didn't exist
+CREATE TEMPORARY TABLE tmp_db LIKE db;
+INSERT INTO tmp_db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
+INSERT INTO tmp_db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
+INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0;
+DROP TABLE tmp_db;
--- default users allowing root access from local machine
-INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
-REPLACE INTO user VALUES (@@hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
-REPLACE INTO user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
+-- Fill "users" table with default users allowing root access
+-- from local machine if "users" table didn't exist before
+CREATE TEMPORARY TABLE tmp_user LIKE user;
+INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
+REPLACE INTO tmp_user VALUES (@@hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
+REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
+INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
+DROP TABLE tmp_user;
diff --git a/scripts/mysql_system_tables_fix.sql b/scripts/mysql_system_tables_fix.sql
index e9816bd21e9..7985dc1802e 100644
--- a/scripts/mysql_system_tables_fix.sql
+++ b/scripts/mysql_system_tables_fix.sql
@@ -389,43 +389,6 @@ ALTER TABLE proc MODIFY db
char(64) collate utf8_bin DEFAULT '' NOT NULL;
#
-# Create missing log tables (5.1)
-#
-
-delimiter //
-CREATE PROCEDURE create_log_tables()
-BEGIN
- DECLARE is_csv_enabled int DEFAULT 0;
- SELECT @@have_csv = 'YES' INTO is_csv_enabled;
- IF (is_csv_enabled) THEN
- CREATE TABLE IF NOT EXISTS general_log (
- event_time TIMESTAMP NOT NULL,
- user_host MEDIUMTEXT,
- thread_id INTEGER,
- server_id INTEGER,
- command_type VARCHAR(64),
- argument MEDIUMTEXT
- ) engine=CSV CHARACTER SET utf8 comment='General log';
- CREATE TABLE IF NOT EXISTS slow_log (
- start_time TIMESTAMP NOT NULL,
- user_host MEDIUMTEXT NOT NULL,
- query_time TIME NOT NULL,
- lock_time TIME NOT NULL,
- rows_sent INTEGER NOT NULL,
- rows_examined INTEGER NOT NULL,
- db VARCHAR(512),
- last_insert_id INTEGER,
- insert_id INTEGER,
- server_id INTEGER,
- sql_text MEDIUMTEXT NOT NULL
- ) engine=CSV CHARACTER SET utf8 comment='Slow log';
- END IF;
-END//
-delimiter ;
-CALL create_log_tables();
-DROP PROCEDURE create_log_tables;
-
-#
# EVENT privilege
#
SET @hadEventPriv := 0;
@@ -503,8 +466,6 @@ ALTER TABLE tables_priv MODIFY Table_priv set('Select','Insert','Update','Delete
UPDATE user SET Trigger_priv=Super_priv WHERE @hadTriggerPriv = 0;
-CREATE TABLE IF NOT EXISTS ndb_binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM;
-
# Activate the new, possible modified privilege tables
# This should not be needed, but gives us some extra testing that the above
# changes was correct
diff --git a/sql/Makefile.am b/sql/Makefile.am
index 037986e3e45..a04386611f8 100644
--- a/sql/Makefile.am
+++ b/sql/Makefile.am
@@ -21,15 +21,13 @@ MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
INCLUDES = @ZLIB_INCLUDES@ \
-I$(top_builddir)/include -I$(top_srcdir)/include \
- -I$(top_srcdir)/regex -I$(srcdir) \
- $(openssl_includes)
+ -I$(top_srcdir)/regex -I$(srcdir) $(openssl_includes)
WRAPLIBS= @WRAPLIBS@
SUBDIRS = share
libexec_PROGRAMS = mysqld
EXTRA_PROGRAMS = gen_lex_hash
bin_PROGRAMS = mysql_tzinfo_to_sql
-gen_lex_hash_LDFLAGS = @NOINST_LDFLAGS@
-SUPPORTING_LIBS = $(top_builddir)/vio/libvio.a \
+SUPPORTING_LIBS = $(top_builddir)/vio/libvio.a \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/regex/libregex.a \
@@ -71,6 +69,7 @@ noinst_HEADERS = item.h item_func.h item_sum.h item_cmpfunc.h \
event_data_objects.h event_scheduler.h \
sql_partition.h partition_info.h partition_element.h \
contributors.h sql_servers.h
+
mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
item.cc item_sum.cc item_buff.cc item_func.cc \
item_cmpfunc.cc item_strfunc.cc item_timefunc.cc \
@@ -114,11 +113,11 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
sql_builtin.cc sql_tablespace.cc partition_info.cc \
sql_servers.cc
-
gen_lex_hash_SOURCES = gen_lex_hash.cc
-gen_lex_hash_LDADD = $(LDADD) $(CXXLDFLAGS)
-mysql_tzinfo_to_sql_SOURCES = mysql_tzinfo_to_sql.cc
-mysql_tzinfo_to_sql_LDADD = @MYSQLD_EXTRA_LDFLAGS@ $(LDADD) $(CXXLDFLAGS)
+gen_lex_hash_LDFLAGS = @NOINST_LDFLAGS@
+
+mysql_tzinfo_to_sql_SOURCES = tztime.cc
+mysql_tzinfo_to_sql_CXXFLAGS= -DTZINFO2SQL
DEFS = -DMYSQL_SERVER \
-DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \
@@ -128,20 +127,16 @@ DEFS = -DMYSQL_SERVER \
@DEFS@
BUILT_MAINT_SRC = sql_yacc.cc sql_yacc.h
-BUILT_SOURCES = $(BUILT_MAINT_SRC) lex_hash.h
+BUILT_SOURCES = $(BUILT_MAINT_SRC) lex_hash.h link_sources
EXTRA_DIST = udf_example.c udf_example.def $(BUILT_MAINT_SRC) \
nt_servc.cc nt_servc.h message.mc CMakeLists.txt \
udf_example.c udf_example.def
-CLEANFILES = lex_hash.h sql_yacc.output
+CLEANFILES = lex_hash.h sql_yacc.output link_sources
DISTCLEANFILES = $(EXTRA_PROGRAMS)
MAINTAINERCLEANFILES = $(BUILT_MAINT_SRC)
AM_YFLAGS = -d --verbose
-mysql_tzinfo_to_sql.cc:
- rm -f mysql_tzinfo_to_sql.cc
- @LN_CP_F@ $(srcdir)/tztime.cc mysql_tzinfo_to_sql.cc
-
-link_sources: mysql_tzinfo_to_sql.cc
+link_sources:
rm -f mini_client_errors.c
@LN_CP_F@ $(top_srcdir)/libmysql/errmsg.c mini_client_errors.c
rm -f pack.c
@@ -153,9 +148,6 @@ link_sources: mysql_tzinfo_to_sql.cc
rm -f my_user.c
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c
-mysql_tzinfo_to_sql.o: $(mysql_tzinfo_to_sql_SOURCES)
- $(CXXCOMPILE) -c $(INCLUDES) -DTZINFO2SQL $<
-
# This generates lex_hash.h
# NOTE Built sources should depend on their sources not the tool
# this avoid the rebuild of the built files in a source dist
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index 58d34d99174..7f5c1cfd494 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -4997,6 +4997,29 @@ int ha_ndbcluster::create(const char *name,
my_free((char*)data, MYF(0));
my_free((char*)pack_data, MYF(0));
+ if (create_info->storage_media == HA_SM_DISK)
+ {
+ if (create_info->tablespace)
+ tab.setTablespaceName(create_info->tablespace);
+ else
+ tab.setTablespaceName("DEFAULT-TS");
+ }
+ else if (create_info->tablespace)
+ {
+ if (create_info->storage_media == HA_SM_MEMORY)
+ {
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_ERROR,
+ ER_ILLEGAL_HA_CREATE_OPTION,
+ ER(ER_ILLEGAL_HA_CREATE_OPTION),
+ ndbcluster_hton_name,
+ "TABLESPACE currently only supported for "
+ "STORAGE DISK");
+ DBUG_RETURN(HA_ERR_UNSUPPORTED);
+ }
+ tab.setTablespaceName(create_info->tablespace);
+ create_info->storage_media = HA_SM_DISK; //if use tablespace, that also means store on disk
+ }
+
for (i= 0; i < form->s->fields; i++)
{
Field *field= form->field[i];
@@ -5030,29 +5053,6 @@ int ha_ndbcluster::create(const char *name,
NdbDictionary::Column::StorageTypeMemory);
}
- if (create_info->storage_media == HA_SM_DISK)
- {
- if (create_info->tablespace)
- tab.setTablespaceName(create_info->tablespace);
- else
- tab.setTablespaceName("DEFAULT-TS");
- }
- else if (create_info->tablespace)
- {
- if (create_info->storage_media == HA_SM_MEMORY)
- {
- push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_ERROR,
- ER_ILLEGAL_HA_CREATE_OPTION,
- ER(ER_ILLEGAL_HA_CREATE_OPTION),
- ndbcluster_hton_name,
- "TABLESPACE currently only supported for "
- "STORAGE DISK");
- DBUG_RETURN(HA_ERR_UNSUPPORTED);
- }
- tab.setTablespaceName(create_info->tablespace);
- create_info->storage_media = HA_SM_DISK; //if use tablespace, that also means store on disk
- }
-
// No primary key, create shadow key as 64 bit, auto increment
if (form->s->primary_key == MAX_KEY)
{
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 54b78cdf51c..0a177a58dbd 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -366,7 +366,8 @@ static bool convert_constant_item(THD *thd, Field *field, Item **item)
old_read_map= dbug_tmp_use_all_columns(table, table->read_set);
}
/* For comparison purposes allow invalid dates like 2000-01-32 */
- thd->variables.sql_mode|= MODE_INVALID_DATES;
+ thd->variables.sql_mode= (orig_sql_mode & ~MODE_NO_ZERO_DATE) |
+ MODE_INVALID_DATES;
thd->count_cuted_fields= CHECK_FIELD_IGNORE;
if (!(*item)->save_in_field(field, 1) && !((*item)->null_value))
{
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 3a01ed27f61..68f5ff022a4 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -264,7 +264,6 @@ MY_LOCALE *my_locale_by_number(uint number);
#endif
#if defined(__WIN__)
-#define IF_WIN(A,B) (A)
#undef FLUSH_TIME
#define FLUSH_TIME 1800 /* Flush every half hour */
@@ -273,7 +272,6 @@ MY_LOCALE *my_locale_by_number(uint number);
#define WAIT_PRIOR 0
#define QUERY_PRIOR 2
#else
-#define IF_WIN(A,B) (B)
#define INTERRUPT_PRIOR 10
#define CONNECT_PRIOR 9
#define WAIT_PRIOR 8
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index b7ea52fbef6..6f7b8d53e05 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -3177,6 +3177,7 @@ static void init_ssl()
DBUG_PRINT("info",("ssl_acceptor_fd: 0x%lx", (long) ssl_acceptor_fd));
if (!ssl_acceptor_fd)
{
+ sql_print_warning("Failed to setup SSL");
opt_use_ssl = 0;
have_ssl= SHOW_OPTION_DISABLED;
}
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index df2ac4d72fa..ec0dcb7e761 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -364,6 +364,11 @@ pthread_handler_t handle_bootstrap(void *arg)
buff[length-1] == ';'))
length--;
buff[length]=0;
+
+ /* Skip lines starting with delimiter */
+ if (strncmp(buff, STRING_WITH_LEN("delimiter")) == 0)
+ continue;
+
thd->query_length=length;
thd->query= thd->memdup_w_gap(buff, length+1,
thd->db_length+1+QUERY_CACHE_FLAGS_SIZE);
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 1932f775a3d..18f930bf7da 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -4770,6 +4770,20 @@ create_clustered_index_when_no_primary(
}
/*********************************************************************
+Update create_info. Used in SHOW CREATE TABLE et al. */
+
+void
+ha_innobase::update_create_info(
+/*============================*/
+ HA_CREATE_INFO* create_info) /* in/out: create info */
+{
+ if (!(create_info->used_fields & HA_CREATE_USED_AUTO)) {
+ ha_innobase::info(HA_STATUS_AUTO);
+ create_info->auto_increment_value = stats.auto_increment_value;
+ }
+}
+
+/*********************************************************************
Creates a new table to an InnoDB database. */
int
diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h
index f5df362b490..8b6c4d5a3d8 100644
--- a/storage/innobase/handler/ha_innodb.h
+++ b/storage/innobase/handler/ha_innodb.h
@@ -150,6 +150,7 @@ class ha_innobase: public handler
*max_key);
ha_rows estimate_rows_upper_bound();
+ void update_create_info(HA_CREATE_INFO* create_info);
int create(const char *name, register TABLE *form,
HA_CREATE_INFO *create_info);
int delete_all_rows();
diff --git a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
index 60ba941dbbf..c18ba047d4e 100644
--- a/storage/innobase/os/os0file.c
+++ b/storage/innobase/os/os0file.c
@@ -318,7 +318,7 @@ os_file_get_last_error(
fflush(stderr);
- if (err == ENOSPC ) {
+ if (err == ENOSPC) {
return(OS_FILE_DISK_FULL);
#ifdef POSIX_ASYNC_IO
} else if (err == EAGAIN) {
@@ -337,15 +337,20 @@ os_file_get_last_error(
}
/********************************************************************
-Does error handling when a file operation fails. */
+Does error handling when a file operation fails.
+Conditionally exits (calling exit(3)) based on should_exit value and the
+error type */
+
static
ibool
-os_file_handle_error(
-/*=================*/
- /* out: TRUE if we should retry the
- operation */
- const char* name, /* in: name of a file or NULL */
- const char* operation)/* in: operation */
+os_file_handle_error_cond_exit(
+/*===========================*/
+ /* out: TRUE if we should retry the
+ operation */
+ const char* name, /* in: name of a file or NULL */
+ const char* operation, /* in: operation */
+ ibool should_exit) /* in: call exit(3) if unknown error
+ and this parameter is TRUE */
{
ulint err;
@@ -376,11 +381,9 @@ os_file_handle_error(
fflush(stderr);
return(FALSE);
-
} else if (err == OS_FILE_AIO_RESOURCES_RESERVED) {
return(TRUE);
-
} else if (err == OS_FILE_ALREADY_EXISTS
|| err == OS_FILE_PATH_ERROR) {
@@ -392,16 +395,49 @@ os_file_handle_error(
fprintf(stderr, "InnoDB: File operation call: '%s'.\n",
operation);
- fprintf(stderr, "InnoDB: Cannot continue operation.\n");
- fflush(stderr);
+ if (should_exit) {
+ fprintf(stderr, "InnoDB: Cannot continue operation.\n");
- exit(1);
+ fflush(stderr);
+
+ exit(1);
+ }
}
return(FALSE);
}
+/********************************************************************
+Does error handling when a file operation fails. */
+static
+ibool
+os_file_handle_error(
+/*=================*/
+ /* out: TRUE if we should retry the
+ operation */
+ const char* name, /* in: name of a file or NULL */
+ const char* operation)/* in: operation */
+{
+ /* exit in case of unknown error */
+ return(os_file_handle_error_cond_exit(name, operation, TRUE));
+}
+
+/********************************************************************
+Does error handling when a file operation fails. */
+static
+ibool
+os_file_handle_error_no_exit(
+/*=========================*/
+ /* out: TRUE if we should retry the
+ operation */
+ const char* name, /* in: name of a file or NULL */
+ const char* operation)/* in: operation */
+{
+ /* don't exit in case of unknown error */
+ return(os_file_handle_error_cond_exit(name, operation, FALSE));
+}
+
#undef USE_FILE_LOCK
#define USE_FILE_LOCK
#if defined(UNIV_HOTBACKUP) || defined(__WIN__) || defined(__FreeBSD__) || defined(__NETWARE__)
@@ -446,68 +482,6 @@ os_file_lock(
#endif /* USE_FILE_LOCK */
/********************************************************************
-Does error handling when a file operation fails. */
-static
-ibool
-os_file_handle_error_no_exit(
-/*=========================*/
- /* out: TRUE if we should retry the
- operation */
- const char* name, /* in: name of a file or NULL */
- const char* operation)/* in: operation */
-{
- ulint err;
-
- err = os_file_get_last_error(FALSE);
-
- if (err == OS_FILE_DISK_FULL) {
- /* We only print a warning about disk full once */
-
- if (os_has_said_disk_full) {
-
- return(FALSE);
- }
-
- if (name) {
- ut_print_timestamp(stderr);
- fprintf(stderr,
- " InnoDB: Encountered a problem with"
- " file %s\n", name);
- }
-
- ut_print_timestamp(stderr);
- fprintf(stderr,
- " InnoDB: Disk is full. Try to clean the disk"
- " to free space.\n");
-
- os_has_said_disk_full = TRUE;
-
- fflush(stderr);
-
- return(FALSE);
-
- } else if (err == OS_FILE_AIO_RESOURCES_RESERVED) {
-
- return(TRUE);
-
- } else if (err == OS_FILE_ALREADY_EXISTS
- || err == OS_FILE_PATH_ERROR) {
-
- return(FALSE);
- } else {
- if (name) {
- fprintf(stderr, "InnoDB: File name %s\n", name);
- }
-
- fprintf(stderr, "InnoDB: File operation call: '%s'.\n",
- operation);
- return (FALSE);
- }
-
- return(FALSE); /* not reached */
-}
-
-/********************************************************************
Creates the seek mutexes used in positioned reads and writes. */
void
@@ -1125,6 +1099,51 @@ os_file_create_simple_no_error_handling(
}
/********************************************************************
+Tries to disable OS caching on an opened file descriptor. */
+
+void
+os_file_set_nocache(
+/*================*/
+ int fd, /* in: file descriptor to alter */
+ const char* file_name, /* in: used in the diagnostic message */
+ const char* operation_name) /* in: used in the diagnostic message,
+ we call os_file_set_nocache()
+ immediately after opening or creating
+ a file, so this is either "open" or
+ "create" */
+{
+ /* some versions of Solaris may not have DIRECTIO_ON */
+#if defined(UNIV_SOLARIS) && defined(DIRECTIO_ON)
+ if (directio(fd, DIRECTIO_ON) == -1) {
+ int errno_save;
+ errno_save = (int)errno;
+ ut_print_timestamp(stderr);
+ fprintf(stderr,
+ " InnoDB: Failed to set DIRECTIO_ON "
+ "on file %s: %s: %s, continuing anyway\n",
+ file_name, operation_name, strerror(errno_save));
+ }
+#elif defined(O_DIRECT)
+ if (fcntl(fd, F_SETFL, O_DIRECT) == -1) {
+ int errno_save;
+ errno_save = (int)errno;
+ ut_print_timestamp(stderr);
+ fprintf(stderr,
+ " InnoDB: Failed to set O_DIRECT "
+ "on file %s: %s: %s, continuing anyway\n",
+ file_name, operation_name, strerror(errno_save));
+ if (errno_save == EINVAL) {
+ ut_print_timestamp(stderr);
+ fprintf(stderr,
+ " InnoDB: O_DIRECT is known to result in "
+ "'Invalid argument' on Linux on tmpfs, "
+ "see MySQL Bug#26662\n");
+ }
+ }
+#endif
+}
+
+/********************************************************************
Opens an existing file or creates a new. */
os_file_t
@@ -1306,21 +1325,8 @@ try_again:
create_flag = create_flag | O_SYNC;
}
#endif /* O_SYNC */
-#ifdef O_DIRECT
- /* We let O_DIRECT only affect data files */
- if (type != OS_LOG_FILE
- && srv_unix_file_flush_method == SRV_UNIX_O_DIRECT) {
-# if 0
- fprintf(stderr, "Using O_DIRECT for file %s\n", name);
-# endif
- create_flag = create_flag | O_DIRECT;
- }
-#endif /* O_DIRECT */
- if (create_mode == OS_FILE_CREATE) {
- file = open(name, create_flag, os_innodb_umask);
- } else {
- file = open(name, create_flag);
- }
+
+ file = open(name, create_flag, os_innodb_umask);
if (file == -1) {
*success = FALSE;
@@ -1330,11 +1336,24 @@ try_again:
"create" : "open");
if (retry) {
goto try_again;
+ } else {
+ return(file /* -1 */);
}
+ }
+ /* else */
+
+ *success = TRUE;
+
+ /* We disable OS caching (O_DIRECT) only on data files */
+ if (type != OS_LOG_FILE
+ && srv_unix_file_flush_method == SRV_UNIX_O_DIRECT) {
+
+ os_file_set_nocache(file, name, mode_str);
+ }
+
#ifdef USE_FILE_LOCK
- } else if (create_mode != OS_FILE_OPEN_RAW
- && os_file_lock(file, name)) {
- *success = FALSE;
+ if (create_mode != OS_FILE_OPEN_RAW && os_file_lock(file, name)) {
+
if (create_mode == OS_FILE_OPEN_RETRY) {
int i;
ut_print_timestamp(stderr);
@@ -1352,12 +1371,12 @@ try_again:
fputs(" InnoDB: Unable to open the first data file\n",
stderr);
}
+
+ *success = FALSE;
close(file);
file = -1;
-#endif
- } else {
- *success = TRUE;
}
+#endif /* USE_FILE_LOCK */
return(file);
#endif /* __WIN__ */
diff --git a/storage/innobase/plug.in b/storage/innobase/plug.in
index 9c21a491d9f..59634523399 100644
--- a/storage/innobase/plug.in
+++ b/storage/innobase/plug.in
@@ -30,6 +30,8 @@ MYSQL_PLUGIN_ACTIONS(innobase, [
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
osf*)
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
+ *solaris*|*SunOS*)
+ CFLAGS="$CFLAGS -DUNIV_SOLARIS";;
sysv5uw7*)
# Problem when linking on SCO
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
diff --git a/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp b/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp
index b1261431a4e..fa92af1de8c 100644
--- a/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp
+++ b/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp
@@ -66,7 +66,8 @@ struct CreateFilegroupRef {
InvalidExtentSize = 764,
InvalidUndoBufferSize = 779,
NoSuchLogfileGroup = 767,
- InvalidFilegroupVersion = 768
+ InvalidFilegroupVersion = 768,
+ SingleUser = 299
};
Uint32 senderData;
@@ -159,7 +160,8 @@ struct CreateFileRef {
FilenameAlreadyExists = 760,
OutOfFileRecords = 751,
InvalidFileType = 750,
- NotSupportedWhenDiskless = 775
+ NotSupportedWhenDiskless = 775,
+ SingleUser = 299
};
Uint32 senderData;
diff --git a/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp b/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp
index 0125e523653..a243380246e 100644
--- a/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp
+++ b/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp
@@ -66,7 +66,8 @@ struct DropFilegroupRef {
NotMaster = 702,
NoSuchFilegroup = 767,
FilegroupInUse = 768,
- InvalidSchemaObjectVersion = 774
+ InvalidSchemaObjectVersion = 774,
+ SingleUser = 299
};
Uint32 senderData;
@@ -152,7 +153,8 @@ struct DropFileRef {
NotMaster = 702,
NoSuchFile = 766,
DropUndoFileNotSupported = 769,
- InvalidSchemaObjectVersion = 774
+ InvalidSchemaObjectVersion = 774,
+ SingleUser = 299
};
Uint32 senderData;
diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
index 46c7c71d886..318dc1aea8e 100644
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
@@ -2659,25 +2659,63 @@ checkSchemaStatus(Uint32 tableType, Uint32 pass)
case DictTabInfo::IndexTrigger:
return false;
case DictTabInfo::LogfileGroup:
- return pass == 0;
+ return pass == 0 || pass == 9 || pass == 10;
case DictTabInfo::Tablespace:
- return pass == 1;
+ return pass == 1 || pass == 8 || pass == 11;
case DictTabInfo::Datafile:
case DictTabInfo::Undofile:
- return pass == 2;
+ return pass == 2 || pass == 7 || pass == 12;
case DictTabInfo::SystemTable:
case DictTabInfo::UserTable:
- return pass == 3;
+ return /* pass == 3 || pass == 6 || */ pass == 13;
case DictTabInfo::UniqueHashIndex:
case DictTabInfo::HashIndex:
case DictTabInfo::UniqueOrderedIndex:
case DictTabInfo::OrderedIndex:
- return pass == 4;
+ return /* pass == 4 || pass == 5 || */ pass == 14;
}
return false;
}
+static const Uint32 CREATE_OLD_PASS = 4;
+static const Uint32 DROP_OLD_PASS = 9;
+static const Uint32 CREATE_NEW_PASS = 14;
+static const Uint32 LAST_PASS = 14;
+
+NdbOut&
+operator<<(NdbOut& out, const SchemaFile::TableEntry entry)
+{
+ out << "[";
+ out << " state: " << entry.m_tableState;
+ out << " version: " << hex << entry.m_tableVersion << dec;
+ out << " type: " << entry.m_tableType;
+ out << " words: " << entry.m_info_words;
+ out << " gcp: " << entry.m_gcp;
+ out << " ]";
+ return out;
+}
+
+/**
+ * Pass 0 Create old LogfileGroup
+ * Pass 1 Create old Tablespace
+ * Pass 2 Create old Datafile/Undofile
+ * Pass 3 Create old Table // NOT DONE DUE TO DIH
+ * Pass 4 Create old Index // NOT DONE DUE TO DIH
+
+ * Pass 5 Drop old Index // NOT DONE DUE TO DIH
+ * Pass 6 Drop old Table // NOT DONE DUE TO DIH
+ * Pass 7 Drop old Datafile/Undofile
+ * Pass 8 Drop old Tablespace
+ * Pass 9 Drop old Logfilegroup
+
+ * Pass 10 Create new LogfileGroup
+ * Pass 11 Create new Tablespace
+ * Pass 12 Create new Datafile/Undofile
+ * Pass 13 Create new Table
+ * Pass 14 Create new Index
+ */
+
void Dbdict::checkSchemaStatus(Signal* signal)
{
XSchemaFile * newxsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
@@ -2692,287 +2730,132 @@ void Dbdict::checkSchemaStatus(Signal* signal)
Uint32 tableId = c_restartRecord.activeTable;
SchemaFile::TableEntry *newEntry = getTableEntry(newxsf, tableId);
SchemaFile::TableEntry *oldEntry = getTableEntry(oldxsf, tableId);
- SchemaFile::TableState schemaState =
+ SchemaFile::TableState newSchemaState =
(SchemaFile::TableState)newEntry->m_tableState;
SchemaFile::TableState oldSchemaState =
(SchemaFile::TableState)oldEntry->m_tableState;
if (c_restartRecord.activeTable >= c_tableRecordPool.getSize()) {
jam();
- ndbrequire(schemaState == SchemaFile::INIT);
+ ndbrequire(newSchemaState == SchemaFile::INIT);
ndbrequire(oldSchemaState == SchemaFile::INIT);
continue;
}//if
- if(!::checkSchemaStatus(oldEntry->m_tableType, c_restartRecord.m_pass))
- continue;
-
- if(!::checkSchemaStatus(newEntry->m_tableType, c_restartRecord.m_pass))
- continue;
+//#define PRINT_SCHEMA_RESTART
+#ifdef PRINT_SCHEMA_RESTART
+ char buf[100];
+ snprintf(buf, sizeof(buf), "checkSchemaStatus: pass: %d table: %d",
+ c_restartRecord.m_pass, tableId);
+#endif
- switch(schemaState){
- case SchemaFile::INIT:{
- jam();
- bool ok = false;
- switch(oldSchemaState) {
- case SchemaFile::INIT:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:
- jam();
- ok = true;
- jam();
- break;
-
- case SchemaFile::ADD_STARTED:
- jam();
- case SchemaFile::TABLE_ADD_COMMITTED:
- jam();
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::ALTER_TABLE_COMMITTED:
- jam();
- ok = true;
- jam();
- newEntry->m_tableState = SchemaFile::INIT;
- restartDropTab(signal, tableId);
- return;
+ if (c_restartRecord.m_pass <= CREATE_OLD_PASS)
+ {
+ if (!::checkSchemaStatus(oldEntry->m_tableType, c_restartRecord.m_pass))
+ continue;
- case SchemaFile::TEMPORARY_TABLE_COMMITTED:
- // Temporary table is never written to disk, so just set to INIT.
- jam();
- ok = true;
- newEntry->m_tableState = SchemaFile::INIT;
- break;
- }//switch
- ndbrequire(ok);
- break;
- }
- case SchemaFile::ADD_STARTED:{
- jam();
- bool ok = false;
- switch(oldSchemaState) {
- case SchemaFile::INIT:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:
- jam();
- ok = true;
- break;
- case SchemaFile::ADD_STARTED:
- jam();
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::TABLE_ADD_COMMITTED:
- jam();
- case SchemaFile::ALTER_TABLE_COMMITTED:
+ switch(oldSchemaState){
+ case SchemaFile::INIT: jam();
+ case SchemaFile::DROP_TABLE_COMMITTED: jam();
+ case SchemaFile::ADD_STARTED: jam();
+ case SchemaFile::DROP_TABLE_STARTED: jam();
+ case SchemaFile::TEMPORARY_TABLE_COMMITTED: jam();
+ continue;
+ case SchemaFile::TABLE_ADD_COMMITTED: jam();
+ case SchemaFile::ALTER_TABLE_COMMITTED: jam();
jam();
- ok = true;
- //------------------------------------------------------------------
- // Add Table was started but not completed. Will be dropped in all
- // nodes. Update schema information (restore table version).
- //------------------------------------------------------------------
- newEntry->m_tableState = SchemaFile::INIT;
- restartDropTab(signal, tableId);
- return;
- case SchemaFile::TEMPORARY_TABLE_COMMITTED:
- jam();
- ok = true;
- newEntry->m_tableState = SchemaFile::INIT;
- break;
+#ifdef PRINT_SCHEMA_RESTART
+ ndbout_c("%s -> restartCreateTab", buf);
+ ndbout << *newEntry << " " << *oldEntry << endl;
+#endif
+ restartCreateTab(signal, tableId, oldEntry, oldEntry, true);
+ return;
}
- ndbrequire(ok);
- break;
}
- case SchemaFile::TABLE_ADD_COMMITTED:{
- jam();
- bool ok = false;
- switch(oldSchemaState) {
- case SchemaFile::INIT:
- jam();
- case SchemaFile::ADD_STARTED:
- jam();
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:
- jam();
- ok = true;
- //------------------------------------------------------------------
- // Table was added in the master node but not in our node. We can
- // retrieve the table definition from the master.
- //------------------------------------------------------------------
- restartCreateTab(signal, tableId, oldEntry, newEntry, false);
- return;
- break;
- case SchemaFile::TABLE_ADD_COMMITTED:
- jam();
- case SchemaFile::ALTER_TABLE_COMMITTED:
- jam();
- ok = true;
- //------------------------------------------------------------------
- // Table was added in both our node and the master node. We can
- // retrieve the table definition from our own disk.
- //------------------------------------------------------------------
- if(newEntry->m_tableVersion == oldEntry->m_tableVersion)
- {
- jam();
- ndbrequire(newEntry->m_gcp == oldEntry->m_gcp);
- ndbrequire(newEntry->m_tableType == oldEntry->m_tableType);
- Uint32 type= oldEntry->m_tableType;
- // On NR get index from master because index state is not on file
- const bool file = c_systemRestart || !DictTabInfo::isIndex(type);
- newEntry->m_info_words= oldEntry->m_info_words;
- restartCreateTab(signal, tableId, oldEntry, newEntry, file);
- return;
- } else {
- //------------------------------------------------------------------
- // Must be a new version of the table if anything differs. Both table
- // version and global checkpoint must be different.
- // This should not happen for the master node. This can happen after
- // drop table followed by add table or after change table.
- // Not supported in this version.
- //------------------------------------------------------------------
- ndbrequire(c_masterNodeId != getOwnNodeId());
- ndbrequire(newEntry->m_tableVersion != oldEntry->m_tableVersion);
- jam();
-
- restartCreateTab(signal, tableId, oldEntry, newEntry, false);
- return;
- }//if
- case SchemaFile::TEMPORARY_TABLE_COMMITTED:
- jam();
- ok = true;
- // For NR, we must re-create the table.
- // For SR, we do nothing as the table was never saved to disk.
- if(!c_systemRestart)
+ if (c_restartRecord.m_pass <= DROP_OLD_PASS)
+ {
+ if (!::checkSchemaStatus(oldEntry->m_tableType, c_restartRecord.m_pass))
+ continue;
+
+ switch(oldSchemaState){
+ case SchemaFile::INIT: jam();
+ case SchemaFile::DROP_TABLE_COMMITTED: jam();
+ case SchemaFile::TEMPORARY_TABLE_COMMITTED: jam();
+ continue;
+ case SchemaFile::ADD_STARTED: jam();
+ case SchemaFile::DROP_TABLE_STARTED: jam();
+#ifdef PRINT_SCHEMA_RESTART
+ ndbout_c("%s -> restartDropTab", buf);
+ ndbout << *newEntry << " " << *oldEntry << endl;
+#endif
+ restartDropTab(signal, tableId, oldEntry, newEntry);
+ return;
+ case SchemaFile::TABLE_ADD_COMMITTED: jam();
+ case SchemaFile::ALTER_TABLE_COMMITTED: jam();
+ if (! (* oldEntry == * newEntry))
{
- restartCreateTab(signal, tableId, oldEntry, newEntry, false);
+#ifdef PRINT_SCHEMA_RESTART
+ ndbout_c("%s -> restartDropTab", buf);
+ ndbout << *newEntry << " " << *oldEntry << endl;
+#endif
+ restartDropTab(signal, tableId, oldEntry, newEntry);
return;
}
- break;
- }
- ndbrequire(ok);
- break;
- }
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:{
- jam();
- bool ok = false;
- switch(oldSchemaState){
- case SchemaFile::INIT:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:
- jam();
- ok = true;
- break;
- case SchemaFile::ADD_STARTED:
- jam();
- case SchemaFile::TABLE_ADD_COMMITTED:
- jam();
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::ALTER_TABLE_COMMITTED:
- jam();
- newEntry->m_tableState = SchemaFile::INIT;
- restartDropTab(signal, tableId);
- return;
- case SchemaFile::TEMPORARY_TABLE_COMMITTED:
- jam();
- ok = true;
- newEntry->m_tableState = SchemaFile::INIT;
- break;
+ continue;
}
- ndbrequire(ok);
- break;
}
- case SchemaFile::ALTER_TABLE_COMMITTED: {
- jam();
- bool ok = false;
- switch(oldSchemaState) {
- case SchemaFile::INIT:
- jam();
- case SchemaFile::ADD_STARTED:
- jam();
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:
- jam();
- case SchemaFile::TEMPORARY_TABLE_COMMITTED:
- jam();
- ok = true;
- if(!c_systemRestart)
+
+ if (c_restartRecord.m_pass <= CREATE_NEW_PASS)
+ {
+ if (!::checkSchemaStatus(newEntry->m_tableType, c_restartRecord.m_pass))
+ continue;
+
+ switch(newSchemaState){
+ case SchemaFile::INIT: jam();
+ case SchemaFile::DROP_TABLE_COMMITTED: jam();
+ case SchemaFile::TEMPORARY_TABLE_COMMITTED: jam();
+ * oldEntry = * newEntry;
+ continue;
+ case SchemaFile::ADD_STARTED: jam();
+ case SchemaFile::DROP_TABLE_STARTED: jam();
+ ndbrequire(false);
+ return;
+ case SchemaFile::TABLE_ADD_COMMITTED: jam();
+ case SchemaFile::ALTER_TABLE_COMMITTED: jam();
+ if (DictTabInfo::isIndex(newEntry->m_tableType) ||
+ DictTabInfo::isTable(newEntry->m_tableType))
{
- restartCreateTab(signal, tableId, oldEntry, newEntry, false);
+ bool file = * oldEntry == *newEntry &&
+ (!DictTabInfo::isIndex(newEntry->m_tableType) || c_systemRestart);
+
+#ifdef PRINT_SCHEMA_RESTART
+ ndbout_c("%s -> restartCreateTab (file: %d)", buf, file);
+ ndbout << *newEntry << " " << *oldEntry << endl;
+#endif
+ restartCreateTab(signal, tableId, newEntry, newEntry, file);
+ * oldEntry = * newEntry;
return;
}
- break;
- case SchemaFile::TABLE_ADD_COMMITTED:
- jam();
- ok = true;
- //------------------------------------------------------------------
- // Table was altered in the master node but not in our node. We can
- // retrieve the altered table definition from the master.
- //------------------------------------------------------------------
- restartCreateTab(signal, tableId, oldEntry, newEntry, false);
- return;
- break;
- case SchemaFile::ALTER_TABLE_COMMITTED:
- jam();
- ok = true;
-
- //------------------------------------------------------------------
- // Table was altered in both our node and the master node. We can
- // retrieve the table definition from our own disk.
- //------------------------------------------------------------------
-
- // On NR get index from master because index state is not on file
- Uint32 type= oldEntry->m_tableType;
- const bool file = (* newEntry == * oldEntry) &&
- (c_systemRestart || !DictTabInfo::isIndex(type));
- newEntry->m_info_words= oldEntry->m_info_words;
- restartCreateTab(signal, tableId, oldEntry, newEntry, file);
- return;
- }
- ndbrequire(ok);
- break;
- }
- case SchemaFile::TEMPORARY_TABLE_COMMITTED: {
- jam();
- bool ok = false;
- switch(oldSchemaState){
- case SchemaFile::INIT:
- jam();
- case SchemaFile::DROP_TABLE_COMMITTED:
- jam();
- case SchemaFile::ADD_STARTED:
- jam();
- case SchemaFile::TABLE_ADD_COMMITTED:
- jam();
- case SchemaFile::DROP_TABLE_STARTED:
- jam();
- case SchemaFile::ALTER_TABLE_COMMITTED:
- jam();
- case SchemaFile::TEMPORARY_TABLE_COMMITTED:
- jam();
- ok = true;
- if(!c_systemRestart)
+ else if (! (* oldEntry == *newEntry))
{
- restartCreateTab(signal, tableId, oldEntry, newEntry, false);
+#ifdef PRINT_SCHEMA_RESTART
+ ndbout_c("%s -> restartCreateTab", buf);
+ ndbout << *newEntry << " " << *oldEntry << endl;
+#endif
+ restartCreateTab(signal, tableId, oldEntry, newEntry, false);
+ * oldEntry = * newEntry;
return;
- } else {
- newEntry->m_tableState = SchemaFile::INIT;
- }
- break;
+ }
+ * oldEntry = * newEntry;
+ continue;
}
- ndbrequire(ok);
- break;
- }
}
}
c_restartRecord.m_pass++;
c_restartRecord.activeTable= 0;
- if(c_restartRecord.m_pass <= 4)
+ if(c_restartRecord.m_pass <= LAST_PASS)
{
checkSchemaStatus(signal);
}
@@ -3299,7 +3182,33 @@ Dbdict::releaseCreateTableOp(Signal* signal, CreateTableRecordPtr createTabPtr)
}
void
-Dbdict::restartDropTab(Signal* signal, Uint32 tableId){
+Dbdict::restartDropTab(Signal* signal, Uint32 tableId,
+ const SchemaFile::TableEntry * old_entry,
+ const SchemaFile::TableEntry * new_entry)
+{
+ switch(old_entry->m_tableType){
+ case DictTabInfo::UndefTableType:
+ case DictTabInfo::HashIndexTrigger:
+ case DictTabInfo::SubscriptionTrigger:
+ case DictTabInfo::ReadOnlyConstraint:
+ case DictTabInfo::IndexTrigger:
+ ndbrequire(false);
+ case DictTabInfo::SystemTable:
+ case DictTabInfo::UserTable:
+ case DictTabInfo::UniqueHashIndex:
+ case DictTabInfo::HashIndex:
+ case DictTabInfo::UniqueOrderedIndex:
+ case DictTabInfo::OrderedIndex:
+ break;
+ case DictTabInfo::Tablespace:
+ case DictTabInfo::LogfileGroup:
+ case DictTabInfo::Datafile:
+ case DictTabInfo::Undofile:
+ warningEvent("Dont drop object: %d", tableId);
+ c_restartRecord.activeTable++;
+ checkSchemaStatus(signal);
+ return;
+ }
const Uint32 key = ++c_opRecordSequence;
@@ -3333,6 +3242,7 @@ Dbdict::restartDropTab_complete(Signal* signal,
//@todo check error
+ releaseTableObject(c_restartRecord.activeTable);
c_opDropTable.release(dropTabPtr);
c_restartRecord.activeTable++;
@@ -8158,6 +8068,7 @@ Dbdict::createIndex_toCreateTable(Signal* signal, OpCreateIndexPtr opPtr)
w.add(DictTabInfo::NoOfKeyAttr, indexPtr.p->noOfPrimkey);
w.add(DictTabInfo::NoOfNullable, indexPtr.p->noOfNullAttr);
w.add(DictTabInfo::KeyLength, indexPtr.p->tupKeyLength);
+ w.add(DictTabInfo::SingleUserMode, (Uint32)NDB_SUM_READ_WRITE);
// write index key attributes
for (k = 0; k < opPtr.p->m_attrList.sz; k++) {
// insert the attributes in the order decided above in attrid_map
@@ -14084,6 +13995,15 @@ Dbdict::execCREATE_FILE_REQ(Signal* signal){
break;
}
+ if (checkSingleUserMode(senderRef))
+ {
+ ref->errorCode = CreateFileRef::SingleUser;
+ ref->status = 0;
+ ref->errorKey = 0;
+ ref->errorLine = __LINE__;
+ break;
+ }
+
Ptr<SchemaTransaction> trans_ptr;
if (! c_Trans.seize(trans_ptr)){
ref->errorCode = CreateFileRef::Busy;
@@ -14189,6 +14109,15 @@ Dbdict::execCREATE_FILEGROUP_REQ(Signal* signal){
break;
}
+ if (checkSingleUserMode(senderRef))
+ {
+ ref->errorCode = CreateFilegroupRef::SingleUser;
+ ref->status = 0;
+ ref->errorKey = 0;
+ ref->errorLine = __LINE__;
+ break;
+ }
+
Ptr<SchemaTransaction> trans_ptr;
if (! c_Trans.seize(trans_ptr)){
ref->errorCode = CreateFilegroupRef::Busy;
@@ -14291,6 +14220,14 @@ Dbdict::execDROP_FILE_REQ(Signal* signal)
break;
}
+ if (checkSingleUserMode(senderRef))
+ {
+ ref->errorCode = DropFileRef::SingleUser;
+ ref->errorKey = 0;
+ ref->errorLine = __LINE__;
+ break;
+ }
+
Ptr<File> file_ptr;
if (!c_file_hash.find(file_ptr, objId))
{
@@ -14309,7 +14246,7 @@ Dbdict::execDROP_FILE_REQ(Signal* signal)
Ptr<SchemaTransaction> trans_ptr;
if (! c_Trans.seize(trans_ptr))
{
- ref->errorCode = CreateFileRef::Busy;
+ ref->errorCode = DropFileRef::Busy;
ref->errorLine = __LINE__;
break;
}
@@ -14392,6 +14329,14 @@ Dbdict::execDROP_FILEGROUP_REQ(Signal* signal)
break;
}
+ if (checkSingleUserMode(senderRef))
+ {
+ ref->errorCode = DropFilegroupRef::SingleUser;
+ ref->errorKey = 0;
+ ref->errorLine = __LINE__;
+ break;
+ }
+
Ptr<Filegroup> filegroup_ptr;
if (!c_filegroup_hash.find(filegroup_ptr, objId))
{
@@ -14410,7 +14355,7 @@ Dbdict::execDROP_FILEGROUP_REQ(Signal* signal)
Ptr<SchemaTransaction> trans_ptr;
if (! c_Trans.seize(trans_ptr))
{
- ref->errorCode = CreateFilegroupRef::Busy;
+ ref->errorCode = DropFilegroupRef::Busy;
ref->errorLine = __LINE__;
break;
}
diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
index 9665f016600..a5a9a83d7e3 100644
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
@@ -2560,7 +2560,9 @@ private:
void restartCreateTab_dihComplete(Signal* signal, Uint32 callback, Uint32);
void restartCreateTab_activateComplete(Signal*, Uint32 callback, Uint32);
- void restartDropTab(Signal* signal, Uint32 tableId);
+ void restartDropTab(Signal* signal, Uint32 tableId,
+ const SchemaFile::TableEntry *,
+ const SchemaFile::TableEntry *);
void restartDropTab_complete(Signal*, Uint32 callback, Uint32);
void restart_checkSchemaStatusComplete(Signal*, Uint32 callback, Uint32);
diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
index c89d78d23cf..b0b0cec6b76 100644
--- a/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
+++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
@@ -1216,7 +1216,7 @@ Dbtup::read_pseudo(Uint32 attrId,
return 0;
case AttributeHeader::COPY_ROWID:
outBuffer[0] = operPtr.p->m_copy_tuple_location.m_page_no;
- outBuffer[0] = operPtr.p->m_copy_tuple_location.m_page_idx;
+ outBuffer[1] = operPtr.p->m_copy_tuple_location.m_page_idx;
return 2;
default:
return 0;
diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
index aa124770d23..44f8a8ab05b 100644
--- a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
+++ b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
@@ -217,6 +217,8 @@ Ndbfs::execFSOPENREQ(Signal* signal)
releaseSections(signal);
}
file->reportTo(&theFromThreads);
+ if (getenv("NDB_TRACE_OPEN"))
+ ndbout_c("open(%s)", file->theFileName.c_str());
Request* request = theRequestPool->get();
request->action = Request::open;
diff --git a/storage/ndb/src/mgmapi/Makefile.am b/storage/ndb/src/mgmapi/Makefile.am
index 518dac8b3ef..96ee65d7d9e 100644
--- a/storage/ndb/src/mgmapi/Makefile.am
+++ b/storage/ndb/src/mgmapi/Makefile.am
@@ -13,13 +13,16 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+MYSQLCLUSTERdir= .
+
noinst_LTLIBRARIES = libmgmapi.la
-libmgmapi_la_SOURCES = mgmapi.cpp ndb_logevent.cpp mgmapi_configuration.cpp LocalConfig.cpp ../kernel/error/ndbd_exit_codes.c ../mgmsrv/ParamInfo.cpp
+libmgmapi_la_SOURCES = mgmapi.cpp ndb_logevent.cpp mgmapi_configuration.cpp LocalConfig.cpp ../kernel/error/ndbd_exit_codes.c ../mgmsrv/ConfigInfo.cpp
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/include/mgmapi
-DEFS_LOC = -DNO_DEBUG_MESSAGES -DNDB_PORT="\"@ndb_port@\""
+DEFS_LOC = -DNDB_MGMAPI -DMYSQLCLUSTERDIR="\"$(MYSQLCLUSTERdir)\"" \
+ -DNO_DEBUG_MESSAGES -DNDB_PORT="\"@ndb_port@\""
include $(top_srcdir)/storage/ndb/config/common.mk.am
include $(top_srcdir)/storage/ndb/config/type_util.mk.am
diff --git a/storage/ndb/src/mgmapi/mgmapi_configuration.cpp b/storage/ndb/src/mgmapi/mgmapi_configuration.cpp
index bfdc29b599f..553b079a22f 100644
--- a/storage/ndb/src/mgmapi/mgmapi_configuration.cpp
+++ b/storage/ndb/src/mgmapi/mgmapi_configuration.cpp
@@ -16,10 +16,7 @@
#include <ndb_types.h>
#include <mgmapi.h>
#include "mgmapi_configuration.hpp"
-#include "../mgmsrv/ParamInfo.hpp"
-
-extern const ParamInfo ParamInfoArray[];
-extern const int ParamInfoNum;
+#include "../mgmsrv/ConfigInfo.hpp"
ndb_mgm_configuration_iterator::ndb_mgm_configuration_iterator
(const ndb_mgm_configuration & conf, unsigned type_of_section)
@@ -187,18 +184,19 @@ ndb_mgm_get_db_parameter_info(Uint32 paramId, struct ndb_mgm_param_info * info,
return -1;
}
- for (int i = 0; i < ParamInfoNum; i++) {
- if (paramId == ParamInfoArray[i]._paramId && strcmp(DB_TOKEN, ParamInfoArray[i]._section) == 0) {
+ ConfigInfo data;
+ for (int i = 0; i < data.m_NoOfParams; i++) {
+ if (paramId == data.m_ParamInfo[i]._paramId && strcmp("DB", data.m_ParamInfo[i]._section) == 0) {
size_t tmp = 0;
if (tmp + sizeof(info->m_id) <= *size)
{
- info->m_id = ParamInfoArray[i]._paramId;
+ info->m_id = data.m_ParamInfo[i]._paramId;
tmp += sizeof(info->m_id);
}
if (tmp + sizeof(info->m_name) <= *size)
{
- info->m_name = ParamInfoArray[i]._fname;
+ info->m_name = data.m_ParamInfo[i]._fname;
tmp += sizeof(info->m_name);
}
diff --git a/storage/ndb/src/mgmsrv/ConfigInfo.cpp b/storage/ndb/src/mgmsrv/ConfigInfo.cpp
index 05abe4ced9e..26e50cb8a68 100644
--- a/storage/ndb/src/mgmsrv/ConfigInfo.cpp
+++ b/storage/ndb/src/mgmsrv/ConfigInfo.cpp
@@ -14,6 +14,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <ndb_global.h>
+#ifndef NDB_MGMAPI
#include <ndb_opt_defaults.h>
#include <NdbTCP.h>
@@ -26,6 +27,11 @@
extern my_bool opt_ndb_shm;
extern my_bool opt_core;
+#else
+#include "ConfigInfo.hpp"
+#include <mgmapi_config_parameters.h>
+#endif /* NDB_MGMAPI */
+
#define MAX_LINE_LENGTH 255
#define KEY_INTERNAL 0
#define MAX_INT_RNIL 0xfffffeff
@@ -46,6 +52,7 @@ extern my_bool opt_core;
#define MGM_TOKEN "MGM"
#define API_TOKEN "API"
+#ifndef NDB_MGMAPI
const ConfigInfo::AliasPair
ConfigInfo::m_sectionNameAliases[]={
{API_TOKEN, "MYSQLD"},
@@ -218,6 +225,7 @@ const DepricationTransform f_deprication[] = {
{ MGM_TOKEN, "Id", "NodeId", 0, 1 },
{ 0, 0, 0, 0, 0}
};
+#endif /* NDB_MGMAPI */
/**
* The default constructors create objects with suitable values for the
@@ -2154,7 +2162,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
const int ConfigInfo::m_NoOfParams = sizeof(m_ParamInfo) / sizeof(ParamInfo);
-
+#ifndef NDB_MGMAPI
/****************************************************************************
* Ctor
****************************************************************************/
@@ -3742,3 +3750,4 @@ check_node_vs_replicas(Vector<ConfigInfo::ConfigRuleSection>&sections,
}
template class Vector<ConfigInfo::ConfigRuleSection>;
+#endif /* NDB_MGMAPI */
diff --git a/storage/ndb/src/mgmsrv/ConfigInfo.hpp b/storage/ndb/src/mgmsrv/ConfigInfo.hpp
index 6f9c8ad17b8..94543dbdc5e 100644
--- a/storage/ndb/src/mgmsrv/ConfigInfo.hpp
+++ b/storage/ndb/src/mgmsrv/ConfigInfo.hpp
@@ -16,11 +16,13 @@
#ifndef ConfigInfo_H
#define ConfigInfo_H
+#ifndef NDB_MGMAPI
#include <kernel_types.h>
#include <Properties.hpp>
#include <ndb_limits.h>
#include <NdbOut.hpp>
#include "InitConfigFileParser.hpp"
+#endif /* NDB_MGMAPI */
/**
* A MANDATORY parameters must be specified in the config file
@@ -63,6 +65,7 @@ public:
const char* _max;
};
+#ifndef NDB_MGMAPI
struct AliasPair{
const char * name;
const char * alias;
@@ -132,14 +135,17 @@ private:
static const AliasPair m_sectionNameAliases[];
static const char* m_sectionNames[];
static const int m_noOfSectionNames;
+#endif /* NDB_MGMAPI */
public:
static const ParamInfo m_ParamInfo[];
static const int m_NoOfParams;
+#ifndef NDB_MGMAPI
static const SectionRule m_SectionRules[];
static const ConfigRule m_ConfigRules[];
static const int m_NoOfRules;
+#endif /* NDB_MGMAPI */
};
#endif // ConfigInfo_H
diff --git a/storage/ndb/src/mgmsrv/ParamInfo.cpp b/storage/ndb/src/mgmsrv/ParamInfo.cpp
deleted file mode 100644
index 26a759e43d2..00000000000
--- a/storage/ndb/src/mgmsrv/ParamInfo.cpp
+++ /dev/null
@@ -1,2088 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <ndb_global.h>
-#include <../../include/kernel/ndb_limits.h>
-#include "ParamInfo.hpp"
-#include <mgmapi_config_parameters.h>
-
-#ifndef MYSQLCLUSTERDIR
-#define MYSQLCLUSTERDIR "."
-#endif
-
-#define KEY_INTERNAL 0
-#define MAX_INT_RNIL 0xfffffeff
-#define MAX_PORT_NO 65535
-
-#define _STR_VALUE(x) #x
-#define STR_VALUE(x) _STR_VALUE(x)
-
-/****************************************************************************
- * Section names
- ****************************************************************************/
-#define DB_TOKEN_PRINT "ndbd(DB)"
-#define MGM_TOKEN_PRINT "ndb_mgmd(MGM)"
-#define API_TOKEN_PRINT "mysqld(API)"
-
-/**
- * A MANDATORY parameters must be specified in the config file
- * An UNDEFINED parameter may or may not be specified in the config file
- */
-static const char* MANDATORY = (char*)~(UintPtr)0;// Default value for mandatory params.
-static const char* UNDEFINED = 0; // Default value for undefined params.
-
-extern const ParamInfo ParamInfoArray[];
-extern const int ParamInfoNum;
-
-/**
- * The default constructors create objects with suitable values for the
- * configuration parameters.
- *
- * Some are however given the value MANDATORY which means that the value
- * must be specified in the configuration file.
- *
- * Min and max values are also given for some parameters.
- * - Attr1: Name in file (initial config file)
- * - Attr2: Name in prop (properties object)
- * - Attr3: Name of Section (in init config file)
- * - Attr4: Updateable
- * - Attr5: Type of parameter (INT or BOOL)
- * - Attr6: Default Value (number only)
- * - Attr7: Min value
- * - Attr8: Max value
- *
- * Parameter constraints are coded in file Config.cpp.
- *
- * *******************************************************************
- * Parameters used under development should be marked "NOTIMPLEMENTED"
- * *******************************************************************
- */
-const ParamInfo ParamInfoArray[] = {
-
- /****************************************************************************
- * COMPUTER
- ***************************************************************************/
- {
- KEY_INTERNAL,
- "COMPUTER",
- "COMPUTER",
- "Computer section",
- CI_INTERNAL,
- false,
- CI_SECTION,
- 0,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "Id",
- "COMPUTER",
- "Name of computer",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "HostName",
- "COMPUTER",
- "Hostname of computer (e.g. mysql.com)",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "ByteOrder",
- "COMPUTER",
- 0,
- CI_DEPRICATED,
- false,
- CI_STRING,
- UNDEFINED,
- 0,
- 0 },
-
- /****************************************************************************
- * SYSTEM
- ***************************************************************************/
- {
- CFG_SECTION_SYSTEM,
- "SYSTEM",
- "SYSTEM",
- "System section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)CFG_SECTION_SYSTEM,
- 0, 0 },
-
- {
- CFG_SYS_NAME,
- "Name",
- "SYSTEM",
- "Name of system (NDB Cluster)",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- CFG_SYS_PRIMARY_MGM_NODE,
- "PrimaryMGMNode",
- "SYSTEM",
- "Node id of Primary "MGM_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_SYS_CONFIG_GENERATION,
- "ConfigGenerationNumber",
- "SYSTEM",
- "Configuration generation number",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- /***************************************************************************
- * DB
- ***************************************************************************/
- {
- CFG_SECTION_NODE,
- DB_TOKEN,
- DB_TOKEN,
- "Node section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)NODE_TYPE_DB,
- 0, 0
- },
-
- {
- CFG_NODE_HOST,
- "HostName",
- DB_TOKEN,
- "Name of computer for this node",
- CI_INTERNAL,
- false,
- CI_STRING,
- "localhost",
- 0, 0 },
-
- {
- CFG_NODE_SYSTEM,
- "System",
- DB_TOKEN,
- "Name of system for this node",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "Id",
- DB_TOKEN,
- "",
- CI_DEPRICATED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- STR_VALUE(MAX_NODES) },
-
- {
- CFG_NODE_ID,
- "NodeId",
- DB_TOKEN,
- "Number identifying the database node ("DB_TOKEN_PRINT")",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- STR_VALUE(MAX_NODES) },
-
- {
- KEY_INTERNAL,
- "ServerPort",
- DB_TOKEN,
- "Port used to setup transporter",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "1",
- STR_VALUE(MAX_PORT_NO) },
-
- {
- CFG_DB_NO_REPLICAS,
- "NoOfReplicas",
- DB_TOKEN,
- "Number of copies of all data in the database (1-4)",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- "4" },
-
- {
- CFG_DB_NO_ATTRIBUTES,
- "MaxNoOfAttributes",
- DB_TOKEN,
- "Total number of attributes stored in database. I.e. sum over all tables",
- CI_USED,
- false,
- CI_INT,
- "1000",
- "32",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_TABLES,
- "MaxNoOfTables",
- DB_TOKEN,
- "Total number of tables stored in the database",
- CI_USED,
- false,
- CI_INT,
- "128",
- "8",
- STR_VALUE(MAX_TABLES) },
-
- {
- CFG_DB_NO_ORDERED_INDEXES,
- "MaxNoOfOrderedIndexes",
- DB_TOKEN,
- "Total number of ordered indexes that can be defined in the system",
- CI_USED,
- false,
- CI_INT,
- "128",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_UNIQUE_HASH_INDEXES,
- "MaxNoOfUniqueHashIndexes",
- DB_TOKEN,
- "Total number of unique hash indexes that can be defined in the system",
- CI_USED,
- false,
- CI_INT,
- "64",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_INDEXES,
- "MaxNoOfIndexes",
- DB_TOKEN,
- "Total number of indexes that can be defined in the system",
- CI_DEPRICATED,
- false,
- CI_INT,
- "128",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_INDEX_OPS,
- "MaxNoOfConcurrentIndexOperations",
- DB_TOKEN,
- "Total number of index operations that can execute simultaneously on one "DB_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "8K",
- "0",
- STR_VALUE(MAX_INT_RNIL)
- },
-
- {
- CFG_DB_NO_TRIGGERS,
- "MaxNoOfTriggers",
- DB_TOKEN,
- "Total number of triggers that can be defined in the system",
- CI_USED,
- false,
- CI_INT,
- "768",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_TRIGGER_OPS,
- "MaxNoOfFiredTriggers",
- DB_TOKEN,
- "Total number of triggers that can fire simultaneously in one "DB_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "4000",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- KEY_INTERNAL,
- "ExecuteOnComputer",
- DB_TOKEN,
- "String referencing an earlier defined COMPUTER",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_DB_NO_SAVE_MSGS,
- "MaxNoOfSavedMessages",
- DB_TOKEN,
- "Max number of error messages in error log and max number of trace files",
- CI_USED,
- true,
- CI_INT,
- "25",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_MEMLOCK,
- "LockPagesInMainMemory",
- DB_TOKEN,
- "If set to yes, then NDB Cluster data will not be swapped out to disk",
- CI_USED,
- true,
- CI_INT,
- "0",
- "1",
- "2" },
-
- {
- CFG_DB_WATCHDOG_INTERVAL,
- "TimeBetweenWatchDogCheck",
- DB_TOKEN,
- "Time between execution checks inside a database node",
- CI_USED,
- true,
- CI_INT,
- "6000",
- "70",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_STOP_ON_ERROR,
- "StopOnError",
- DB_TOKEN,
- "If set to N, "DB_TOKEN_PRINT" automatically restarts/recovers in case of node failure",
- CI_USED,
- true,
- CI_BOOL,
- "true",
- "false",
- "true" },
-
- {
- CFG_DB_STOP_ON_ERROR_INSERT,
- "RestartOnErrorInsert",
- DB_TOKEN,
- "See src/kernel/vm/Emulator.hpp NdbRestartType for details",
- CI_INTERNAL,
- true,
- CI_INT,
- "2",
- "0",
- "4" },
-
- {
- CFG_DB_NO_OPS,
- "MaxNoOfConcurrentOperations",
- DB_TOKEN,
- "Max number of operation records in transaction coordinator",
- CI_USED,
- false,
- CI_INT,
- "32k",
- "32",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_LOCAL_OPS,
- "MaxNoOfLocalOperations",
- DB_TOKEN,
- "Max number of operation records defined in the local storage node",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "32",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_LOCAL_SCANS,
- "MaxNoOfLocalScans",
- DB_TOKEN,
- "Max number of fragment scans in parallel in the local storage node",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "32",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_BATCH_SIZE,
- "BatchSizePerLocalScan",
- DB_TOKEN,
- "Used to calculate the number of lock records for scan with hold lock",
- CI_USED,
- false,
- CI_INT,
- STR_VALUE(DEF_BATCH_SIZE),
- "1",
- STR_VALUE(MAX_PARALLEL_OP_PER_SCAN) },
-
- {
- CFG_DB_NO_TRANSACTIONS,
- "MaxNoOfConcurrentTransactions",
- DB_TOKEN,
- "Max number of transaction executing concurrently on the "DB_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "4096",
- "32",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_NO_SCANS,
- "MaxNoOfConcurrentScans",
- DB_TOKEN,
- "Max number of scans executing concurrently on the "DB_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "256",
- "2",
- "500" },
-
- {
- CFG_DB_TRANS_BUFFER_MEM,
- "TransactionBufferMemory",
- DB_TOKEN,
- "Dynamic buffer space (in bytes) for key and attribute data allocated for each "DB_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "1M",
- "1K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_INDEX_MEM,
- "IndexMemory",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for storing indexes",
- CI_USED,
- false,
- CI_INT64,
- "18M",
- "1M",
- "1024G" },
-
- {
- CFG_DB_DATA_MEM,
- "DataMemory",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for storing data",
- CI_USED,
- false,
- CI_INT64,
- "80M",
- "1M",
- "1024G" },
-
- {
- CFG_DB_UNDO_INDEX_BUFFER,
- "UndoIndexBuffer",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for writing UNDO logs for index part",
- CI_USED,
- false,
- CI_INT,
- "2M",
- "1M",
- STR_VALUE(MAX_INT_RNIL)},
-
- {
- CFG_DB_UNDO_DATA_BUFFER,
- "UndoDataBuffer",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for writing UNDO logs for data part",
- CI_USED,
- false,
- CI_INT,
- "16M",
- "1M",
- STR_VALUE(MAX_INT_RNIL)},
-
- {
- CFG_DB_REDO_BUFFER,
- "RedoBuffer",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for writing REDO logs",
- CI_USED,
- false,
- CI_INT,
- "8M",
- "1M",
- STR_VALUE(MAX_INT_RNIL)},
-
- {
- CFG_DB_LONG_SIGNAL_BUFFER,
- "LongMessageBuffer",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for internal long messages",
- CI_USED,
- false,
- CI_INT,
- "1M",
- "512k",
- STR_VALUE(MAX_INT_RNIL)},
-
- {
- CFG_DB_DISK_PAGE_BUFFER_MEMORY,
- "DiskPageBufferMemory",
- DB_TOKEN,
- "Number bytes on each "DB_TOKEN_PRINT" node allocated for disk page buffer cache",
- CI_USED,
- false,
- CI_INT64,
- "64M",
- "4M",
- "1024G" },
-
- {
- CFG_DB_SGA,
- "SharedGlobalMemory",
- DB_TOKEN,
- "Total number bytes on each "DB_TOKEN_PRINT" node allocated for any use",
- CI_USED,
- false,
- CI_INT64,
- "20M",
- "0",
- "65536G" }, // 32k pages * 32-bit i value
-
- {
- CFG_DB_START_PARTIAL_TIMEOUT,
- "StartPartialTimeout",
- DB_TOKEN,
- "Time to wait before trying to start wo/ all nodes. 0=Wait forever",
- CI_USED,
- true,
- CI_INT,
- "30000",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_START_PARTITION_TIMEOUT,
- "StartPartitionedTimeout",
- DB_TOKEN,
- "Time to wait before trying to start partitioned. 0=Wait forever",
- CI_USED,
- true,
- CI_INT,
- "60000",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_START_FAILURE_TIMEOUT,
- "StartFailureTimeout",
- DB_TOKEN,
- "Time to wait before terminating. 0=Wait forever",
- CI_USED,
- true,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_HEARTBEAT_INTERVAL,
- "HeartbeatIntervalDbDb",
- DB_TOKEN,
- "Time between "DB_TOKEN_PRINT"-"DB_TOKEN_PRINT" heartbeats. "DB_TOKEN_PRINT" considered dead after 3 missed HBs",
- CI_USED,
- true,
- CI_INT,
- "1500",
- "10",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_API_HEARTBEAT_INTERVAL,
- "HeartbeatIntervalDbApi",
- DB_TOKEN,
- "Time between "API_TOKEN_PRINT"-"DB_TOKEN_PRINT" heartbeats. "API_TOKEN_PRINT" connection closed after 3 missed HBs",
- CI_USED,
- true,
- CI_INT,
- "1500",
- "100",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_LCP_INTERVAL,
- "TimeBetweenLocalCheckpoints",
- DB_TOKEN,
- "Time between taking snapshots of the database (expressed in 2log of bytes)",
- CI_USED,
- true,
- CI_INT,
- "20",
- "0",
- "31" },
-
- {
- CFG_DB_GCP_INTERVAL,
- "TimeBetweenGlobalCheckpoints",
- DB_TOKEN,
- "Time between doing group commit of transactions to disk",
- CI_USED,
- true,
- CI_INT,
- "2000",
- "10",
- "32000" },
-
- {
- CFG_DB_NO_REDOLOG_FILES,
- "NoOfFragmentLogFiles",
- DB_TOKEN,
- "No of 16 Mbyte Redo log files in each of 4 file sets belonging to "DB_TOKEN_PRINT" node",
- CI_USED,
- false,
- CI_INT,
- "16",
- "3",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_MAX_OPEN_FILES,
- "MaxNoOfOpenFiles",
- DB_TOKEN,
- "Max number of files open per "DB_TOKEN_PRINT" node.(One thread is created per file)",
- CI_USED,
- false,
- CI_INT,
- "0",
- "20",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_INITIAL_OPEN_FILES,
- "InitialNoOfOpenFiles",
- DB_TOKEN,
- "Initial number of files open per "DB_TOKEN_PRINT" node.(One thread is created per file)",
- CI_USED,
- false,
- CI_INT,
- "27",
- "20",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_TRANSACTION_CHECK_INTERVAL,
- "TimeBetweenInactiveTransactionAbortCheck",
- DB_TOKEN,
- "Time between inactive transaction checks",
- CI_USED,
- true,
- CI_INT,
- "1000",
- "1000",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_TRANSACTION_INACTIVE_TIMEOUT,
- "TransactionInactiveTimeout",
- DB_TOKEN,
- "Time application can wait before executing another transaction part (ms).\n"
- "This is the time the transaction coordinator waits for the application\n"
- "to execute or send another part (query, statement) of the transaction.\n"
- "If the application takes too long time, the transaction gets aborted.\n"
- "Timeout set to 0 means that we don't timeout at all on application wait.",
- CI_USED,
- true,
- CI_INT,
- STR_VALUE(MAX_INT_RNIL),
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT,
- "TransactionDeadlockDetectionTimeout",
- DB_TOKEN,
- "Time transaction can be executing in a DB node (ms).\n"
- "This is the time the transaction coordinator waits for each database node\n"
- "of the transaction to execute a request. If the database node takes too\n"
- "long time, the transaction gets aborted.",
- CI_USED,
- true,
- CI_INT,
- "1200",
- "50",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_LCP_DISC_PAGES_TUP_SR,
- "NoOfDiskPagesToDiskDuringRestartTUP",
- DB_TOKEN,
- "DiskCheckpointSpeedSr",
- CI_DEPRICATED,
- true,
- CI_INT,
- "40",
- "1",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_LCP_DISC_PAGES_TUP,
- "NoOfDiskPagesToDiskAfterRestartTUP",
- DB_TOKEN,
- "DiskCheckpointSpeed",
- CI_DEPRICATED,
- true,
- CI_INT,
- "40",
- "1",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_LCP_DISC_PAGES_ACC_SR,
- "NoOfDiskPagesToDiskDuringRestartACC",
- DB_TOKEN,
- "DiskCheckpointSpeedSr",
- CI_DEPRICATED,
- true,
- CI_INT,
- "20",
- "1",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_LCP_DISC_PAGES_ACC,
- "NoOfDiskPagesToDiskAfterRestartACC",
- DB_TOKEN,
- "DiskCheckpointSpeed",
- CI_DEPRICATED,
- true,
- CI_INT,
- "20",
- "1",
- STR_VALUE(MAX_INT_RNIL) },
-
-
- {
- CFG_DB_DISCLESS,
- "Diskless",
- DB_TOKEN,
- "Run wo/ disk",
- CI_USED,
- true,
- CI_BOOL,
- "false",
- "false",
- "true"},
-
- {
- KEY_INTERNAL,
- "Discless",
- DB_TOKEN,
- "Diskless",
- CI_DEPRICATED,
- true,
- CI_BOOL,
- "false",
- "false",
- "true"},
-
-
-
- {
- CFG_DB_ARBIT_TIMEOUT,
- "ArbitrationTimeout",
- DB_TOKEN,
- "Max time (milliseconds) database partion waits for arbitration signal",
- CI_USED,
- false,
- CI_INT,
- "3000",
- "10",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_NODE_DATADIR,
- "DataDir",
- DB_TOKEN,
- "Data directory for this node",
- CI_USED,
- false,
- CI_STRING,
- MYSQLCLUSTERDIR,
- 0, 0 },
-
- {
- CFG_DB_FILESYSTEM_PATH,
- "FileSystemPath",
- DB_TOKEN,
- "Path to directory where the "DB_TOKEN_PRINT" node stores its data (directory must exist)",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_LOGLEVEL_STARTUP,
- "LogLevelStartup",
- DB_TOKEN,
- "Node startup info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "1",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_SHUTDOWN,
- "LogLevelShutdown",
- DB_TOKEN,
- "Node shutdown info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_STATISTICS,
- "LogLevelStatistic",
- DB_TOKEN,
- "Transaction, operation, transporter info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_CHECKPOINT,
- "LogLevelCheckpoint",
- DB_TOKEN,
- "Local and Global checkpoint info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_NODERESTART,
- "LogLevelNodeRestart",
- DB_TOKEN,
- "Node restart, node failure info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_CONNECTION,
- "LogLevelConnection",
- DB_TOKEN,
- "Node connect/disconnect info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_CONGESTION,
- "LogLevelCongestion",
- DB_TOKEN,
- "Congestion info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_ERROR,
- "LogLevelError",
- DB_TOKEN,
- "Transporter, heartbeat errors printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- {
- CFG_LOGLEVEL_INFO,
- "LogLevelInfo",
- DB_TOKEN,
- "Heartbeat and log info printed on stdout",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "15" },
-
- /**
- * Backup
- */
- {
- CFG_DB_PARALLEL_BACKUPS,
- "ParallelBackups",
- DB_TOKEN,
- "Maximum number of parallel backups",
- CI_NOTIMPLEMENTED,
- false,
- CI_INT,
- "1",
- "1",
- "1" },
-
- {
- CFG_DB_BACKUP_DATADIR,
- "BackupDataDir",
- DB_TOKEN,
- "Path to where to store backups",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_DB_DISK_SYNCH_SIZE,
- "DiskSyncSize",
- DB_TOKEN,
- "Data written to a file before a synch is forced",
- CI_USED,
- false,
- CI_INT,
- "4M",
- "32k",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_CHECKPOINT_SPEED,
- "DiskCheckpointSpeed",
- DB_TOKEN,
- "Bytes per second allowed to be written by checkpoint",
- CI_USED,
- false,
- CI_INT,
- "10M",
- "1M",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_CHECKPOINT_SPEED_SR,
- "DiskCheckpointSpeedInRestart",
- DB_TOKEN,
- "Bytes per second allowed to be written by checkpoint during restart",
- CI_USED,
- false,
- CI_INT,
- "100M",
- "1M",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_BACKUP_MEM,
- "BackupMemory",
- DB_TOKEN,
- "Total memory allocated for backups per node (in bytes)",
- CI_USED,
- false,
- CI_INT,
- "4M", // sum of BackupDataBufferSize and BackupLogBufferSize
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_BACKUP_DATA_BUFFER_MEM,
- "BackupDataBufferSize",
- DB_TOKEN,
- "Default size of databuffer for a backup (in bytes)",
- CI_USED,
- false,
- CI_INT,
- "2M", // remember to change BackupMemory
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_BACKUP_LOG_BUFFER_MEM,
- "BackupLogBufferSize",
- DB_TOKEN,
- "Default size of logbuffer for a backup (in bytes)",
- CI_USED,
- false,
- CI_INT,
- "2M", // remember to change BackupMemory
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_BACKUP_WRITE_SIZE,
- "BackupWriteSize",
- DB_TOKEN,
- "Default size of filesystem writes made by backup (in bytes)",
- CI_USED,
- false,
- CI_INT,
- "32K",
- "2K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_BACKUP_MAX_WRITE_SIZE,
- "BackupMaxWriteSize",
- DB_TOKEN,
- "Max size of filesystem writes made by backup (in bytes)",
- CI_USED,
- false,
- CI_INT,
- "256K",
- "2K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_STRING_MEMORY,
- "StringMemory",
- DB_TOKEN,
- "Default size of string memory (0 -> 5% of max 1-100 -> %of max, >100 -> actual bytes)",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_DB_MEMREPORT_FREQUENCY,
- "MemReportFrequency",
- DB_TOKEN,
- "Frequency of mem reports in seconds, 0 = only when passing %-limits",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- /***************************************************************************
- * API
- ***************************************************************************/
- {
- CFG_SECTION_NODE,
- API_TOKEN,
- API_TOKEN,
- "Node section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)NODE_TYPE_API,
- 0, 0
- },
-
- {
- CFG_NODE_HOST,
- "HostName",
- API_TOKEN,
- "Name of computer for this node",
- CI_INTERNAL,
- false,
- CI_STRING,
- "",
- 0, 0 },
-
- {
- CFG_NODE_SYSTEM,
- "System",
- API_TOKEN,
- "Name of system for this node",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "Id",
- API_TOKEN,
- "",
- CI_DEPRICATED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- STR_VALUE(MAX_NODES) },
-
- {
- CFG_NODE_ID,
- "NodeId",
- API_TOKEN,
- "Number identifying application node ("API_TOKEN_PRINT")",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- STR_VALUE(MAX_NODES) },
-
- {
- KEY_INTERNAL,
- "ExecuteOnComputer",
- API_TOKEN,
- "String referencing an earlier defined COMPUTER",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_NODE_ARBIT_RANK,
- "ArbitrationRank",
- API_TOKEN,
- "If 0, then "API_TOKEN_PRINT" is not arbitrator. Kernel selects arbitrators in order 1, 2",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- "2" },
-
- {
- CFG_NODE_ARBIT_DELAY,
- "ArbitrationDelay",
- API_TOKEN,
- "When asked to arbitrate, arbitrator waits this long before voting (msec)",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_MAX_SCAN_BATCH_SIZE,
- "MaxScanBatchSize",
- "API",
- "The maximum collective batch size for one scan",
- CI_USED,
- false,
- CI_INT,
- STR_VALUE(MAX_SCAN_BATCH_SIZE),
- "32k",
- "16M" },
-
- {
- CFG_BATCH_BYTE_SIZE,
- "BatchByteSize",
- "API",
- "The default batch size in bytes",
- CI_USED,
- false,
- CI_INT,
- STR_VALUE(SCAN_BATCH_SIZE),
- "1k",
- "1M" },
-
- {
- CFG_BATCH_SIZE,
- "BatchSize",
- "API",
- "The default batch size in number of records",
- CI_USED,
- false,
- CI_INT,
- STR_VALUE(DEF_BATCH_SIZE),
- "1",
- STR_VALUE(MAX_PARALLEL_OP_PER_SCAN) },
-
- /****************************************************************************
- * MGM
- ***************************************************************************/
- {
- CFG_SECTION_NODE,
- MGM_TOKEN,
- MGM_TOKEN,
- "Node section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)NODE_TYPE_MGM,
- 0, 0
- },
-
- {
- CFG_NODE_HOST,
- "HostName",
- MGM_TOKEN,
- "Name of computer for this node",
- CI_INTERNAL,
- false,
- CI_STRING,
- "",
- 0, 0 },
-
- {
- CFG_NODE_DATADIR,
- "DataDir",
- MGM_TOKEN,
- "Data directory for this node",
- CI_USED,
- false,
- CI_STRING,
- MYSQLCLUSTERDIR,
- 0, 0 },
-
- {
- CFG_NODE_SYSTEM,
- "System",
- MGM_TOKEN,
- "Name of system for this node",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "Id",
- MGM_TOKEN,
- "",
- CI_DEPRICATED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- STR_VALUE(MAX_NODES) },
-
- {
- CFG_NODE_ID,
- "NodeId",
- MGM_TOKEN,
- "Number identifying the management server node ("MGM_TOKEN_PRINT")",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1",
- STR_VALUE(MAX_NODES) },
-
- {
- CFG_LOG_DESTINATION,
- "LogDestination",
- MGM_TOKEN,
- "String describing where logmessages are sent",
- CI_USED,
- false,
- CI_STRING,
- 0,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "ExecuteOnComputer",
- MGM_TOKEN,
- "String referencing an earlier defined COMPUTER",
- CI_USED,
- false,
- CI_STRING,
- 0,
- 0, 0 },
-
- {
- KEY_INTERNAL,
- "MaxNoOfSavedEvents",
- MGM_TOKEN,
- "",
- CI_USED,
- false,
- CI_INT,
- "100",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_MGM_PORT,
- "PortNumber",
- MGM_TOKEN,
- "Port number to give commands to/fetch configurations from management server",
- CI_USED,
- false,
- CI_INT,
- NDB_PORT,
- "0",
- STR_VALUE(MAX_PORT_NO) },
-
- {
- KEY_INTERNAL,
- "PortNumberStats",
- MGM_TOKEN,
- "Port number used to get statistical information from a management server",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "0",
- STR_VALUE(MAX_PORT_NO) },
-
- {
- CFG_NODE_ARBIT_RANK,
- "ArbitrationRank",
- MGM_TOKEN,
- "If 0, then "MGM_TOKEN_PRINT" is not arbitrator. Kernel selects arbitrators in order 1, 2",
- CI_USED,
- false,
- CI_INT,
- "1",
- "0",
- "2" },
-
- {
- CFG_NODE_ARBIT_DELAY,
- "ArbitrationDelay",
- MGM_TOKEN,
- "",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- /****************************************************************************
- * TCP
- ***************************************************************************/
- {
- CFG_SECTION_CONNECTION,
- "TCP",
- "TCP",
- "Connection section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)CONNECTION_TYPE_TCP,
- 0, 0
- },
-
- {
- CFG_CONNECTION_HOSTNAME_1,
- "HostName1",
- "TCP",
- "Name/IP of computer on one side of the connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_HOSTNAME_2,
- "HostName2",
- "TCP",
- "Name/IP of computer on one side of the connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_1,
- "NodeId1",
- "TCP",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_2,
- "NodeId2",
- "TCP",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- CFG_CONNECTION_GROUP,
- "Group",
- "TCP",
- "",
- CI_USED,
- false,
- CI_INT,
- "55",
- "0", "200" },
-
- {
- CFG_CONNECTION_NODE_ID_SERVER,
- "NodeIdServer",
- "TCP",
- "",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1", "63" },
-
- {
- CFG_CONNECTION_SEND_SIGNAL_ID,
- "SendSignalId",
- "TCP",
- "Sends id in each signal. Used in trace files.",
- CI_USED,
- false,
- CI_BOOL,
- "true",
- "false",
- "true" },
-
-
- {
- CFG_CONNECTION_CHECKSUM,
- "Checksum",
- "TCP",
- "If checksum is enabled, all signals between nodes are checked for errors",
- CI_USED,
- false,
- CI_BOOL,
- "false",
- "false",
- "true" },
-
- {
- CFG_CONNECTION_SERVER_PORT,
- "PortNumber",
- "TCP",
- "Port used for this transporter",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "0",
- STR_VALUE(MAX_PORT_NO) },
-
- {
- CFG_TCP_SEND_BUFFER_SIZE,
- "SendBufferMemory",
- "TCP",
- "Bytes of buffer for signals sent from this node",
- CI_USED,
- false,
- CI_INT,
- "256K",
- "64K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_TCP_RECEIVE_BUFFER_SIZE,
- "ReceiveBufferMemory",
- "TCP",
- "Bytes of buffer for signals received by this node",
- CI_USED,
- false,
- CI_INT,
- "64K",
- "16K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_TCP_PROXY,
- "Proxy",
- "TCP",
- "",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_1_SYSTEM,
- "NodeId1_System",
- "TCP",
- "System for node 1 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_2_SYSTEM,
- "NodeId2_System",
- "TCP",
- "System for node 2 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
-
- /****************************************************************************
- * SHM
- ***************************************************************************/
- {
- CFG_SECTION_CONNECTION,
- "SHM",
- "SHM",
- "Connection section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)CONNECTION_TYPE_SHM,
- 0, 0 },
-
- {
- CFG_CONNECTION_HOSTNAME_1,
- "HostName1",
- "SHM",
- "Name/IP of computer on one side of the connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_HOSTNAME_2,
- "HostName2",
- "SHM",
- "Name/IP of computer on one side of the connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_SERVER_PORT,
- "PortNumber",
- "SHM",
- "Port used for this transporter",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "0",
- STR_VALUE(MAX_PORT_NO) },
-
- {
- CFG_SHM_SIGNUM,
- "Signum",
- "SHM",
- "Signum to be used for signalling",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_NODE_1,
- "NodeId1",
- "SHM",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_2,
- "NodeId2",
- "SHM",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- 0, 0 },
-
- {
- CFG_CONNECTION_GROUP,
- "Group",
- "SHM",
- "",
- CI_USED,
- false,
- CI_INT,
- "35",
- "0", "200" },
-
- {
- CFG_CONNECTION_NODE_ID_SERVER,
- "NodeIdServer",
- "SHM",
- "",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1", "63" },
-
- {
- CFG_CONNECTION_SEND_SIGNAL_ID,
- "SendSignalId",
- "SHM",
- "Sends id in each signal. Used in trace files.",
- CI_USED,
- false,
- CI_BOOL,
- "false",
- "false",
- "true" },
-
-
- {
- CFG_CONNECTION_CHECKSUM,
- "Checksum",
- "SHM",
- "If checksum is enabled, all signals between nodes are checked for errors",
- CI_USED,
- false,
- CI_BOOL,
- "true",
- "false",
- "true" },
-
- {
- CFG_SHM_KEY,
- "ShmKey",
- "SHM",
- "A shared memory key",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_SHM_BUFFER_MEM,
- "ShmSize",
- "SHM",
- "Size of shared memory segment",
- CI_USED,
- false,
- CI_INT,
- "1M",
- "64K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_NODE_1_SYSTEM,
- "NodeId1_System",
- "SHM",
- "System for node 1 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_2_SYSTEM,
- "NodeId2_System",
- "SHM",
- "System for node 2 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- /****************************************************************************
- * SCI
- ***************************************************************************/
- {
- CFG_SECTION_CONNECTION,
- "SCI",
- "SCI",
- "Connection section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)CONNECTION_TYPE_SCI,
- 0, 0
- },
-
- {
- CFG_CONNECTION_NODE_1,
- "NodeId1",
- "SCI",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_NODE_2,
- "NodeId2",
- "SCI",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- MANDATORY,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_GROUP,
- "Group",
- "SCI",
- "",
- CI_USED,
- false,
- CI_INT,
- "15",
- "0", "200" },
-
- {
- CFG_CONNECTION_NODE_ID_SERVER,
- "NodeIdServer",
- "SCI",
- "",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "1", "63" },
-
- {
- CFG_CONNECTION_HOSTNAME_1,
- "HostName1",
- "SCI",
- "Name/IP of computer on one side of the connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_HOSTNAME_2,
- "HostName2",
- "SCI",
- "Name/IP of computer on one side of the connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_SERVER_PORT,
- "PortNumber",
- "SCI",
- "Port used for this transporter",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "0",
- STR_VALUE(MAX_PORT_NO) },
-
- {
- CFG_SCI_HOST1_ID_0,
- "Host1SciId0",
- "SCI",
- "SCI-node id for adapter 0 on Host1 (a computer can have two adapters)",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_SCI_HOST1_ID_1,
- "Host1SciId1",
- "SCI",
- "SCI-node id for adapter 1 on Host1 (a computer can have two adapters)",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_SCI_HOST2_ID_0,
- "Host2SciId0",
- "SCI",
- "SCI-node id for adapter 0 on Host2 (a computer can have two adapters)",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_SCI_HOST2_ID_1,
- "Host2SciId1",
- "SCI",
- "SCI-node id for adapter 1 on Host2 (a computer can have two adapters)",
- CI_USED,
- false,
- CI_INT,
- "0",
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_SEND_SIGNAL_ID,
- "SendSignalId",
- "SCI",
- "Sends id in each signal. Used in trace files.",
- CI_USED,
- false,
- CI_BOOL,
- "true",
- "false",
- "true" },
-
- {
- CFG_CONNECTION_CHECKSUM,
- "Checksum",
- "SCI",
- "If checksum is enabled, all signals between nodes are checked for errors",
- CI_USED,
- false,
- CI_BOOL,
- "false",
- "false",
- "true" },
-
- {
- CFG_SCI_SEND_LIMIT,
- "SendLimit",
- "SCI",
- "Transporter send buffer contents are sent when this no of bytes is buffered",
- CI_USED,
- false,
- CI_INT,
- "8K",
- "128",
- "32K" },
-
- {
- CFG_SCI_BUFFER_MEM,
- "SharedBufferSize",
- "SCI",
- "Size of shared memory segment",
- CI_USED,
- false,
- CI_INT,
- "1M",
- "64K",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_NODE_1_SYSTEM,
- "NodeId1_System",
- "SCI",
- "System for node 1 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_2_SYSTEM,
- "NodeId2_System",
- "SCI",
- "System for node 2 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- /****************************************************************************
- * OSE
- ***************************************************************************/
- {
- CFG_SECTION_CONNECTION,
- "OSE",
- "OSE",
- "Connection section",
- CI_USED,
- false,
- CI_SECTION,
- (const char *)CONNECTION_TYPE_OSE,
- 0, 0
- },
-
- {
- CFG_CONNECTION_HOSTNAME_1,
- "HostName1",
- "OSE",
- "Name of computer on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_HOSTNAME_2,
- "HostName2",
- "OSE",
- "Name of computer on one side of the connection",
- CI_USED,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_1,
- "NodeId1",
- "OSE",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_INT,
- MANDATORY,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_NODE_2,
- "NodeId2",
- "OSE",
- "Id of node ("DB_TOKEN_PRINT", "API_TOKEN_PRINT" or "MGM_TOKEN_PRINT") on one side of the connection",
- CI_USED,
- false,
- CI_INT,
- UNDEFINED,
- "0",
- STR_VALUE(MAX_INT_RNIL) },
-
- {
- CFG_CONNECTION_SEND_SIGNAL_ID,
- "SendSignalId",
- "OSE",
- "Sends id in each signal. Used in trace files.",
- CI_USED,
- false,
- CI_BOOL,
- "true",
- "false",
- "true" },
-
- {
- CFG_CONNECTION_CHECKSUM,
- "Checksum",
- "OSE",
- "If checksum is enabled, all signals between nodes are checked for errors",
- CI_USED,
- false,
- CI_BOOL,
- "false",
- "false",
- "true" },
-
- {
- CFG_CONNECTION_NODE_1_SYSTEM,
- "NodeId1_System",
- "OSE",
- "System for node 1 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-
- {
- CFG_CONNECTION_NODE_2_SYSTEM,
- "NodeId2_System",
- "OSE",
- "System for node 2 in connection",
- CI_INTERNAL,
- false,
- CI_STRING,
- UNDEFINED,
- 0, 0 },
-};
-
-const int ParamInfoNum = sizeof(ParamInfoArray) / sizeof(ParamInfo);
diff --git a/storage/ndb/src/mgmsrv/ParamInfo.hpp b/storage/ndb/src/mgmsrv/ParamInfo.hpp
deleted file mode 100644
index fa65fff461f..00000000000
--- a/storage/ndb/src/mgmsrv/ParamInfo.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2006 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-#ifndef PARAMINFO_H
-#define PARAMINFO_H
-
-#define DB_TOKEN "DB"
-#define MGM_TOKEN "MGM"
-#define API_TOKEN "API"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/**
- * The Configuration parameter type and status
- */
-
-enum ParameterType { CI_BOOL, CI_INT, CI_INT64, CI_STRING, CI_SECTION };
-enum ParameterStatus { CI_USED, ///< Active
- CI_DEPRICATED, ///< Can be, but shouldn't
- CI_NOTIMPLEMENTED, ///< Is ignored.
- CI_INTERNAL ///< Not configurable by the user
-};
-
-/**
- * Entry for one configuration parameter
- */
-typedef struct m_ParamInfo {
- Uint32 _paramId;
- const char* _fname;
- const char* _section;
- const char* _description;
- ParameterStatus _status;
- bool _updateable;
- ParameterType _type;
- const char* _default;
- const char* _min;
- const char* _max;
-}ParamInfo;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/storage/ndb/test/include/NdbMixRestarter.hpp b/storage/ndb/test/include/NdbMixRestarter.hpp
new file mode 100644
index 00000000000..f4f91ad2b48
--- /dev/null
+++ b/storage/ndb/test/include/NdbMixRestarter.hpp
@@ -0,0 +1,74 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#ifndef NDBT_MIX_RESTARTER_HPP
+#define NDBT_MIX_RESTARTER_HPP
+
+#include <mgmapi.h>
+#include <Vector.hpp>
+#include <BaseString.hpp>
+#include "NdbRestarter.hpp"
+#include "NDBT_Test.hpp"
+
+#define NMR_SR "SR"
+#define NMR_SR_THREADS "SR_ThreadCount"
+#define NMR_SR_THREADS_STOPPED "SR_ThreadsStoppedCount"
+#define NMR_SR_VALIDATE_THREADS "SR_ValidateThreadCount"
+#define NMR_SR_VALIDATE_THREADS_DONE "SR_ValidateThreadsDoneCount"
+
+class NdbMixRestarter : public NdbRestarter
+{
+public:
+ enum RestartTypeMask
+ {
+ RTM_RestartCluster = 0x01,
+ RTM_RestartNode = 0x02,
+ RTM_RestartNodeInitial = 0x04,
+ RTM_StopNode = 0x08,
+ RTM_StopNodeInitial = 0x10,
+ RTM_StartNode = 0x20,
+
+ RTM_COUNT = 6,
+
+ RTM_ALL = 0xFF,
+ RTM_SR = RTM_RestartCluster,
+ RTM_NR = 0x2 | 0x4 | 0x8 | 0x10 | 0x20
+ };
+
+ enum SR_State {
+ SR_RUNNING = 0,
+ SR_STOPPING = 1,
+ SR_STOPPED = 2,
+ SR_VALIDATING = 3
+ };
+
+ NdbMixRestarter(const char* _addr = 0);
+ ~NdbMixRestarter();
+
+ void setRestartTypeMask(Uint32 mask);
+ int runUntilStopped(NDBT_Context* ctx, NDBT_Step* step, Uint32 freq);
+ int runPeriod(NDBT_Context* ctx, NDBT_Step* step, Uint32 time, Uint32 freq);
+
+ int init(NDBT_Context* ctx, NDBT_Step* step);
+ int dostep(NDBT_Context* ctx, NDBT_Step* step);
+ int finish(NDBT_Context* ctx, NDBT_Step* step);
+
+private:
+ Uint32 m_mask;
+ Vector<ndb_mgm_node_state> m_nodes;
+ int restart_cluster(NDBT_Context* ctx, NDBT_Step* step, bool abort = true);
+};
+
+#endif
diff --git a/storage/ndb/test/ndbapi/testDict.cpp b/storage/ndb/test/ndbapi/testDict.cpp
index f72b9dee80b..9828cb768df 100644
--- a/storage/ndb/test/ndbapi/testDict.cpp
+++ b/storage/ndb/test/ndbapi/testDict.cpp
@@ -23,6 +23,7 @@
#include <../../include/kernel/ndb_limits.h>
#include <random.h>
#include <NdbAutoPtr.hpp>
+#include <NdbMixRestarter.hpp>
#define CHECK(b) if (!(b)) { \
g_err << "ERR: "<< step->getName() \
@@ -2110,6 +2111,448 @@ runDictOps(NDBT_Context* ctx, NDBT_Step* step)
return result;
}
+int
+runBug21755(NDBT_Context* ctx, NDBT_Step* step)
+{
+ char buf[256];
+ NdbRestarter res;
+ NdbDictionary::Table pTab0 = * ctx->getTab();
+ NdbDictionary::Table pTab1 = pTab0;
+
+ if (res.getNumDbNodes() < 2)
+ return NDBT_OK;
+
+ Ndb* pNdb = GETNDB(step);
+ NdbDictionary::Dictionary* pDic = pNdb->getDictionary();
+
+ if (pDic->createTable(pTab0))
+ {
+ ndbout << pDic->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+
+ NdbDictionary::Index idx0;
+ BaseString::snprintf(buf, sizeof(buf), "%s-idx", pTab0.getName());
+ idx0.setName(buf);
+ idx0.setType(NdbDictionary::Index::OrderedIndex);
+ idx0.setTable(pTab0.getName());
+ idx0.setStoredIndex(false);
+ for (Uint32 i = 0; i<pTab0.getNoOfColumns(); i++)
+ {
+ const NdbDictionary::Column * col = pTab0.getColumn(i);
+ if(col->getPrimaryKey()){
+ idx0.addIndexColumn(col->getName());
+ }
+ }
+
+ if (pDic->createIndex(idx0))
+ {
+ ndbout << pDic->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+
+ BaseString::snprintf(buf, sizeof(buf), "%s-2", pTab1.getName());
+ pTab1.setName(buf);
+
+ if (pDic->createTable(pTab1))
+ {
+ ndbout << pDic->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+
+ {
+ HugoTransactions t0 (*pDic->getTable(pTab0.getName()));
+ t0.loadTable(pNdb, 1000);
+ }
+
+ {
+ HugoTransactions t1 (*pDic->getTable(pTab1.getName()));
+ t1.loadTable(pNdb, 1000);
+ }
+
+ int node = res.getRandomNotMasterNodeId(rand());
+ res.restartOneDbNode(node, false, true, true);
+
+ if (pDic->dropTable(pTab1.getName()))
+ {
+ ndbout << pDic->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+
+ BaseString::snprintf(buf, sizeof(buf), "%s-idx2", pTab0.getName());
+ idx0.setName(buf);
+ if (pDic->createIndex(idx0))
+ {
+ ndbout << pDic->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+
+ res.waitNodesNoStart(&node, 1);
+ res.startNodes(&node, 1);
+
+ if (res.waitClusterStarted())
+ {
+ return NDBT_FAILED;
+ }
+
+ if (pDic->dropTable(pTab0.getName()))
+ {
+ ndbout << pDic->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+
+ return NDBT_OK;
+}
+
+struct RandSchemaOp
+{
+ struct Obj
+ {
+ BaseString m_name;
+ Uint32 m_type;
+ struct Obj* m_parent;
+ Vector<Obj*> m_dependant;
+ };
+
+ Vector<Obj*> m_objects;
+
+ int schema_op(Ndb*);
+ int validate(Ndb*);
+ int cleanup(Ndb*);
+
+ Obj* get_obj(Uint32 mask);
+ int create_table(Ndb*);
+ int create_index(Ndb*, Obj*);
+ int drop_obj(Ndb*, Obj*);
+
+ void remove_obj(Obj*);
+};
+
+template class Vector<RandSchemaOp::Obj*>;
+
+int
+RandSchemaOp::schema_op(Ndb* ndb)
+{
+ struct Obj* obj = 0;
+ Uint32 type = 0;
+loop:
+ switch((rand() >> 16) & 3){
+ case 0:
+ return create_table(ndb);
+ case 1:
+ if ((obj = get_obj(1 << NdbDictionary::Object::UserTable)) == 0)
+ goto loop;
+ return create_index(ndb, obj);
+ case 2:
+ type = (1 << NdbDictionary::Object::UserTable);
+ goto drop_object;
+ case 3:
+ type =
+ (1 << NdbDictionary::Object::UniqueHashIndex) |
+ (1 << NdbDictionary::Object::OrderedIndex);
+ goto drop_object;
+ default:
+ goto loop;
+ }
+
+drop_object:
+ if ((obj = get_obj(type)) == 0)
+ goto loop;
+ return drop_obj(ndb, obj);
+}
+
+RandSchemaOp::Obj*
+RandSchemaOp::get_obj(Uint32 mask)
+{
+ Vector<Obj*> tmp;
+ for (Uint32 i = 0; i<m_objects.size(); i++)
+ {
+ if ((1 << m_objects[i]->m_type) & mask)
+ tmp.push_back(m_objects[i]);
+ }
+
+ if (tmp.size())
+ {
+ return tmp[rand()%tmp.size()];
+ }
+ return 0;
+}
+
+int
+RandSchemaOp::create_table(Ndb* ndb)
+{
+ int numTables = NDBT_Tables::getNumTables();
+ int num = myRandom48(numTables);
+ NdbDictionary::Table pTab = * NDBT_Tables::getTable(num);
+
+ NdbDictionary::Dictionary* pDict = ndb->getDictionary();
+
+ if (pDict->getTable(pTab.getName()))
+ {
+ char buf[100];
+ BaseString::snprintf(buf, sizeof(buf), "%s-%d",
+ pTab.getName(), rand());
+ pTab.setName(buf);
+ if (pDict->createTable(pTab))
+ return NDBT_FAILED;
+ }
+ else
+ {
+ if (NDBT_Tables::createTable(ndb, pTab.getName()))
+ {
+ return NDBT_FAILED;
+ }
+ }
+
+ ndbout_c("create table %s", pTab.getName());
+ const NdbDictionary::Table* tab2 = pDict->getTable(pTab.getName());
+ HugoTransactions trans(*tab2);
+ trans.loadTable(ndb, 1000);
+
+ Obj *obj = new Obj;
+ obj->m_name.assign(pTab.getName());
+ obj->m_type = NdbDictionary::Object::UserTable;
+ obj->m_parent = 0;
+ m_objects.push_back(obj);
+
+ return NDBT_OK;
+}
+
+int
+RandSchemaOp::create_index(Ndb* ndb, Obj* tab)
+{
+ NdbDictionary::Dictionary* pDict = ndb->getDictionary();
+ const NdbDictionary::Table * pTab = pDict->getTable(tab->m_name.c_str());
+
+ if (pTab == 0)
+ {
+ return NDBT_FAILED;
+ }
+
+ bool ordered = (rand() >> 16) & 1;
+ bool stored = (rand() >> 16) & 1;
+
+ Uint32 type = ordered ?
+ NdbDictionary::Index::OrderedIndex :
+ NdbDictionary::Index::UniqueHashIndex;
+
+ char buf[255];
+ BaseString::snprintf(buf, sizeof(buf), "%s-%s",
+ pTab->getName(),
+ ordered ? "OI" : "UI");
+
+ if (pDict->getIndex(buf, pTab->getName()))
+ {
+ // Index exists...let it be ok
+ return NDBT_OK;
+ }
+
+ ndbout_c("create index %s", buf);
+ NdbDictionary::Index idx0;
+ idx0.setName(buf);
+ idx0.setType((NdbDictionary::Index::Type)type);
+ idx0.setTable(pTab->getName());
+ idx0.setStoredIndex(ordered ? false : stored);
+
+ for (Uint32 i = 0; i<pTab->getNoOfColumns(); i++)
+ {
+ if (pTab->getColumn(i)->getPrimaryKey())
+ idx0.addColumn(pTab->getColumn(i)->getName());
+ }
+ if (pDict->createIndex(idx0))
+ {
+ ndbout << pDict->getNdbError() << endl;
+ return NDBT_FAILED;
+ }
+ Obj *obj = new Obj;
+ obj->m_name.assign(buf);
+ obj->m_type = type;
+ obj->m_parent = tab;
+ m_objects.push_back(obj);
+
+ tab->m_dependant.push_back(obj);
+ return NDBT_OK;
+}
+
+int
+RandSchemaOp::drop_obj(Ndb* ndb, Obj* obj)
+{
+ NdbDictionary::Dictionary* pDict = ndb->getDictionary();
+
+ if (obj->m_type == NdbDictionary::Object::UserTable)
+ {
+ ndbout_c("drop table %s", obj->m_name.c_str());
+ /**
+ * Drop of table automatically drops all indexes
+ */
+ if (pDict->dropTable(obj->m_name.c_str()))
+ {
+ return NDBT_FAILED;
+ }
+ while(obj->m_dependant.size())
+ {
+ remove_obj(obj->m_dependant[0]);
+ }
+ remove_obj(obj);
+ }
+ else if (obj->m_type == NdbDictionary::Object::UniqueHashIndex ||
+ obj->m_type == NdbDictionary::Object::OrderedIndex)
+ {
+ ndbout_c("drop index %s", obj->m_name.c_str());
+ if (pDict->dropIndex(obj->m_name.c_str(),
+ obj->m_parent->m_name.c_str()))
+ {
+ return NDBT_FAILED;
+ }
+ remove_obj(obj);
+ }
+ return NDBT_OK;
+}
+
+void
+RandSchemaOp::remove_obj(Obj* obj)
+{
+ Uint32 i;
+ if (obj->m_parent)
+ {
+ bool found = false;
+ for (i = 0; i<obj->m_parent->m_dependant.size(); i++)
+ {
+ if (obj->m_parent->m_dependant[i] == obj)
+ {
+ found = true;
+ obj->m_parent->m_dependant.erase(i);
+ break;
+ }
+ }
+ assert(found);
+ }
+
+ {
+ bool found = false;
+ for (i = 0; i<m_objects.size(); i++)
+ {
+ if (m_objects[i] == obj)
+ {
+ found = true;
+ m_objects.erase(i);
+ break;
+ }
+ }
+ assert(found);
+ }
+ delete obj;
+}
+
+int
+RandSchemaOp::validate(Ndb* ndb)
+{
+ NdbDictionary::Dictionary* pDict = ndb->getDictionary();
+ for (Uint32 i = 0; i<m_objects.size(); i++)
+ {
+ if (m_objects[i]->m_type == NdbDictionary::Object::UserTable)
+ {
+ const NdbDictionary::Table* tab2 =
+ pDict->getTable(m_objects[i]->m_name.c_str());
+ HugoTransactions trans(*tab2);
+ trans.scanUpdateRecords(ndb, 1000);
+ trans.clearTable(ndb);
+ trans.loadTable(ndb, 1000);
+ }
+ }
+
+ return NDBT_OK;
+}
+
+/*
+ SystemTable = 1, ///< System table
+ UserTable = 2, ///< User table (may be temporary)
+ UniqueHashIndex = 3, ///< Unique un-ordered hash index
+ OrderedIndex = 6, ///< Non-unique ordered index
+ HashIndexTrigger = 7, ///< Index maintenance, internal
+ IndexTrigger = 8, ///< Index maintenance, internal
+ SubscriptionTrigger = 9,///< Backup or replication, internal
+ ReadOnlyConstraint = 10,///< Trigger, internal
+ Tablespace = 20, ///< Tablespace
+ LogfileGroup = 21, ///< Logfile group
+ Datafile = 22, ///< Datafile
+ Undofile = 23 ///< Undofile
+*/
+
+int
+RandSchemaOp::cleanup(Ndb* ndb)
+{
+ Int32 i;
+ for (i = m_objects.size() - 1; i >= 0; i--)
+ {
+ switch(m_objects[i]->m_type){
+ case NdbDictionary::Object::UniqueHashIndex:
+ case NdbDictionary::Object::OrderedIndex:
+ if (drop_obj(ndb, m_objects[i]))
+ return NDBT_FAILED;
+
+ break;
+ default:
+ break;
+ }
+ }
+
+ for (i = m_objects.size() - 1; i >= 0; i--)
+ {
+ switch(m_objects[i]->m_type){
+ case NdbDictionary::Object::UserTable:
+ if (drop_obj(ndb, m_objects[i]))
+ return NDBT_FAILED;
+ break;
+ default:
+ break;
+ }
+ }
+
+ assert(m_objects.size() == 0);
+ return NDBT_OK;
+}
+
+int
+runDictRestart(NDBT_Context* ctx, NDBT_Step* step)
+{
+ Ndb* pNdb = GETNDB(step);
+ int loops = ctx->getNumLoops();
+
+ NdbMixRestarter res;
+
+ RandSchemaOp dict;
+ if (res.getNumDbNodes() < 2)
+ return NDBT_OK;
+
+ if (res.init(ctx, step))
+ return NDBT_FAILED;
+
+ for (Uint32 i = 0; i<loops; i++)
+ {
+ for (Uint32 j = 0; j<10; j++)
+ if (dict.schema_op(pNdb))
+ return NDBT_FAILED;
+
+ if (res.dostep(ctx, step))
+ return NDBT_FAILED;
+
+ if (dict.validate(pNdb))
+ return NDBT_FAILED;
+ }
+
+ if (res.finish(ctx, step))
+ return NDBT_FAILED;
+
+ if (dict.validate(pNdb))
+ return NDBT_FAILED;
+
+ if (dict.cleanup(pNdb))
+ return NDBT_FAILED;
+
+ return NDBT_OK;
+}
+
NDBT_TESTSUITE(testDict);
TESTCASE("CreateAndDrop",
"Try to create and drop the table loop number of times\n"){
@@ -2256,7 +2699,14 @@ TESTCASE("Restart_NR2",
STEP(runRestarts);
STEP(runDictOps);
}
-
+TESTCASE("Bug21755",
+ ""){
+ INITIALIZER(runBug21755);
+}
+TESTCASE("DictRestart",
+ ""){
+ INITIALIZER(runDictRestart);
+}
NDBT_TESTSUITE_END(testDict);
int main(int argc, const char** argv){
diff --git a/storage/ndb/test/ndbapi/testSRBank.cpp b/storage/ndb/test/ndbapi/testSRBank.cpp
index dcadf045fff..d0dbadbda75 100644
--- a/storage/ndb/test/ndbapi/testSRBank.cpp
+++ b/storage/ndb/test/ndbapi/testSRBank.cpp
@@ -20,9 +20,16 @@
#include <NdbBackup.hpp>
#include "bank/Bank.hpp"
+#include <NdbMixRestarter.hpp>
bool disk = false;
+#define CHECK(b) if (!(b)) { \
+ g_err << "ERR: "<< step->getName() \
+ << " failed on line " << __LINE__ << endl; \
+ result = NDBT_FAILED; \
+ continue; }
+
int runCreateBank(NDBT_Context* ctx, NDBT_Step* step){
Bank bank(ctx->m_cluster_connection);
int overWriteExisting = true;
@@ -37,21 +44,25 @@ int runCreateBank(NDBT_Context* ctx, NDBT_Step* step){
* SR 1 - shutdown in progress
* SR 2 - restart in progress
*/
-int runBankTimer(NDBT_Context* ctx, NDBT_Step* step){
+int
+runBankTimer(NDBT_Context* ctx, NDBT_Step* step){
int wait = 5; // Max seconds between each "day"
int yield = 1; // Loops before bank returns
-
- ctx->incProperty("ThreadCount");
+
+ ctx->incProperty(NMR_SR_THREADS);
while (!ctx->isTestStopped())
{
Bank bank(ctx->m_cluster_connection);
- while(!ctx->isTestStopped() && ctx->getProperty("SR") <= 1)
+ while(!ctx->isTestStopped() &&
+ ctx->getProperty(NMR_SR) <= NdbMixRestarter::SR_STOPPING)
+ {
if(bank.performIncreaseTime(wait, yield) == NDBT_FAILED)
break;
-
+ }
+
ndbout_c("runBankTimer is stopped");
- ctx->incProperty("ThreadStopped");
- if(ctx->getPropertyWait("SR", (Uint32)0))
+ ctx->incProperty(NMR_SR_THREADS_STOPPED);
+ if(ctx->getPropertyWait(NMR_SR, NdbMixRestarter::SR_RUNNING))
break;
}
return NDBT_OK;
@@ -61,17 +72,18 @@ int runBankTransactions(NDBT_Context* ctx, NDBT_Step* step){
int wait = 0; // Max ms between each transaction
int yield = 1; // Loops before bank returns
- ctx->incProperty("ThreadCount");
+ ctx->incProperty(NMR_SR_THREADS);
while (!ctx->isTestStopped())
{
Bank bank(ctx->m_cluster_connection);
- while(!ctx->isTestStopped() && ctx->getProperty("SR") <= 1)
+ while(!ctx->isTestStopped() &&
+ ctx->getProperty(NMR_SR) <= NdbMixRestarter::SR_STOPPING)
if(bank.performTransactions(0, 1) == NDBT_FAILED)
break;
ndbout_c("runBankTransactions is stopped");
- ctx->incProperty("ThreadStopped");
- if(ctx->getPropertyWait("SR", (Uint32)0))
+ ctx->incProperty(NMR_SR_THREADS_STOPPED);
+ if(ctx->getPropertyWait(NMR_SR, NdbMixRestarter::SR_RUNNING))
break;
}
return NDBT_OK;
@@ -80,278 +92,108 @@ int runBankTransactions(NDBT_Context* ctx, NDBT_Step* step){
int runBankGL(NDBT_Context* ctx, NDBT_Step* step){
int yield = 1; // Loops before bank returns
int result = NDBT_OK;
-
- ctx->incProperty("ThreadCount");
+
+ ctx->incProperty(NMR_SR_THREADS);
while (ctx->isTestStopped() == false)
{
Bank bank(ctx->m_cluster_connection);
- while(!ctx->isTestStopped() && ctx->getProperty("SR") <= 1)
+ while(!ctx->isTestStopped() &&
+ ctx->getProperty(NMR_SR) <= NdbMixRestarter::SR_STOPPING)
if (bank.performMakeGLs(yield) != NDBT_OK)
{
- if(ctx->getProperty("SR") != 0)
+ if(ctx->getProperty(NMR_SR) != NdbMixRestarter::SR_RUNNING)
break;
ndbout << "bank.performMakeGLs FAILED" << endl;
+ abort();
return NDBT_FAILED;
}
ndbout_c("runBankGL is stopped");
- ctx->incProperty("ThreadStopped");
- if(ctx->getPropertyWait("SR", (Uint32)0))
+ ctx->incProperty(NMR_SR_THREADS_STOPPED);
+ if(ctx->getPropertyWait(NMR_SR, NdbMixRestarter::SR_RUNNING))
break;
}
return NDBT_OK;
}
-int runBankSum(NDBT_Context* ctx, NDBT_Step* step){
- Bank bank(ctx->m_cluster_connection);
- int wait = 2000; // Max ms between each sum of accounts
- int yield = 1; // Loops before bank returns
- int result = NDBT_OK;
-
- while (ctx->isTestStopped() == false) {
- if (bank.performSumAccounts(wait, yield) != NDBT_OK){
- ndbout << "bank.performSumAccounts FAILED" << endl;
- result = NDBT_FAILED;
- }
- }
- return result ;
-}
-
-#define CHECK(b) if (!(b)) { \
- g_err << "ERR: "<< step->getName() \
- << " failed on line " << __LINE__ << endl; \
- result = NDBT_FAILED; \
- continue; }
-
-static
-int
-restart_cluster(NDBT_Context* ctx, NDBT_Step* step, NdbRestarter& restarter)
+int
+runBankSrValidator(NDBT_Context* ctx, NDBT_Step* step)
{
- bool abort = true;
- int timeout = 180;
- int result = NDBT_OK;
- do
+ ctx->incProperty(NMR_SR_VALIDATE_THREADS);
+
+ while(!ctx->isTestStopped())
{
- ndbout << " -- Shutting down " << endl;
- ctx->setProperty("SR", 1);
- CHECK(restarter.restartAll(false, true, abort) == 0);
- ctx->setProperty("SR", 2);
- CHECK(restarter.waitClusterNoStart(timeout) == 0);
+ if (ctx->getPropertyWait(NMR_SR, NdbMixRestarter::SR_VALIDATING))
+ break;
- Uint32 cnt = ctx->getProperty("ThreadCount");
- Uint32 curr= ctx->getProperty("ThreadStopped");
- while(curr != cnt && !ctx->isTestStopped())
+ int wait = 0;
+ int yield = 1;
+ Bank bank(ctx->m_cluster_connection);
+ if (bank.performSumAccounts(wait, yield) != 0)
{
- ndbout_c("%d %d", curr, cnt);
- NdbSleep_MilliSleep(100);
- curr= ctx->getProperty("ThreadStopped");
+ ndbout << "bank.performSumAccounts FAILED" << endl;
+ abort();
+ return NDBT_FAILED;
}
- ctx->setProperty("ThreadStopped", (Uint32)0);
- CHECK(restarter.startAll() == 0);
- CHECK(restarter.waitClusterStarted(timeout) == 0);
-
- ndbout << " -- Validating starts " << endl;
+ if (bank.performValidateAllGLs() != 0)
{
- int wait = 0;
- int yield = 1;
- Bank bank(ctx->m_cluster_connection);
- if (bank.performSumAccounts(wait, yield) != 0)
- {
- ndbout << "bank.performSumAccounts FAILED" << endl;
- return NDBT_FAILED;
- }
-
- if (bank.performValidateAllGLs() != 0)
- {
- ndbout << "bank.performValidateAllGLs FAILED" << endl;
- return NDBT_FAILED;
- }
+ ndbout << "bank.performValidateAllGLs FAILED" << endl;
+ abort();
+ return NDBT_FAILED;
}
- ndbout << " -- Validating complete " << endl;
- } while(0);
- ctx->setProperty("SR", (Uint32)0);
- ctx->broadcast();
- return result;
-}
-
-static
-ndb_mgm_node_state*
-select_node_to_stop(Vector<ndb_mgm_node_state>& nodes)
-{
- Uint32 i, j;
- Vector<ndb_mgm_node_state*> alive_nodes;
- for(i = 0; i<nodes.size(); i++)
- {
- ndb_mgm_node_state* node = &nodes[i];
- if (node->node_status == NDB_MGM_NODE_STATUS_STARTED)
- alive_nodes.push_back(node);
- }
-
- Vector<ndb_mgm_node_state*> victims;
- // Remove those with one in node group
- for(i = 0; i<alive_nodes.size(); i++)
- {
- int group = alive_nodes[i]->node_group;
- for(j = 0; j<alive_nodes.size(); j++)
- {
- if (i != j && alive_nodes[j]->node_group == group)
- {
- victims.push_back(alive_nodes[i]);
- break;
- }
- }
- }
-
- if (victims.size())
- {
- int victim = rand() % victims.size();
- return victims[victim];
- }
- else
- {
- return 0;
+ ctx->incProperty(NMR_SR_VALIDATE_THREADS_DONE);
+
+ if (ctx->getPropertyWait(NMR_SR, NdbMixRestarter::SR_RUNNING))
+ break;
}
+
+ return NDBT_OK;
}
-static
-ndb_mgm_node_state*
-select_node_to_start(Vector<ndb_mgm_node_state>& nodes)
-{
- Uint32 i, j;
- Vector<ndb_mgm_node_state*> victims;
- for(i = 0; i<nodes.size(); i++)
- {
- ndb_mgm_node_state* node = &nodes[i];
- if (node->node_status == NDB_MGM_NODE_STATUS_NOT_STARTED)
- victims.push_back(node);
- }
+#if 0
+int runBankSum(NDBT_Context* ctx, NDBT_Step* step){
+ Bank bank(ctx->m_cluster_connection);
+ int wait = 2000; // Max ms between each sum of accounts
+ int yield = 1; // Loops before bank returns
+ int result = NDBT_OK;
- if (victims.size())
- {
- int victim = rand() % victims.size();
- return victims[victim];
- }
- else
+ while (ctx->isTestStopped() == false)
{
- return 0;
+ if (bank.performSumAccounts(wait, yield) != NDBT_OK){
+ ndbout << "bank.performSumAccounts FAILED" << endl;
+ result = NDBT_FAILED;
+ }
}
+ return result ;
}
+#endif
-enum Action {
- AA_RestartCluster = 0x1,
- AA_RestartNode = 0x2,
- AA_StopNode = 0x4,
- AA_StartNode = 0x8,
- AA_COUNT = 4
-};
int
runMixRestart(NDBT_Context* ctx, NDBT_Step* step)
{
int result = NDBT_OK;
+ NdbMixRestarter res;
int runtime = ctx->getNumLoops();
int sleeptime = ctx->getNumRecords();
- NdbRestarter restarter;
- int timeout = 180;
- Uint32 type = ctx->getProperty("Type", ~(Uint32)0);
-
- restarter.waitClusterStarted();
- Vector<ndb_mgm_node_state> nodes;
- nodes = restarter.ndbNodes;
-#if 0
- for (Uint32 i = 0; i<restarter.ndbNodes.size(); i++)
- nodes.push_back(restarter.ndbNodes[i]);
-#endif
+ Uint32 mask = ctx->getProperty("Type", ~(Uint32)0);
+ res.setRestartTypeMask(mask);
-
- Uint32 now;
- const Uint32 stop = time(0)+ runtime;
- while(!ctx->isTestStopped() && ((now= time(0)) < stop) && result == NDBT_OK)
+ if (res.runPeriod(ctx, step, runtime, sleeptime))
{
- ndbout << " -- Sleep " << sleeptime << "s " << endl;
- int cnt = sleeptime;
- while (cnt-- && !ctx->isTestStopped())
- NdbSleep_SecSleep(1);
- if (ctx->isTestStopped())
- return NDBT_FAILED;
-
- ndb_mgm_node_state* node = 0;
- int action;
-loop:
- while(((action = (1 << (rand() % AA_COUNT))) & type) == 0);
- switch(action){
- case AA_RestartCluster:
- if (restart_cluster(ctx, step, restarter))
- return NDBT_FAILED;
- for (Uint32 i = 0; i<nodes.size(); i++)
- nodes[i].node_status = NDB_MGM_NODE_STATUS_STARTED;
- break;
- case AA_RestartNode:
- case AA_StopNode:
- {
- if ((node = select_node_to_stop(nodes)) == 0)
- goto loop;
-
- if (action == AA_RestartNode)
- g_err << "Restarting " << node->node_id << endl;
- else
- g_err << "Stopping " << node->node_id << endl;
-
- if (restarter.restartOneDbNode(node->node_id, false, true, true))
- return NDBT_FAILED;
-
- if (restarter.waitNodesNoStart(&node->node_id, 1))
- return NDBT_FAILED;
-
- node->node_status = NDB_MGM_NODE_STATUS_NOT_STARTED;
-
- if (action == AA_StopNode)
- break;
- else
- goto start;
- }
- case AA_StartNode:
- if ((node = select_node_to_start(nodes)) == 0)
- goto loop;
- start:
- g_err << "Starting " << node->node_id << endl;
- if (restarter.startNodes(&node->node_id, 1))
- return NDBT_FAILED;
- if (restarter.waitNodesStarted(&node->node_id, 1))
- return NDBT_FAILED;
-
- node->node_status = NDB_MGM_NODE_STATUS_STARTED;
- break;
- }
- }
-
- Vector<int> not_started;
- {
- ndb_mgm_node_state* node = 0;
- while((node = select_node_to_start(nodes)))
- {
- not_started.push_back(node->node_id);
- node->node_status = NDB_MGM_NODE_STATUS_STARTED;
- }
- }
-
- if (not_started.size())
- {
- g_err << "Starting stopped nodes " << endl;
- if (restarter.startNodes(not_started.getBase(), not_started.size()))
- return NDBT_FAILED;
- if (restarter.waitClusterStarted())
- return NDBT_FAILED;
+ abort();
+ return NDBT_FAILED;
}
ctx->stopTest();
return NDBT_OK;
}
-int runDropBank(NDBT_Context* ctx, NDBT_Step* step){
+int
+runDropBank(NDBT_Context* ctx, NDBT_Step* step){
Bank bank(ctx->m_cluster_connection);
if (bank.dropBank() != NDBT_OK)
return NDBT_FAILED;
@@ -367,7 +209,7 @@ TESTCASE("SR",
"3. Restart ndb and verify consistency\n"
"4. Drop bank\n")
{
- TC_PROPERTY("Type", AA_RestartCluster);
+ TC_PROPERTY("Type", NdbMixRestarter::RTM_SR);
INITIALIZER(runCreateBank);
STEP(runBankTimer);
STEP(runBankTransactions);
@@ -381,6 +223,7 @@ TESTCASE("SR",
STEP(runBankTransactions);
STEP(runBankTransactions);
STEP(runBankGL);
+ STEP(runBankSrValidator);
STEP(runMixRestart);
}
TESTCASE("NR",
@@ -390,7 +233,7 @@ TESTCASE("NR",
"3. Restart ndb and verify consistency\n"
"4. Drop bank\n")
{
- TC_PROPERTY("Type", AA_RestartNode | AA_StopNode | AA_StartNode);
+ TC_PROPERTY("Type", NdbMixRestarter::RTM_NR);
INITIALIZER(runCreateBank);
STEP(runBankTimer);
STEP(runBankTransactions);
@@ -414,7 +257,7 @@ TESTCASE("Mix",
"3. Restart ndb and verify consistency\n"
"4. Drop bank\n")
{
- TC_PROPERTY("Type", ~0);
+ TC_PROPERTY("Type", NdbMixRestarter::RTM_ALL);
INITIALIZER(runCreateBank);
STEP(runBankTimer);
STEP(runBankTransactions);
@@ -429,6 +272,7 @@ TESTCASE("Mix",
STEP(runBankTransactions);
STEP(runBankGL);
STEP(runMixRestart);
+ STEP(runBankSrValidator);
FINALIZER(runDropBank);
}
NDBT_TESTSUITE_END(testSRBank);
diff --git a/storage/ndb/test/run-test/daily-basic-tests.txt b/storage/ndb/test/run-test/daily-basic-tests.txt
index 4693dbfa781..df4f6c1ab38 100644
--- a/storage/ndb/test/run-test/daily-basic-tests.txt
+++ b/storage/ndb/test/run-test/daily-basic-tests.txt
@@ -599,6 +599,14 @@ max-time: 1500
cmd: testDict
args: -n Restart_NR2 T1 I3
+max-time: 500
+cmd: testDict
+args: -n Bug21755 T1
+
+max-time: 1500
+cmd: testDict
+args: -l 25 -n DictRestart T1
+
#
# TEST NDBAPI
#
diff --git a/storage/ndb/test/src/Makefile.am b/storage/ndb/test/src/Makefile.am
index 0e88c2c5819..37f6497e508 100644
--- a/storage/ndb/test/src/Makefile.am
+++ b/storage/ndb/test/src/Makefile.am
@@ -24,7 +24,7 @@ libNDBT_a_SOURCES = \
NdbRestarter.cpp NdbRestarts.cpp NDBT_Output.cpp \
NdbBackup.cpp NdbConfig.cpp NdbGrep.cpp NDBT_Table.cpp \
NdbSchemaCon.cpp NdbSchemaOp.cpp getarg.c \
- CpcClient.cpp
+ CpcClient.cpp NdbMixRestarter.cpp
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/common/mgmcommon -I$(top_srcdir)/storage/ndb/include/mgmcommon -I$(top_srcdir)/storage/ndb/include/kernel -I$(top_srcdir)/storage/ndb/src/mgmapi
diff --git a/storage/ndb/test/src/NDBT_Test.cpp b/storage/ndb/test/src/NDBT_Test.cpp
index 1245d004aff..b30430c73c1 100644
--- a/storage/ndb/test/src/NDBT_Test.cpp
+++ b/storage/ndb/test/src/NDBT_Test.cpp
@@ -146,8 +146,10 @@ void NDBT_Context::setProperty(const char* _name, Uint32 _val){
NdbMutex_Lock(propertyMutexPtr);
const bool b = props.put(_name, _val, true);
assert(b == true);
+ NdbCondition_Broadcast(propertyCondPtr);
NdbMutex_Unlock(propertyMutexPtr);
}
+
void
NDBT_Context::decProperty(const char * name){
NdbMutex_Lock(propertyMutexPtr);
@@ -159,6 +161,7 @@ NDBT_Context::decProperty(const char * name){
NdbCondition_Broadcast(propertyCondPtr);
NdbMutex_Unlock(propertyMutexPtr);
}
+
void
NDBT_Context::incProperty(const char * name){
NdbMutex_Lock(propertyMutexPtr);
@@ -173,6 +176,7 @@ void NDBT_Context::setProperty(const char* _name, const char* _val){
NdbMutex_Lock(propertyMutexPtr);
const bool b = props.put(_name, _val);
assert(b == true);
+ NdbCondition_Broadcast(propertyCondPtr);
NdbMutex_Unlock(propertyMutexPtr);
}
diff --git a/storage/ndb/test/src/NdbMixRestarter.cpp b/storage/ndb/test/src/NdbMixRestarter.cpp
new file mode 100644
index 00000000000..81631afaa1a
--- /dev/null
+++ b/storage/ndb/test/src/NdbMixRestarter.cpp
@@ -0,0 +1,312 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "NdbMixRestarter.hpp"
+
+NdbMixRestarter::NdbMixRestarter(const char* _addr) :
+ NdbRestarter(_addr),
+ m_mask(~(Uint32)0)
+{
+}
+
+NdbMixRestarter::~NdbMixRestarter()
+{
+
+}
+
+#define CHECK(b) if (!(b)) { \
+ ndbout << "ERR: "<< step->getName() \
+ << " failed on line " << __LINE__ << endl; \
+ result = NDBT_FAILED; \
+ continue; }
+
+int
+NdbMixRestarter::restart_cluster(NDBT_Context* ctx,
+ NDBT_Step* step,
+ bool stopabort)
+{
+ int timeout = 180;
+ int result = NDBT_OK;
+
+ do
+ {
+ ctx->setProperty(NMR_SR_THREADS_STOPPED, (Uint32)0);
+ ctx->setProperty(NMR_SR_VALIDATE_THREADS_DONE, (Uint32)0);
+
+ ndbout << " -- Shutting down " << endl;
+ ctx->setProperty(NMR_SR, NdbMixRestarter::SR_STOPPING);
+ CHECK(restartAll(false, true, stopabort) == 0);
+ ctx->setProperty(NMR_SR, NdbMixRestarter::SR_STOPPED);
+ CHECK(waitClusterNoStart(timeout) == 0);
+
+ Uint32 cnt = ctx->getProperty(NMR_SR_THREADS);
+ Uint32 curr= ctx->getProperty(NMR_SR_THREADS_STOPPED);
+ while(curr != cnt && !ctx->isTestStopped())
+ {
+ if (curr > cnt)
+ {
+ ndbout_c("stopping: curr: %d cnt: %d", curr, cnt);
+ abort();
+ }
+
+ NdbSleep_MilliSleep(100);
+ curr= ctx->getProperty(NMR_SR_THREADS_STOPPED);
+ }
+
+ CHECK(ctx->isTestStopped() == false);
+ CHECK(startAll() == 0);
+ CHECK(waitClusterStarted(timeout) == 0);
+
+ cnt = ctx->getProperty(NMR_SR_VALIDATE_THREADS);
+ if (cnt)
+ {
+ ndbout << " -- Validating starts " << endl;
+ ctx->setProperty(NMR_SR_VALIDATE_THREADS_DONE, (Uint32)0);
+ ctx->setProperty(NMR_SR, NdbMixRestarter::SR_VALIDATING);
+ curr = ctx->getProperty(NMR_SR_VALIDATE_THREADS_DONE);
+ while (curr != cnt && !ctx->isTestStopped())
+ {
+ if (curr > cnt)
+ {
+ ndbout_c("validating: curr: %d cnt: %d", curr, cnt);
+ abort();
+ }
+
+ NdbSleep_MilliSleep(100);
+ curr = ctx->getProperty(NMR_SR_VALIDATE_THREADS_DONE);
+ }
+ ndbout << " -- Validating complete " << endl;
+ }
+ CHECK(ctx->isTestStopped() == false);
+ ctx->setProperty(NMR_SR, NdbMixRestarter::SR_RUNNING);
+
+ } while(0);
+
+ return result;
+}
+
+static
+ndb_mgm_node_state*
+select_node_to_stop(Vector<ndb_mgm_node_state>& nodes)
+{
+ Uint32 i, j;
+ Vector<ndb_mgm_node_state*> alive_nodes;
+ for(i = 0; i<nodes.size(); i++)
+ {
+ ndb_mgm_node_state* node = &nodes[i];
+ if (node->node_status == NDB_MGM_NODE_STATUS_STARTED)
+ alive_nodes.push_back(node);
+ }
+
+ Vector<ndb_mgm_node_state*> victims;
+ // Remove those with one in node group
+ for(i = 0; i<alive_nodes.size(); i++)
+ {
+ int group = alive_nodes[i]->node_group;
+ for(j = 0; j<alive_nodes.size(); j++)
+ {
+ if (i != j && alive_nodes[j]->node_group == group)
+ {
+ victims.push_back(alive_nodes[i]);
+ break;
+ }
+ }
+ }
+
+ if (victims.size())
+ {
+ int victim = rand() % victims.size();
+ return victims[victim];
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+static
+ndb_mgm_node_state*
+select_node_to_start(Vector<ndb_mgm_node_state>& nodes)
+{
+ Uint32 i;
+ Vector<ndb_mgm_node_state*> victims;
+ for(i = 0; i<nodes.size(); i++)
+ {
+ ndb_mgm_node_state* node = &nodes[i];
+ if (node->node_status == NDB_MGM_NODE_STATUS_NOT_STARTED)
+ victims.push_back(node);
+ }
+
+ if (victims.size())
+ {
+ int victim = rand() % victims.size();
+ return victims[victim];
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+void
+NdbMixRestarter::setRestartTypeMask(Uint32 mask)
+{
+ m_mask = mask;
+}
+
+int
+NdbMixRestarter::runUntilStopped(NDBT_Context* ctx,
+ NDBT_Step* step,
+ Uint32 freq)
+{
+ if (init(ctx, step))
+ return NDBT_FAILED;
+
+ while (!ctx->isTestStopped())
+ {
+ if (dostep(ctx, step))
+ return NDBT_FAILED;
+ NdbSleep_SecSleep(freq);
+ }
+
+ if (!finish(ctx, step))
+ return NDBT_FAILED;
+
+ return NDBT_OK;
+}
+
+int
+NdbMixRestarter::runPeriod(NDBT_Context* ctx,
+ NDBT_Step* step,
+ Uint32 period, Uint32 freq)
+{
+ if (init(ctx, step))
+ return NDBT_FAILED;
+
+ Uint32 stop = time(0) + period;
+ while (!ctx->isTestStopped() && (time(0) < stop))
+ {
+ if (dostep(ctx, step))
+ {
+ return NDBT_FAILED;
+ }
+ NdbSleep_SecSleep(freq);
+ }
+
+ if (finish(ctx, step))
+ {
+ return NDBT_FAILED;
+ }
+
+ ctx->stopTest();
+ return NDBT_OK;
+}
+
+int
+NdbMixRestarter::init(NDBT_Context* ctx, NDBT_Step* step)
+{
+ waitClusterStarted();
+ m_nodes = ndbNodes;
+ return 0;
+}
+
+int
+NdbMixRestarter::dostep(NDBT_Context* ctx, NDBT_Step* step)
+{
+ ndb_mgm_node_state* node = 0;
+ int action;
+loop:
+ while(((action = (1 << (rand() % RTM_COUNT))) & m_mask) == 0);
+ switch(action){
+ case RTM_RestartCluster:
+ if (restart_cluster(ctx, step))
+ return NDBT_FAILED;
+ for (Uint32 i = 0; i<m_nodes.size(); i++)
+ m_nodes[i].node_status = NDB_MGM_NODE_STATUS_STARTED;
+ break;
+ case RTM_RestartNode:
+ case RTM_RestartNodeInitial:
+ case RTM_StopNode:
+ case RTM_StopNodeInitial:
+ {
+ if ((node = select_node_to_stop(m_nodes)) == 0)
+ goto loop;
+
+ if (action == RTM_RestartNode || action == RTM_RestartNodeInitial)
+ ndbout << "Restarting " << node->node_id;
+ else
+ ndbout << "Stopping " << node->node_id;
+
+ bool initial =
+ action == RTM_RestartNodeInitial || action == RTM_StopNodeInitial;
+
+ if (initial)
+ ndbout << " inital";
+ ndbout << endl;
+
+ if (restartOneDbNode(node->node_id, initial, true, true))
+ return NDBT_FAILED;
+
+ if (waitNodesNoStart(&node->node_id, 1))
+ return NDBT_FAILED;
+
+ node->node_status = NDB_MGM_NODE_STATUS_NOT_STARTED;
+
+ if (action == RTM_StopNode || action == RTM_StopNodeInitial)
+ break;
+ else
+ goto start;
+ }
+ case RTM_StartNode:
+ if ((node = select_node_to_start(m_nodes)) == 0)
+ goto loop;
+start:
+ ndbout << "Starting " << node->node_id << endl;
+ if (startNodes(&node->node_id, 1))
+ return NDBT_FAILED;
+ if (waitNodesStarted(&node->node_id, 1))
+ return NDBT_FAILED;
+
+ node->node_status = NDB_MGM_NODE_STATUS_STARTED;
+ break;
+ }
+ return NDBT_OK;
+}
+
+int
+NdbMixRestarter::finish(NDBT_Context* ctx, NDBT_Step* step)
+{
+ Vector<int> not_started;
+ {
+ ndb_mgm_node_state* node = 0;
+ while((node = select_node_to_start(m_nodes)))
+ {
+ not_started.push_back(node->node_id);
+ node->node_status = NDB_MGM_NODE_STATUS_STARTED;
+ }
+ }
+
+ if (not_started.size())
+ {
+ ndbout << "Starting stopped nodes " << endl;
+ if (startNodes(not_started.getBase(), not_started.size()))
+ return NDBT_FAILED;
+ if (waitClusterStarted())
+ return NDBT_FAILED;
+ }
+ return NDBT_OK;
+}
+
+template class Vector<ndb_mgm_node_state*>;
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index d2742c548b6..92d9731e72d 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -261,13 +261,13 @@ else
esac
fi
-# Safeguard (relative paths, core dumps..)
-cd $basedir
-
case "$mode" in
'start')
# Start daemon
+ # Safeguard (relative paths, core dumps..)
+ cd $basedir
+
manager=$bindir/mysqlmanager
if test -x $libexecdir/mysqlmanager
then
@@ -362,20 +362,52 @@ case "$mode" in
fi
;;
- 'reload')
+ 'reload'|'force-reload')
if test -s "$server_pid_file" ; then
- mysqld_pid=`cat $server_pid_file`
+ read mysqld_pid < $server_pid_file
kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
touch $server_pid_file
else
log_failure_msg "MySQL PID file could not be found!"
+ exit 1
fi
;;
-
- *)
- # usage
- echo "Usage: $0 {start|stop|restart|reload} [ MySQL server options ]"
- exit 1
+ 'status')
+ # First, check to see if pid file exists
+ if test -s "$server_pid_file" ; then
+ read mysqld_pid < $server_pid_file
+ if kill -0 $mysqld_pid 2>/dev/null ; then
+ log_success_msg "MySQL running ($mysqld_pid)"
+ exit 0
+ else
+ log_failure_msg "MySQL is not running, but PID file exists"
+ exit 1
+ fi
+ else
+ # Try to find appropriate mysqld process
+ mysqld_pid=`pidof $sbindir/mysqld`
+ if test -z $mysqld_pid ; then
+ if test "$use_mysqld_safe" = "0" ; then
+ lockfile=/var/lock/subsys/mysqlmanager
+ else
+ lockfile=/var/lock/subsys/mysql
+ fi
+ if test -f $lockfile ; then
+ log_failure_msg "MySQL is not running, but lock exists"
+ exit 2
+ fi
+ log_failure_msg "MySQL is not running"
+ exit 3
+ else
+ log_failure_msg "MySQL is running but PID file could not be found"
+ exit 4
+ fi
+ fi
+ ;;
+ *)
+ # usage
+ echo "Usage: $0 {start|stop|restart|reload|force-reload|status} [ MySQL server options ]"
+ exit 1
;;
esac
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c
index 534f7a51e05..0a9fbd4abe6 100644
--- a/tests/mysql_client_test.c
+++ b/tests/mysql_client_test.c
@@ -87,7 +87,7 @@ DBUG_PRINT("test", ("name: %s", str)); \
if (opt_silent < 2) \
{ \
fprintf(stdout, "\n\n#####################################\n"); \
- fprintf(stdout, "%d of (%d/%d): %s", test_count++, iter_count, \
+ fprintf(stdout, "%u of (%u/%u): %s", test_count++, iter_count, \
opt_count, str); \
fprintf(stdout, " \n#####################################\n"); \
}
@@ -103,7 +103,7 @@ if (!opt_silent) \
static void print_error(const char *msg);
static void print_st_error(MYSQL_STMT *stmt, const char *msg);
-static void client_disconnect();
+static void client_disconnect(void);
/*
@@ -122,7 +122,7 @@ static void client_disconnect();
#define DIE(expr) \
die(__FILE__, __LINE__, #expr)
-void die(const char *file, int line, const char *expr)
+static void die(const char *file, int line, const char *expr)
{
fflush(stdout);
fprintf(stderr, "%s:%d: check failed: '%s'\n", file, line, expr);
@@ -256,7 +256,7 @@ static my_bool check_have_innodb(MYSQL *conn)
mysql_simple_prepare(): a variant without the 'length' parameter.
*/
-MYSQL_STMT *STDCALL
+static MYSQL_STMT *STDCALL
mysql_simple_prepare(MYSQL *mysql_arg, const char *query)
{
MYSQL_STMT *stmt= mysql_stmt_init(mysql_arg);
@@ -472,7 +472,7 @@ static void my_print_result_metadata(MYSQL_RES *result)
/* Process the result set */
-int my_process_result_set(MYSQL_RES *result)
+static int my_process_result_set(MYSQL_RES *result)
{
MYSQL_ROW row;
MYSQL_FIELD *field;
@@ -528,7 +528,7 @@ int my_process_result_set(MYSQL_RES *result)
}
-int my_process_result(MYSQL *mysql_arg)
+static int my_process_result(MYSQL *mysql_arg)
{
MYSQL_RES *result;
int row_count;
@@ -548,7 +548,7 @@ int my_process_result(MYSQL *mysql_arg)
#define MAX_RES_FIELDS 50
#define MAX_FIELD_DATA_SIZE 255
-int my_process_stmt_result(MYSQL_STMT *stmt)
+static int my_process_stmt_result(MYSQL_STMT *stmt)
{
int field_count;
int row_count= 0;
diff --git a/vio/viosslfactories.c b/vio/viosslfactories.c
index d318f1b0122..d26d4147c9f 100644
--- a/vio/viosslfactories.c
+++ b/vio/viosslfactories.c
@@ -257,8 +257,13 @@ new_VioSSLFd(const char *key_file, const char *cert_file,
DBUG_RETURN(0);
}
- /* Set the ciphers that can be used */
- if (cipher && SSL_CTX_set_cipher_list(ssl_fd->ssl_context, cipher))
+ /*
+ Set the ciphers that can be used
+ NOTE: SSL_CTX_set_cipher_list will return 0 if
+ none of the provided ciphers could be selected
+ */
+ if (cipher &&
+ SSL_CTX_set_cipher_list(ssl_fd->ssl_context, cipher) == 0)
{
DBUG_PRINT("error", ("failed to set ciphers to use"));
report_errors();