|
Added |
mysql-patches.tar.bz2
^
|
[-]
[+]
|
Added |
README.SuSE
^
|
@@ -0,0 +1,57 @@
+Notes about MySQL 5.1 package:
+==============================
+
+With MySQL 5.1 package we introduced some changes you may like to know. Most of
+them will affect you only if you are upgrading from previous version and you
+did some changes to your configuration.
+
+1) Plugins:
+===========
+
+One of the new features in MySQL 5.1 is support for plugins. So some of the
+storage engines are now shipped like that. You can use following plugins:
+
+ - archive
+ - blackhole
+ - federated
+ - example
+
+InnoDB is still compiled as internal part of MySQL. If you are upgrading from
+version 5.0 or if this is your first installation of MySQL 5.1, all plugins
+will be enabled by default and you can disable them manually later (see
+http://dev.mysql.com/doc/refman/5.1/en/uninstall-plugin.html).
+
+With this change you need to remove skip-federated option from your my.cnf file
+if you have changed it manually. This option was there by default in previous
+versions of MySQL.
+
+2) File locations:
+==================
+
+There were some changes in files locations. Most of them were made in the
+default configuration file so if you are experiencing problems and you have
+made some manual adjustments to your /etc/my.cnf, try to merge this file with
+/etc/my.cnf.rpmnew.
+
+File locations changes:
+ - MySQL socket file and pid file were moved from /var/lib/mysql to more
+ reasonable location ( /var/run/mysql ) by default.
+ - MySQL log files are in /var/log/mysql.
+
+3) BerkeleyDB:
+==============
+
+MySQL no longer contains BerkeleyDB as storage engine. There is no fix for that
+and if you used it before, you have to migrate your data to different storage
+engine BEFORE updating. This can be done for example using following command:
+
+ ALTER TABLE foo ENGINE = INNODB;
+
+4) MySQL Upgrade Log
+====================
+
+If you missed messages displayed during automatic MySQL database upgrade, you
+can find them from now on in
+
+ /var/log/mysql/mysqld-upgrade.log
+
|
[-]
[+]
|
Added |
README.debug
^
|
@@ -0,0 +1,102 @@
+Debugging mysqld crashes
+========================
+Author: Michal Marek <mmarek@suse.cz>
+Last modified: 2006-07-31
+
+Contents
+--------
+1) Query log
+2) Coredumps and Backtraces
+3) Trace files
+
+In case your MySQL server crashes, here are some hints on what to
+include in a bugreport at https://bugzilla.novell.com/ . Please report
+there only bugs in the MySQL packages packaged by Novell/SUSE, bugs in
+binaries / source provided by MySQL AB should be reported at
+http://bugs.mysql.com/ .
+
+1) Query log
+------------
+ Note: Skip this chapter if you already have an exact query that
+ crashes the server
+
+To find out which query possibly crashed the server, add the following
+line to your /etc/my.cnf into section [mysqld]:
+
+ log=/var/lib/mysql/mysqld-query.log
+
+Mysqld then will, at some performance cost, log all queries into this
+file. After a server crash, you can examine the queries from the time it
+crashed and try to reproduce the crash with single queries (this might
+not allways work, eg. if the crash is caused by some race condition).
+
+Note that this log file may become extremly large, so if you decide to
+attach it whole to the bugzilla, don't forget to
+
+ bzip2 -k /var/lib/mysql/mysqld-query.log
+
+and attach the bzipped file instead.
+
+2) Coredumps and Backtraces
+---------------------------
+Another valuable information for the developers is the backtrace. The
+easies way to get one is to let mysqld produce a coredump. Add the
+following line to your /etc/my.cnf into section [mysqld]:
+
+ core-file
+
+ Note: this unfortunatelly doesn't work in SUSE Linux 10.1 and older.
+ On these systems, you need to run safe_mysqld directly under user
+ mysql:
+
+ su - mysql
+ mysqld_safe --socket=/var/lib/mysql/mysql.sock \
+ --datadir=/var/lib/mysql --core-file &
+
+The core file will be written to the /var/lib/mysql/ directory. I
+suggest setting the kernel variable kernel.core_uses_pid to 1
+
+ sysctl -w kernel.core_uses_pid=1
+
+so that the coredumps don't overwrite each other if you experience
+multiple crashes.
+
+After you got the core file, install the gdb and mysql-debuginfo
+packages and run
+
+ gdb /usr/sbin/mysqld /var/lib/mysql/core
+ (gdb) bt
+
+Replace mysqld with the mysqld version you used (mysqld, mysqld-max or
+mysqld-debug) and core with the actual name of the coredump.
+
+3) Trace files
+--------------
+You'll need the mysqld-debug binary from the mysql-debug package to get
+a trace file. Install the mysqld-debug package and the start mysqld
+using following command:
+
+ $ MYSQLD_DEBUG=yes rcmysql start
+
+ Note: The init script doesn't automatically pick up the mysqld-debug
+ binary (as it does with mysqld-max), because it is expected to be used
+ just temporarily to help solving a particular problem.
+
+The init script will then start mysqld-debug and add the --core-file,
+--log and --debug options for you. The query log will be stored in
+
+ /var/lib/mysql/myqld-query.log
+
+and the trace file in
+
+ /var/lib/mysql/mysqld.trace
+
+If you don't like the options set by the init script, just put your own
+into /etc/my.cnf and the init script will honor it. For information
+about the --debug option, see "The DBUG Package":
+http://dev.mysql.com/doc/refman/5.0/en/the-dbug-package.html .
+
+The trace file will contain various debug information and function
+calls/returns and will become _extremly_ huge after a while, so don't
+attach it to bugzilla unless requested.
+
|
[-]
[+]
|
Added |
baselibs.conf
^
|
@@ -0,0 +1,2 @@
+libmysqlclient16
+libmysqlclient_r16
|
[-]
[+]
|
Added |
default_plugins.cnf
^
|
@@ -0,0 +1,4 @@
+[server]
+plugin-load=blackhole=ha_blackhole.so
+plugin-load=federated=ha_federated.so
+plugin-load=archive=ha_archive.so
|
|
Added |
mysql-5.5.8.tar.bz2
^
|
[-]
[+]
|
Added |
mysql.SuSEfirewall2
^
|
@@ -0,0 +1,6 @@
+## Name: MySQL server
+## Description: opens ports for MySQL in order to allow other hosts connect to it
+
+# space separated list of allowed TCP ports
+TCP="3306"
+
|
[-]
[+]
|
Added |
rc.mysql-multi
^
|
@@ -0,0 +1,530 @@
+#!/bin/bash
+# Copyright (c) 1995-2011 SuSE Linux AG Nuernberg, Germany.
+#
+# Author: Lenz Grimmer
+# Maintainer: Michal Hrusecky <mhrusecky@suse.cz>
+#
+# mysqld_multi extension added by Richard Bos, 2008
+#
+# /etc/init.d/mysql
+#
+# and its symbolic link
+#
+# /usr/sbin/rcmysql
+#
+### BEGIN INIT INFO
+# Provides: mysql
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Default-Start: 2 3 5
+# Default-Stop:
+# Short-Description: Start the MySQL database server
+# Description: Start the MySQL database server
+### END INIT INFO
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+. /etc/rc.status
+
+# First reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - insufficient privilege
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signalling is not supported) are
+# considered a success.
+
+# Check for the location of initscript
+if [ "`echo "$0" | grep "^\."`" ] || [ "`echo "$0" | grep "^[^/].*/"`" ]; then
+ MYSELF="`pwd`/$0"
+else
+ MYSELF="$0"
+fi
+
+parse_arguments() {
+ for arg do
+ case "$arg" in
+ --basedir=*) basedir="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ --datadir=*) datadir="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ --pid-file=*) pid_file="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ --socket=*) socket="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ --log-error=*) log_error="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ --user=*) mysql_daemon_user="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ --group=*) mysql_daemon_group="`echo "$arg" | sed -e 's/^[^=]*=//'`" ;;
+ esac
+ done
+}
+
+wait_for_socket()
+{
+ local i
+ for((i=0; i<150; i++)); do
+ sleep 0.2
+ test -S $1 && i='' && break
+ done
+ test -z "$i" || return 1
+ return 0
+}
+
+# Don't run killproc -TERM, as it could send a SIGKILL as well, possibly
+# resulting in database corruption. Run kill -TERM manually instead, wait
+# approximately 300 seconds and fail if mysql doesn't respond. This will at
+# least prevent the SIGKILL when doing 'rcmysql stop' manually. During system
+# shutdown, we are out of luck...
+# See https://bugzilla.novell.com/show_bug.cgi?id=223209
+kill_mysql ()
+{
+ local pid exe
+ test -e "$pid_file" || return 7 # not running
+ pid=`cat "$pid_file"` || return 4 # insufficient privileges
+ if ! test -e /proc/version; then
+ mount -n -t proc proc /proc
+ test -e /proc/version || return 100
+ fi
+ test -L "/proc/$pid/exe" || return 7
+ exe=`readlink "/proc/$pid/exe"` || return 4
+ test "`echo "$exe" | grep "^$MYSQLD"`" || return 7
+ kill -STOP "$pid"
+ kill -TERM "$pid" || return 4 # suboptimal
+ kill -CONT "$pid"
+ for i in `seq 3000`; do
+ # mysqld removes its pid file
+ test -e "$pid_file" || return 0
+ LC_ALL=C sleep 0.1
+ done
+ test -e "$pid_file" || return 0
+ return 1
+}
+
+# Helper function which can end with any status
+set_return_value() {
+ return $1
+}
+
+# Checks for obsolete database
+check_obsolete() {
+ # check for ISAM tables
+ tables="`find "$datadir" -name '*.ISM' 2> /dev/null | sed "s@$datadir/*@@; s@.ISM@@; s@/@.@;"`"
+ if test "$tables" ; then
+ echo
+ echo "Some tables still use ISAM format, which is NO LONGER SUPPORTED"
+ echo "since mysql 5.0. To use these tables, you would need to open them"
+ echo "from an older mysql server and convert to something better (eg. MyISAM)."
+ echo
+ echo "Tables using ISAM are: "
+ echo " $tables "
+ echo
+ fi
+ # check for bdb tables
+ tables="`find "$datadir" -name '*.db' 2> /dev/null | sed "s@$datadir/*@@; s@.db@@; s@/@.@;"`"
+ if test -n "$tables" ; then
+ echo
+ echo "Some tables still use BerkeleyDB format, which is NO LONGER SUPPORTED"
+ echo "since mysql 5.1. To use these tables, you would need to open them"
+ echo "from an older mysql server and convert to something better (eg. MyISAM)."
+ echo
+ echo "Tables using BerkeleyDB are: "
+ echo " $tables "
+ echo
+ fi
+}
+
+# Check if we want to run multiple instances.
+[[ "`cat /etc/my.cnf | sed -n 's|^[[:blank:]]*\[mysqld[0-9]\+\]|yes|p'`" ]] && MYSQLD_MULTI=yes
+
+# This was old way how to specify this, left for backward compatibility.
+[[ -f /etc/sysconfig/mysql ]] && . /etc/sysconfig/mysql
+
+if [[ "$MYSQLD_MULTI" == "yes" ]]; then
+
+ [[ -x /usr/bin/mysqld_multi ]] || {
+ echo -n "MySQL: /usr/bin/mysqld_multi not found"
+ rc_failed 5; rc_status -v; rc_exit;
+ }
+
+ case "$1" in
+ start)
+
+ # FIXME:
+ # We assume a fresh install if the directory $datadir/mysql
+ # does not exist and create the privilege database
+ # if ! test -d $datadir/mysql; then
+ # echo -n "Creating MySQL privilege database... "
+ # mysql_install_db --user=$mysql_daemon_user --datadir=$datadir || {
+ # rc_failed; rc_status -v; rc_exit
+ # }
+ # fi
+ echo -n "Starting service multi MySQL "
+ mysqld_multi start
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ stop)
+ echo -n "Shutting down service multi MySQL "
+ mysqld_multi stop
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ try-restart)
+ ## Stop the service and if this succeeds (i.e. the
+ ## service was running before), start it again.
+ ## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
+ "$MYSELF" status >/dev/null && "$MYSELF" restart
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+
+ restart|force-reload)
|
|
Added |
ready
^
|
[-]
[+]
|
Added |
series
^
|
@@ -0,0 +1,15 @@
+mysql-community-server-5.1.31-shebang.patch
+mysql-community-server-5.5.6-utf8-test-results.patch
+mysql-community-server-5.1.36-hotcopy.patch
+mysql-community-server-5.5.6-cnf.patch
+mysql-community-server-5.5.8-group.patch
+mysql-community-server-5.1.45-multi-configuration.patch
+mysql-community-server-5.5.6-safe-process-in-bin.patch
+mysql-community-server-5.1.46-logrotate.patch
+mysql-community-server-5.5.6-strncat-overflow.patch
+mysql-community-server-5.1.51-install_db-quiet.patch
+mysql-community-server-5.1.51-myslq-test.patch
+mysql-community-server-5.1.51-mysql_config.patch
+mysql-community-server-5.1.51-mysqld_multi-features.patch
+mysql-community-server-5.5.7-plugins-avoid-version.patch
+mysql-community-server-5.1.51-upgrade-exit-status.patch
|
[-]
[+]
|
Added |
suse-test-run
^
|
@@ -0,0 +1,17 @@
+#!/usr/bin/perl
+#
+# Test the SUSE mysql(-Max) package using the MySQL testsuite
+
+my $id = getpwnam("mysql") or die "can't find user \"mysql\": $!";
+my $dir = "/usr/share/mysql-test/";
+
+if ($< == 0) {
+ ($<, $>) = ($id, $id);
+ if ($< != $id || $> != $id) {
+ die "can't switch to user mysql(id $id): $!";
+ }
+}
+
+chdir($dir) or die "can't cd to $dir: $!";
+exec("./mysql-test-run.pl", "--big-test", @ARGV);
+die "can't execute mysql-test-run.pl: $!";
|