Commit 2ac94c30 authored by msvensson@pilot.blaudden's avatar msvensson@pilot.blaudden

Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.1

into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
parents 7855ae51 33fcd2bc
......@@ -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
......
......@@ -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)
......
......@@ -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
......
......@@ -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)
......
......@@ -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.%
......@@ -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
};
......@@ -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)
......
This diff is collapsed.
This diff is collapsed.
......@@ -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)
......
# 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.%
###########################################################################
# 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
#
# 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/
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))]}'
[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
This diff is collapsed.
This diff is collapsed.
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.
#
# 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.
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@
The examples directory includes files that might be needed by some
developers:
- header files not installed by default
- the example file udf_example.cc
usr/bin/mysql_config
usr/include/*
usr/lib/libmysqlclient.a
usr/lib/libmysqlclient.la
usr/lib/mysql
usr/share/man/man1/mysql_config.1
usr/lib/libmysqlclient.so.15 usr/lib/libmysqlclient.so
usr/lib/libmysqlclient_r.so.15 usr/lib/libmysqlclient_r.so
* 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>
usr/lib/libmysqlclient*.so.*
#!/bin/bash -e
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
# vim: ts=4
usr/include/mysql/storage/ndb/
usr/include/
usr/lib/
usr/include/mysql/storage/ndb/*
usr/lib/libndbclient.a
usr/lib/libndbclient.la
usr/lib/libndbclient.so.4 usr/lib/libndbclient.so
* 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>
usr/lib/libndbclient*.so.*
#!/bin/bash -e
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
# vim: ts=4
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
FAQ:
Q: My <tab> completition is gone, why?
A: You have "no-auto-rehash" in the "[mysql]" section of /etc/mysql/my.cnf!
usr/bin/
usr/share/man/man1/
README
EXCEPTIONS-CLIENT
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
mysql-client-@MYSQL_BRANDED_BASE_VERSION@: package-has-a-duplicate-relation
[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>
etc/mysql/my.cnf
usr/share/mysql-common/internal-use-only
#!/bin/bash
if [ "$1" = "purge" ]; then
rmdir /etc/mysql 2>/dev/null || true
fi
#DEBHELPER#
#!/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
usr/bin/ndb_drop_index
usr/bin/ndb_drop_table
usr/bin/ndb_delete_all
#!/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
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
* 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.
#!/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
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
EXCEPTIONS-CLIENT
debian/copyright.more
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
usr/bin/mysqld_safe usr/bin/safe_mysqld
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
/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'$
/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'$
/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'$
# - 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
}
This diff is collapsed.
#!/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
#!/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
#!/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#
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.
#!/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
#!/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
This diff is collapsed.
usr/bin
usr/share/mysql/mysql-test
usr/share/mysql-test/*
usr/bin/mysql_client_test
usr/bin
usr/share/mysql
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
[type: gettext/rfc822deb] mysql-server-@MYSQL_BRANDED_BASE_VERSION@.templates
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment