forked from pool/mariadb
Accepting request 39217 from server:database
Copy from server:database/mariadb based on submit request 39217 from user -miska- OBS-URL: https://build.opensuse.org/request/show/39217 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mariadb?expand=0&rev=1
This commit is contained in:
commit
9301fefeac
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
57
README.SuSE
Normal file
57
README.SuSE
Normal file
@ -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
|
||||
|
102
README.debug
Normal file
102
README.debug
Normal file
@ -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.
|
||||
|
35
abi_test.patch
Normal file
35
abi_test.patch
Normal file
@ -0,0 +1,35 @@
|
||||
diff -Naru mysql-5.1.44-bak/include/mysql.h mysql-5.1.44/include/mysql.h
|
||||
--- mysql-5.1.44-bak/include/mysql.h 2010-02-23 00:31:19.000000000 +0100
|
||||
+++ mysql-5.1.44/include/mysql.h 2010-02-23 10:51:49.000000000 +0100
|
||||
@@ -44,7 +44,9 @@
|
||||
#endif
|
||||
|
||||
#ifndef _global_h /* If not standard header */
|
||||
-#include <sys/types.h>
|
||||
+#ifndef _abi_test_
|
||||
+#include <sys/types.h>
|
||||
+#endif
|
||||
#ifdef __LCC__
|
||||
#include <winsock2.h> /* For windows */
|
||||
#endif
|
||||
diff -Naru mysql-5.1.44-bak/include/mysql.h.pp mysql-5.1.44/include/mysql.h.pp
|
||||
--- mysql-5.1.44-bak/include/mysql.h.pp 2010-02-23 00:31:19.000000000 +0100
|
||||
+++ mysql-5.1.44/include/mysql.h.pp 2010-02-23 10:54:46.000000000 +0100
|
||||
@@ -1,4 +1,3 @@
|
||||
-#include <sys/types.h>
|
||||
typedef char my_bool;
|
||||
typedef int my_socket;
|
||||
#include "mysql_version.h"
|
||||
diff -Naru mysql-5.1.44-bak/Makefile.am mysql-5.1.44/Makefile.am
|
||||
--- mysql-5.1.44-bak/Makefile.am 2010-02-23 00:31:18.000000000 +0100
|
||||
+++ mysql-5.1.44/Makefile.am 2010-02-23 10:50:18.000000000 +0100
|
||||
@@ -321,7 +321,8 @@
|
||||
-I$(top_builddir)/include \
|
||||
-I$(top_builddir)/include/mysql \
|
||||
-I$(top_builddir)/sql \
|
||||
- $$file 2>/dev/null | \
|
||||
+ -D_abi_test_ \
|
||||
+ $$file | \
|
||||
@SED@ -e '/^# /d' \
|
||||
-e '/^[ ]*$$/d' \
|
||||
-e '/^#pragma GCC set_debug_pwd/d' \
|
2
baselibs.conf
Normal file
2
baselibs.conf
Normal file
@ -0,0 +1,2 @@
|
||||
libmysqlclient16
|
||||
libmysqlclient_r16
|
27
libmysql-no-pkglibdir.patch
Normal file
27
libmysql-no-pkglibdir.patch
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
libmysql/Makefile.shared | 2 +-
|
||||
libmysqld/Makefile.am | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- libmysql/Makefile.shared.orig
|
||||
+++ libmysql/Makefile.shared
|
||||
@@ -26,7 +26,7 @@ MYSQLBASEdir= $(prefix)
|
||||
## We'll use CLIENT_EXTRA_LDFLAGS for threaded and non-threaded
|
||||
## until someone complains that they need separate options.
|
||||
LDADD = @CLIENT_EXTRA_LDFLAGS@ $(target)
|
||||
-pkglib_LTLIBRARIES = $(target)
|
||||
+lib_LTLIBRARIES = $(target)
|
||||
|
||||
noinst_PROGRAMS = conf_to_src
|
||||
|
||||
--- libmysqld/Makefile.am.orig
|
||||
+++ libmysqld/Makefile.am
|
||||
@@ -36,7 +36,7 @@ INCLUDES= -I$(top_builddir)/include -I$
|
||||
@condition_dependent_plugin_includes@
|
||||
|
||||
noinst_LIBRARIES = libmysqld_int.a
|
||||
-pkglib_LIBRARIES = libmysqld.a
|
||||
+lib_LIBRARIES = libmysqld.a
|
||||
SUBDIRS = . examples
|
||||
libmysqld_sources= libmysqld.c lib_sql.cc emb_qcache.cc
|
||||
libmysqlsources = errmsg.c get_password.c libmysql.c client.c pack.c \
|
3
mariadb-5.1.44.tar.bz2
Normal file
3
mariadb-5.1.44.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5c8d4f5545d2dc740d1a84a6e11a61122ff25d20be37f35ea8816bba883f82f9
|
||||
size 16757135
|
1610
mariadb.changes
Normal file
1610
mariadb.changes
Normal file
File diff suppressed because it is too large
Load Diff
972
mariadb.spec
Normal file
972
mariadb.spec
Normal file
@ -0,0 +1,972 @@
|
||||
#
|
||||
# spec file for package mariadb (Version 5.1.44)
|
||||
#
|
||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
# Few definitions which will alter build
|
||||
%define prefered 0
|
||||
%define cluster 0
|
||||
%define srv_vers 5.1.44
|
||||
|
||||
%if %{?rel:0}%{!?rel:1}
|
||||
%define rel 1
|
||||
%endif
|
||||
#Distribution: %dist
|
||||
#Packager: %packager
|
||||
#Vendor: %vendor
|
||||
|
||||
Name: mariadb
|
||||
Summary: A True Multiuser, Multithreaded SQL Database Server
|
||||
Version: 5.1.44
|
||||
Release: 1
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Group: Productivity/Databases/Servers
|
||||
Url: http://www.mysql.com
|
||||
# http://dev.mysql.com/get/Downloads/MySQL-5.1/%{name}-%{version}.tar.gz/from/pick
|
||||
Source: mariadb-%{version}.tar.bz2
|
||||
Source2: baselibs.conf
|
||||
Source3: README.debug
|
||||
Source4: suse-test-run
|
||||
Source5: mysql.SuSEfirewall2
|
||||
Source7: rc.mysql-multi
|
||||
Source8: README.SuSE
|
||||
# Polishing default config file
|
||||
Patch2: mysql-cnf.patch
|
||||
Patch3: mysql-multi-configuration.patch
|
||||
# Adds option to set group to something else similarly to the user settings
|
||||
Patch4: mysql-group.patch
|
||||
# Warning about initscript in mysql_install_db disabled, since the SUSE RPM comes with an init script installed
|
||||
Patch5: mysql-install_db-quiet.patch
|
||||
# Checks flush-logs exit status in support-files/mysql-log-rotate.sh
|
||||
Patch7: mysql-logrotate.patch
|
||||
# Adds reload funcionality to mysqld_multi.sh perl script and adds --datadir support
|
||||
Patch8: mysqld_multi.patch
|
||||
# Disables failure on one test during update and improves error message during update a little bit
|
||||
Patch13: mysql_upgrade-exit-status.patch
|
||||
# Changes pkglib_LIBRARIES into lib_LIBRARIES in libmysql
|
||||
Patch18: libmysql-no-pkglibdir.patch
|
||||
# Adds option -avoid-version to LDFLAGS for plugins blackhole, archive and example
|
||||
Patch19: mysql-plugins-avoid-version.patch
|
||||
# This patch loads plugins by default if there is no settings regarding plugins.
|
||||
Patch23: mysql-enable-plugins.patch
|
||||
# PATCH-FIX-UPSTREAM mysql-5.1.31-shebang.patch [] mhrusecky@suse.cz -- adds mising shebangs
|
||||
Patch25: mysql-5.1.31-shebang.patch
|
||||
# PATCH-FIX-UPSTREAM mysql-5.1.35-test-variables-big.patch [upstream bug #38811] -- different way to test whether server crashed
|
||||
# http://bugs.mysql.com/bug.php?id=38811
|
||||
Patch27: mysql-5.1.35-test-variables-big.patch
|
||||
# PATCH-FIX-SUSE mysql-5.1.32-myslq-test.patch mhrusecky@suse.cz -- installs tests into datadir not into prefix
|
||||
Patch28: mysql-5.1.42-myslq-test.patch
|
||||
# PATCH-FIX-UPSTREAM mysql-5.1.33-scripts-paths.patch [ upstream#45616 ] mhrusecky@suse.cz -- fixes build of scripts when compilation occurs somewhere else
|
||||
# http://bugs.mysql.com/bug.php?id=45616
|
||||
Patch29: mysql-5.1.33-scripts-paths.patch
|
||||
# PATCH-FIX-SUSE mysql-5.1.33-safe-process-in-bin.patch [] mhrusecky@suse.cz -- this will let us move one binary to /usr/bin instead of /usr/share/mysql-test/...
|
||||
Patch30: mysql-5.1.33-safe-process-in-bin.patch
|
||||
# PATCH-FIX-SUSE mysql-5.1.33-ssl-lib64-macro.patch [] mhrusecky@suse.cz -- search for ssl libraries also in lib64
|
||||
Patch31: mysql-5.1.33-ssl-lib64-macro.patch
|
||||
# PATCH-FIX-SUSE mysql-5.1.35-test-utf8.patch [] mhrusecky@suse.cz -- we use utf-8 by default which produces different output with few tests
|
||||
Patch35: mysql-5.1.35-test-utf8.patch
|
||||
# PATCH-FIX-UPSTREAM mysql-5.1.36-bmove512.patch [ upstream#19975 ] mhrusecky@suse.cz -- using standard memcpy instead of bmove512 as it should be beeter
|
||||
# http://bugs.mysql.com/bug.php?id=19975
|
||||
Patch37: mysql-5.1.36-bmove512.patch
|
||||
# PATCH-FIX-UPSTREAM mysql-5.1.36-hotcopy.patch [ upstream#43594, bnc#525325 ] mhrusecky@suse.cz -- hotcopy ignores log tables
|
||||
# http://bugs.mysql.com/bug.php?id=43594
|
||||
Patch38: mysql-5.1.36-hotcopy.patch
|
||||
# PATCH-FIX-UPSTREAM mysql_config.patch [ upstream#39175, bnc#420313 ] mhrusecky@suse.cz -- Fix linking options.
|
||||
Patch39: mysql_config.patch
|
||||
Patch45: abi_test.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%if 0%{?suse_version}
|
||||
PreReq: pwdutils
|
||||
%else
|
||||
PreReq: /usr/sbin/useradd /usr/sbin/usermod /usr/sbin/groupadd
|
||||
%endif
|
||||
PreReq: coreutils sed grep
|
||||
%if 0%{?suse_version}
|
||||
PreReq: %install_info_prereq %insserv_prereq
|
||||
%endif
|
||||
BuildRequires: gcc-c++ ncurses-devel openssl-devel procps readline-devel zlib-devel
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: pwdutils tcpd-devel
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1030 || 0%{?fedora_version} > 8
|
||||
BuildRequires: fdupes
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1030
|
||||
Recommends: logrotate
|
||||
%else
|
||||
Requires: logrotate
|
||||
%endif
|
||||
# required by rcmysql
|
||||
Requires: %{name}-client perl-base
|
||||
Obsoletes: mysql-Max < %{srv_vers}
|
||||
Provides: mysql-Max = %{srv_vers}
|
||||
Obsoletes: mysql < %{srv_vers}
|
||||
Provides: mysql = %{srv_vers}
|
||||
Conflicts: otherproviders(mysql)
|
||||
|
||||
%description
|
||||
MariaDB is a backward compatible, drop-in replacement branch of the MySQL
|
||||
Database Server. It includes all major open source storage engines, including
|
||||
the Maria storage engine.
|
||||
|
||||
This package only contains the server-side programs.
|
||||
|
||||
%if ! 0%{?prefered} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%package -n libmariadbclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
Summary: MariaDB Shared Libraries
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Group: Development/Libraries/Other
|
||||
|
||||
%description -n libmariadbclient16
|
||||
This package contains the shared libraries (.so) which certain
|
||||
languages and applications need to dynamically load and use MariaDB.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package -n libmariadbclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
Summary: MariaDB Shared Libraries
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Group: Development/Libraries/Other
|
||||
|
||||
%description -n libmariadbclient_r16
|
||||
This package contains the shared libraries (.so) which certain
|
||||
languages and applications need to dynamically load and use MariaDB.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
%endif
|
||||
%if 0%{?prefered} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%package -n libmysqlclient-devel
|
||||
#-------------------------------------------------------------------------------
|
||||
# mysql-devel was last used in openSUSE 10.2
|
||||
Provides: mysql-devel = %srv_vers-%release
|
||||
Obsoletes: mysql-devel < %srv_vers
|
||||
Requires: libmysqlclient16 = %srv_vers libmysqlclient_r16 = %srv_vers glibc-devel zlib-devel openssl-devel
|
||||
Summary: MariaDB Development Header Files and Libraries
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Group: Development/Libraries/C and C++
|
||||
|
||||
%description -n libmysqlclient-devel
|
||||
This package contains the development header files and libraries
|
||||
necessary to develop MariaDB client applications.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package -n libmysqld0
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB embedded server development files
|
||||
# the headers files are the shared
|
||||
Requires: libmysqlclient-devel = %srv_vers
|
||||
Group: Development/Libraries/C and C++
|
||||
|
||||
%description -n libmysqld0
|
||||
This package contains the development header files and libraries
|
||||
for developing application that embed the MariaDB server
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package -n libmysqld-devel
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB embedded server development files
|
||||
# the headers files are the shared
|
||||
Requires: libmysqlclient-devel = %srv_vers
|
||||
Requires: libmysqld0 = %srv_vers
|
||||
Group: Development/Libraries/C and C++
|
||||
|
||||
%description -n libmysqld-devel
|
||||
This package contains the development header files and libraries
|
||||
for developing application that embed the MariaDB server
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package -n libmysqlclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
Summary: MariaDB Shared Libraries
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Group: Development/Libraries/Other
|
||||
|
||||
%description -n libmysqlclient16
|
||||
This package contains the shared libraries (.so) which certain
|
||||
languages and applications need to dynamically load and use MariaDB.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package -n libmysqlclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
Summary: MariaDB Shared Libraries
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Group: Development/Libraries/Other
|
||||
|
||||
%description -n libmysqlclient_r16
|
||||
This package contains the shared libraries (.so) which certain
|
||||
languages and applications need to dynamically load and use MariaDB.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
%endif
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%package client
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB Client
|
||||
Group: Productivity/Databases/Clients
|
||||
Provides: mysql-client = %{srv_vers}
|
||||
Obsoletes: mysql-client < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-client)
|
||||
|
||||
%description client
|
||||
This package contains the standard MariaDB clients.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package bench
|
||||
#-------------------------------------------------------------------------------
|
||||
Requires: %{name}-client perl-DBD-mysql
|
||||
License: LGPLv2.1
|
||||
Summary: MariaDB - Benchmarks
|
||||
Group: Productivity/Databases/Tools
|
||||
Provides: mysql-bench = %{srv_vers}
|
||||
Obsoletes: mysql-bench < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-bench)
|
||||
|
||||
%description bench
|
||||
This package contains MariaDB benchmark scripts and data.
|
||||
|
||||
To run these database benchmarks, start the script "run-all-tests" in
|
||||
the directory /usr/share/sql-bench after starting MariaDB.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package debug
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB server with debug options turned on
|
||||
Group: Productivity/Databases/Servers
|
||||
Requires: %{name} = %{srv_vers}
|
||||
Provides: mysql-debug = %{srv_vers}
|
||||
Obsoletes: mysql-debug < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-debug)
|
||||
|
||||
%description debug
|
||||
A version of the mysql server that has some debug code turned on.
|
||||
It should be only used to track down problems with the standard
|
||||
servers. Note that merely installing this package won't replace the
|
||||
standard server. Read /usr/share/doc/packages/mysql/README.debug for
|
||||
information on how to use the debug server.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package test
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB testsuite
|
||||
Group: Productivity/Databases/Servers
|
||||
Requires: %{name} = %{srv_vers}
|
||||
Requires: %{name}-client = %{srv_vers}
|
||||
Requires: perl-DBD-mysql
|
||||
Requires: %{name}-tools = %{srv_vers}
|
||||
Requires: %{name}-bench = %{srv_vers}
|
||||
Provides: mysql-test = %{srv_vers}
|
||||
Obsoletes: mysql-test < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-test)
|
||||
|
||||
%description test
|
||||
This package contains the MariaDB test scripts and data.
|
||||
|
||||
To run the testsuite, run /usr/share/mysql-test/suse-test-run.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package tools
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB tools
|
||||
Group: Productivity/Databases/Servers
|
||||
Requires: perl-DBD-mysql
|
||||
# make sure this package is installed when updating from 10.2 and older
|
||||
Provides: mysql:/usr/bin/mysqlhotcopy mysql-client:/usr/bin/perror
|
||||
Provides: mysql-tools = %{srv_vers}
|
||||
Obsoletes: mysql-tools < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-tools)
|
||||
|
||||
%description tools
|
||||
A set of scripts for administering a MariaDB server or developing
|
||||
applications with MariaDB.
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Michael Widenius <monty@mysql.com>
|
||||
David Axmark <davida@mysql.com>
|
||||
|
||||
%if 0%{?cluster} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%package ndb-storage
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB - ndbcluster storage engine
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: mysql-ndb-storage = %{srv_vers}
|
||||
Obsoletes: mysql-ndb-storage < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-ndb-storage)
|
||||
|
||||
%description ndb-storage
|
||||
This package contains the ndbcluster storage engine.
|
||||
It is necessary to have this package installed on all
|
||||
computers that should store ndbcluster table data.
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package ndb-management
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB - ndbcluster storage engine management
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: mysql-ndb-management = %{srv_vers}
|
||||
Obsoletes: mysql-ndb-management < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-ndb-management)
|
||||
|
||||
%description ndb-management
|
||||
This package contains ndbcluster storage engine management.
|
||||
It is necessary to have this package installed on at least
|
||||
one computer in the cluster.
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package ndb-tools
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB - ndbcluster storage engine basic tools
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: mysql-ndb-tools = %{srv_vers}
|
||||
Obsoletes: mysql-ndb-tools < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-ndb-tools)
|
||||
|
||||
%description ndb-tools
|
||||
This package contains ndbcluster storage engine basic tools.
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
%package ndb-extra
|
||||
#-------------------------------------------------------------------------------
|
||||
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
||||
Summary: MariaDB - ndbcluster storage engine extra tools
|
||||
Group: Productivity/Databases/Servers
|
||||
Provides: mysql-ndb-extra = %{srv_vers}
|
||||
Obsoletes: mysql-ndb-extra < %{srv_vers}
|
||||
Conflicts: otherproviders(mysql-ndb-extra)
|
||||
|
||||
%description ndb-extra
|
||||
This package contains some extra ndbcluster storage engine tools for the
|
||||
advanced user. They should be used with caution.
|
||||
|
||||
%endif
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%prep
|
||||
#-------------------------------------------------------------------------------
|
||||
%setup -q -n mariadb-%version
|
||||
cp %_sourcedir/README.SuSE .
|
||||
cp %_sourcedir/suse-test-run .
|
||||
%patch2
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
%patch7
|
||||
%patch8
|
||||
%patch13
|
||||
%patch18
|
||||
%patch19
|
||||
%patch23
|
||||
%patch25 -p1
|
||||
%patch27
|
||||
%patch28
|
||||
%patch29
|
||||
%patch30
|
||||
%patch31
|
||||
%patch35
|
||||
%patch37
|
||||
%patch38
|
||||
%patch39
|
||||
%patch45 -p1
|
||||
# remove unneeded manpages ('make install' basically installs everything under
|
||||
# man/*)
|
||||
rm -f man/mysqlman.1 # dummy fallback manpage
|
||||
rm -f man/mysql.server.1 # init script, not installed in our rpm
|
||||
rm -f man/make_win_*.1 # windows build scripts
|
||||
rm -f man/comp_err.1 # built-time utility
|
||||
# 5.1 Carrier Grade Edition only / still under development as of 5.1.22
|
||||
rm -f man/ndbd_redo_log_reader.1
|
||||
# breaks VPATH builds when in sourcedir, is generated in the builddirs
|
||||
rm -f sql/sql_builtin.cc
|
||||
sed -i 's|@localstatedir@|/var/log|' support-files/mysql-log-rotate.sh
|
||||
%if ! 0%{?prefered} > 0
|
||||
for i in `grep -Rl mysqlclient .`; do
|
||||
sed -i 's|mysqlclient|mariadbclient|g' $i
|
||||
done
|
||||
%endif
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%build
|
||||
#-------------------------------------------------------------------------------
|
||||
%if 0%{?suse_version} < 1120 && 0%{?suse_version} > 0
|
||||
%define socketpath /var/lib/mysql
|
||||
%else
|
||||
%define socketpath /var/run/mysql
|
||||
%endif
|
||||
autoreconf -f -i
|
||||
export CFLAGS="$RPM_OPT_FLAGS -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -DFORCE_INIT_OF_VARS -fno-strict-aliasing"
|
||||
export CXXFLAGS="$CFLAGS -fno-exceptions -fno-rtti"
|
||||
# Make the compile a function, since we do multiple builds
|
||||
BuildMySQL() {
|
||||
# The --enable-assembler simply does nothing on systems that do not
|
||||
# support assembler speedups.
|
||||
suffix="$1"; shift
|
||||
mkdir _build$suffix
|
||||
pushd _build$suffix
|
||||
../configure \
|
||||
--enable-assembler \
|
||||
--without-readline \
|
||||
--infodir=%{_infodir} \
|
||||
--libdir=%{_libdir} \
|
||||
--libexecdir=/usr/sbin \
|
||||
--localstatedir=/var/lib/mysql \
|
||||
--mandir=%{_mandir} \
|
||||
--prefix=%{_prefix} \
|
||||
--sysconfdir=/etc \
|
||||
--with-mysqld-user=mysql \
|
||||
--with-mysqld-group=mysql \
|
||||
--without-debug \
|
||||
--datadir=/usr/share \
|
||||
--includedir=/usr/include \
|
||||
--with-charset=utf8 \
|
||||
--with-collation=utf8_unicode_ci \
|
||||
--with-extra-charsets=all \
|
||||
--with-unix-socket-path=%{socketpath}/mysql.sock \
|
||||
--enable-thread-safe-client \
|
||||
--with-comment="SUSE MariaDB RPM" \
|
||||
--with-libwrap \
|
||||
--with-server-suffix=$suffix \
|
||||
%ifarch s390 s390x
|
||||
--with-atomic-ops=rwlocks \
|
||||
%else
|
||||
--with-atomic-ops=smp \
|
||||
%endif
|
||||
--with-ssl=/usr \
|
||||
--with-plugins=partition,csv,heap,myisam,ndbcluster,innobase \
|
||||
HOSTNAME="/bin/hostname -f" \
|
||||
"$@"
|
||||
# Add this for MyISAM RAID support:
|
||||
# --with-raid
|
||||
# benchdir does not fit in above model. Fix when we make a separate package
|
||||
make %{?jobs:-j%jobs}
|
||||
nm --numeric-sort sql/mysqld > sql/mysqld.sym
|
||||
# needed for make check, which is not VPATH aware
|
||||
# copy the files unconditionally so that manual 'make check' after
|
||||
# the build works, too
|
||||
cp -a ../mysql-test/* mysql-test/
|
||||
cp -a ../sql/share/{english,charsets} sql/share/
|
||||
cp -a ../scripts/*.sql scripts/
|
||||
%if %{?_with_testsuite:1}0
|
||||
pushd mysql-test; perl ./mysql-test-run.pl --force; popd
|
||||
%endif
|
||||
popd
|
||||
}
|
||||
# Build the client, extra tools, libraries
|
||||
BuildMySQL "" --with-embedded-server
|
||||
# build mysqld-debug
|
||||
BuildMySQL "-debug" --with-debug --without-embedded-server
|
||||
|
||||
%if 0%{?prefered} > 0
|
||||
mkdir -p _buildlibmysqld/tmp
|
||||
cd _buildlibmysqld/tmp
|
||||
ar -x ../../_build/libmysqld/libmysqld.a
|
||||
gcc $CFLAGS $LDFLAGS -shared -Wl,-soname,libmysqld.so.0 -o ../libmysqld.so.0.0.1 \
|
||||
*.o \
|
||||
-lpthread -lcrypt -lnsl -lssl -lcrypto -lz -lrt -lstdc++ -lm -lc
|
||||
cd ..
|
||||
rm -rf tmp
|
||||
cd ..
|
||||
%endif
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%install
|
||||
#-------------------------------------------------------------------------------
|
||||
# install the debug server first, so that we don't overwrite the standard
|
||||
# /usr/sbin/mysqld
|
||||
mkdir -p %buildroot%_libdir/mysql
|
||||
make -C _build-debug/sql install DESTDIR=%buildroot
|
||||
mv %buildroot/usr/sbin/mysqld %buildroot/usr/sbin/mysqld-debug
|
||||
install -m 644 _build-debug/sql/mysqld.sym %buildroot%_libdir/mysql/mysqld-debug.sym
|
||||
# install the client, extra tools, libraries and the standard server
|
||||
make -C _build install DESTDIR=%buildroot benchdir_root=/usr/share/
|
||||
install -m 644 _build/sql/mysqld.sym %buildroot%_libdir/mysql/mysqld.sym
|
||||
# remove most static libs (FIXME: don't build them at all...)
|
||||
rm -f %buildroot%_libdir/libmysqlclient*a
|
||||
rm -f %buildroot%_libdir/mysql/*.a %buildroot%_libdir/mysql/*.la
|
||||
rm -f %buildroot%_libdir/mysql/plugin/*a
|
||||
# XXX: package these? The ndb tools are linked statically atm
|
||||
rm -f %buildroot%_libdir/mysql/libndbclient.*
|
||||
rm -f %{buildroot}/usr/share/mysql-test/mysql-test-run
|
||||
rm -f %{buildroot}/usr/share/mysql-test/mtr
|
||||
ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mtr
|
||||
ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mysql-test-run
|
||||
mv %{buildroot}/usr/share/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir}
|
||||
# generate filelist for binaries and their manpages (easier than enumerating
|
||||
# all the binaries and manapages manually, esp. when there are new manpages in
|
||||
# each release)
|
||||
filelist()
|
||||
{
|
||||
echo '%%defattr(-, root, root)'
|
||||
pushd %buildroot >/dev/null
|
||||
for i; do
|
||||
if test -e usr/sbin/"$i"; then
|
||||
echo /usr/sbin/"$i"
|
||||
fi
|
||||
if test -e usr/bin/"$i"; then
|
||||
echo /usr/bin/"$i"
|
||||
fi
|
||||
if ls usr/share/man/*/"$i".[1-9]* >/dev/null 2>&1; then
|
||||
echo "%%doc %_mandir/*/$i.[1-9]*"
|
||||
fi
|
||||
done
|
||||
popd >/dev/null
|
||||
}
|
||||
filelist innochecksum my_print_defaults myisam_ftdump myisamchk myisamlog myisampack mysql_fix_extensions mysql_fix_privilege_tables mysql_install_db mysql_secure_installation mysql_upgrade mysqlbug mysqld mysqld_multi mysqld_safe mysqlbinlog mysqldumpslow mysqlmanager resolve_stack_dump resolveip >mysql.files
|
||||
filelist mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow >mysql-client.files
|
||||
filelist mysql_config >libmysqlclient-devel.files
|
||||
filelist mysqlslap >mysql-bench.files
|
||||
filelist mysql_client_test mysql_client_test_embedded mysql_waitpid mysqltest mysqltest_embedded >mysql-test.files
|
||||
# all binaries that don't need to be in a "default" install (mysql.rpm +
|
||||
# mysql-client.rpm)
|
||||
filelist msql2mysql mysql_convert_table_format mysql_find_rows mysql_setpermission mysql_tzinfo_to_sql mysql_zap mysqlaccess mysqlhotcopy perror replace >mysql-tools.files
|
||||
filelist ndbd ndbmtd ndbd_redo_log_reader >mysql-ndb-storage.files
|
||||
filelist ndb_mgmd >mysql-ndb-management.files
|
||||
filelist ndb_{config,desc,error_reporter,mgm,print_backup_file,print_schema_file,print_sys_file,restore,select_all,select_count,show_tables,size.pl,test_platform,waiter} >mysql-ndb-tools.files
|
||||
filelist ndb_{cpcd,delete_all,drop_index,drop_table} >mysql-ndb-extra.files
|
||||
### files not installed by make install
|
||||
# Create directory structure
|
||||
DOCS=(COPYING README EXCEPTIONS-CLIENT %_sourcedir/README.debug %_sourcedir/README.SuSE)
|
||||
DOCDIR=%buildroot%_defaultdocdir/%name
|
||||
install -d -m 755 ${DOCDIR}
|
||||
install -d -m 755 %buildroot/etc/logrotate.d
|
||||
install -d -m 755 %buildroot/etc/init.d
|
||||
install -m 644 _build/support-files/mysql-log-rotate %buildroot/etc/logrotate.d/mysql
|
||||
%if 0%{?prefered} > 0
|
||||
install -m 644 _buildlibmysqld/*.so* %buildroot%_libdir
|
||||
ln -s libmysqld.so.0.0.1 %buildroot%_libdir/libmysqld.so.0
|
||||
ln -s libmysqld.so.0.0.1 %buildroot%_libdir/libmysqld.so
|
||||
%endif
|
||||
install -m 660 _build/support-files/my-medium.cnf %buildroot/etc/my.cnf
|
||||
install -m 640 scripts/mysqlaccess.conf %buildroot/etc/mysqlaccess.conf
|
||||
install -m 644 "${DOCS[@]}" ${DOCDIR}
|
||||
install -m 755 %_sourcedir/rc.mysql-multi %buildroot/etc/init.d/mysql
|
||||
ln -sf ../../etc/init.d/mysql %buildroot/usr/sbin/rcmysql
|
||||
# this is used by the init script
|
||||
install -m 755 -d %buildroot/var/run/mysql
|
||||
# SuSEfirewall service description
|
||||
install -D -m 644 %_sourcedir/mysql.SuSEfirewall2 \
|
||||
%buildroot/etc/sysconfig/SuSEfirewall2.d/services/mysql
|
||||
# testsuite
|
||||
mkdir -p '%buildroot'/usr/share/mysql-test/
|
||||
install -m 755 suse-test-run '%buildroot'/usr/share/mysql-test/
|
||||
# XXX this should go under /var/..., but some tests get confused by a symlink
|
||||
# var -> ../../../var/...
|
||||
#ln -sf ../../../var/lib/mysql/mysql-test %buildroot/usr/share/mysql-test/var
|
||||
mkdir '%buildroot'/usr/share/mysql-test/var
|
||||
# Final fixes
|
||||
find '%buildroot'/usr/share/mysql-test -name '*.orig' -delete
|
||||
%if 0%{?suse_version} > 1030
|
||||
%fdupes -s '%buildroot'/usr/share/mysql-test
|
||||
%endif
|
||||
%if 0%{?fedora_version} > 8
|
||||
fdupes -q -n -r '%buildroot'/usr/share/mysql-test
|
||||
%endif
|
||||
dos2unixConversion() {
|
||||
%{__sed} -i 's/\r//g' "$1"
|
||||
}
|
||||
for i in `grep -Rl '\r' '%buildroot'/usr/share/sql-bench`; do
|
||||
dos2unixConversion "$i"
|
||||
done
|
||||
%if ! 0%{cluster} > 0
|
||||
cat mysql-ndb-storage.files mysql-ndb-management.files \
|
||||
mysql-ndb-tools.files mysql-ndb-extra.files | \
|
||||
sed 's|^%%doc\ ||' | while read tmp; do
|
||||
cd '%buildroot'
|
||||
rm -f .$tmp
|
||||
done
|
||||
%endif
|
||||
%if ! 0%{prefered} > 0
|
||||
cat libmysqlclient-devel.files | while read tmp; do
|
||||
cd '%buildroot'
|
||||
rm -f .$tmp
|
||||
done
|
||||
rm -rf '%buildroot'/%_libdir/libmysqld.*
|
||||
rm -rf '%buildroot'/%_libdir/libmysqlclient*
|
||||
rm -rf '%buildroot'/%_libdir/libmariadbclient.{a,la,so}
|
||||
rm -rf '%buildroot'/%_libdir/libmariadbclient_r*.{a,la,so}
|
||||
rm -rf '%buildroot'/%_includedir
|
||||
rm -rf '%buildroot'/%_datadir/man/*/mysql_config*
|
||||
rm -rf '%buildroot'/%_datadir/aclocal
|
||||
%endif
|
||||
sed -i 's|doc/packages/mysql|doc/packages/%{name}|g' '%buildroot'/etc/init.d/mysql
|
||||
ln -s mysqlcheck '%buildroot'%_bindir/mysqlrepair
|
||||
ln -s mysqlcheck '%buildroot'%_bindir/mysqlanalyze
|
||||
ln -s mysqlcheck '%buildroot'%_bindir/mysqloptimize
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%pre
|
||||
#-------------------------------------------------------------------------------
|
||||
/usr/sbin/groupadd -r mysql >/dev/null 2>/dev/null || :
|
||||
/usr/sbin/useradd -r -o -g mysql -u 60 -c "MySQL database admin" \
|
||||
-s /bin/false -d /var/lib/mysql mysql 2> /dev/null || :
|
||||
/usr/sbin/usermod -g mysql -s /bin/false mysql || :
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%preun
|
||||
#-------------------------------------------------------------------------------
|
||||
[ $1 = 1 ] || /usr/sbin/rcmysql stop
|
||||
%pretrans
|
||||
if [ -x /usr/sbin/rcmysql ]; then
|
||||
RESTART=""
|
||||
/usr/sbin/rcmysql status > /dev/null && RESTART="yes"
|
||||
/usr/sbin/rcmysql stop
|
||||
[ "$RESTART" ] && mkdir -p /var/run/mysql/restart
|
||||
fi
|
||||
dbfile=var/mysql/mysql/db.ISM
|
||||
olddir=var/mysql
|
||||
newdir=var/lib/mysql
|
||||
# Do the database files still belong to root (very old installation)?
|
||||
# Change ownerships
|
||||
if [ -O $dbfile ]
|
||||
then
|
||||
chown -Rv mysql:mysql var/mysql/
|
||||
fi
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%posttrans
|
||||
#-------------------------------------------------------------------------------
|
||||
%install_info --info-dir=%{_infodir} %{_infodir}/mysql.info.gz
|
||||
if [ -d /var/lib/mysql ]; then
|
||||
touch /var/lib/mysql/.run-mysql_upgrade
|
||||
chown -R mysql:mysql /var/lib/mysql
|
||||
fi
|
||||
for i in /var/lib/mysql/{.protected,.tmp}; do
|
||||
( [ -d "$i" ] && rmdir "$i" ) || :
|
||||
done
|
||||
# start mysql again if it should run
|
||||
if [ "`ls /etc/rc.d/rc*.d/S*mysql 2> /dev/null`" ] || [ -d /var/run/mysql/restart ]; then
|
||||
[ -x /usr/sbin/rcmysql ] && /usr/sbin/rcmysql start
|
||||
rmdir /var/run/mysql/restart || :
|
||||
fi
|
||||
|
||||
%if ! 0%{prefered} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%post -n libmariadbclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%postun -n libmariadbclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%post -n libmariadbclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%postun -n libmariadbclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
%endif
|
||||
%if 0%{prefered} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%post -n libmysqlclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%postun -n libmysqlclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%post -n libmysqlclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%postun -n libmysqlclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%post -n libmysqld0
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%postun -n libmysqld0
|
||||
#-------------------------------------------------------------------------------
|
||||
/sbin/ldconfig
|
||||
#-------------------------------------------------------------------------------
|
||||
%endif
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%postun
|
||||
#-------------------------------------------------------------------------------
|
||||
if [ $1 = 0 ]; then
|
||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/mysql.info.gz
|
||||
%{insserv_cleanup}
|
||||
fi
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%clean
|
||||
#-------------------------------------------------------------------------------
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && %{__rm} -rf $RPM_BUILD_ROOT
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -f mysql.files
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%config(noreplace) %attr(0640, root, mysql) /etc/my.cnf
|
||||
%config /etc/logrotate.d/mysql
|
||||
%doc %{_defaultdocdir}/%{name}
|
||||
%doc %{_infodir}/mysql.info.gz
|
||||
/etc/init.d/mysql
|
||||
/usr/sbin/rcmysql
|
||||
/usr/share/mysql/
|
||||
%dir %attr(755,mysql,mysql)/var/run/mysql
|
||||
%dir %{_libdir}/mysql
|
||||
%{_libdir}/mysql/mysqld.sym
|
||||
%config /etc/sysconfig/SuSEfirewall2.d/services/mysql
|
||||
%dir %_libdir/mysql/plugin
|
||||
%_libdir/mysql/plugin/*.so
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files client -f mysql-client.files
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%config /etc/mysqlaccess.conf
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%if ! 0%{prefered} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmariadbclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libmariadbclient.so.*
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmariadbclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libmariadbclient_r.so.*
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%endif
|
||||
%if 0%{prefered} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmysqlclient-devel -f libmysqlclient-devel.files
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
/usr/include/mysql
|
||||
%{_libdir}/libmysqlclient.so
|
||||
%{_libdir}/libmysqlclient_r.so
|
||||
/usr/share/aclocal/mysql.m4
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmysqld-devel
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-,root,root)
|
||||
%_libdir/libmysqld.a
|
||||
%_libdir/libmysqld.so
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmysqld0
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-,root,root)
|
||||
%_libdir/libmysqld.so.*
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmysqlclient16
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libmysqlclient.so.*
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files -n libmysqlclient_r16
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/libmysqlclient_r.so.*
|
||||
#-------------------------------------------------------------------------------
|
||||
%endif
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files bench -f mysql-bench.files
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
/usr/share/sql-bench
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files debug
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
/usr/sbin/mysqld-debug
|
||||
%{_libdir}/mysql/mysqld-debug.sym
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files test -f mysql-test.files
|
||||
#-------------------------------------------------------------------------------
|
||||
%defattr(-, root, root)
|
||||
%{_bindir}/my_safe_process
|
||||
%_mandir/man1/mysql-test-run.pl.1*
|
||||
%_mandir/man1/mysql-stress-test.pl.1*
|
||||
/usr/share/mysql-test/valgrind.supp
|
||||
%dir %attr(755, root, root)/usr/share/mysql-test
|
||||
/usr/share/mysql-test/[^v]*
|
||||
%dir %attr(755, mysql, mysql) /usr/share/mysql-test/var
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files tools -f mysql-tools.files
|
||||
%defattr(-, root, root)
|
||||
%_bindir/mysqlrepair
|
||||
%_bindir/mysqlanalyze
|
||||
%_bindir/mysqloptimize
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%if 0%{cluster} > 0
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files ndb-storage -f mysql-ndb-storage.files
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files ndb-management -f mysql-ndb-management.files
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files ndb-tools -f mysql-ndb-tools.files
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%files ndb-extra -f mysql-ndb-extra.files
|
||||
#-------------------------------------------------------------------------------
|
||||
%endif
|
||||
|
||||
%changelog
|
24
mysql-5.1.31-shebang.patch
Normal file
24
mysql-5.1.31-shebang.patch
Normal file
@ -0,0 +1,24 @@
|
||||
diff -Naru mysql-5.1.31-bak/mysql-test/t/long_tmpdir-master.sh mysql-5.1.31/mysql-test/t/long_tmpdir-master.sh
|
||||
--- mysql-5.1.31-bak/mysql-test/t/long_tmpdir-master.sh 2009-02-23 17:18:48.000000000 +0100
|
||||
+++ mysql-5.1.31/mysql-test/t/long_tmpdir-master.sh 2009-02-24 17:57:42.000000000 +0100
|
||||
@@ -1,3 +1,4 @@
|
||||
+#!/bin/sh
|
||||
d="$MYSQLTEST_VARDIR/tmp/long_temporary_directory_path_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789"
|
||||
test -d "$d" || mkdir "$d"
|
||||
rm -f "$d"/*
|
||||
diff -Naru mysql-5.1.31-bak/mysql-test/t/lowercase_mixed_tmpdir-master.sh mysql-5.1.31/mysql-test/t/lowercase_mixed_tmpdir-master.sh
|
||||
--- mysql-5.1.31-bak/mysql-test/t/lowercase_mixed_tmpdir-master.sh 2009-02-23 17:18:48.000000000 +0100
|
||||
+++ mysql-5.1.31/mysql-test/t/lowercase_mixed_tmpdir-master.sh 2009-02-24 17:58:12.000000000 +0100
|
||||
@@ -1,3 +1,4 @@
|
||||
+#!/bin/sh
|
||||
# This test requires a non-lowercase tmpdir directory on a case-sensitive
|
||||
# filesystem.
|
||||
|
||||
diff -Naru mysql-5.1.31-bak/sql-bench/graph-compare-results.sh mysql-5.1.31/sql-bench/graph-compare-results.sh
|
||||
--- mysql-5.1.31-bak/sql-bench/graph-compare-results.sh 2009-02-23 17:18:49.000000000 +0100
|
||||
+++ mysql-5.1.31/sql-bench/graph-compare-results.sh 2009-02-24 18:00:16.000000000 +0100
|
||||
@@ -1,3 +1,4 @@
|
||||
+#/usr/bin/perl
|
||||
####
|
||||
#### Hello ... this is a heavily hacked script by Luuk
|
||||
#### instead of printing the result it makes a nice gif
|
20
mysql-5.1.33-safe-process-in-bin.patch
Normal file
20
mysql-5.1.33-safe-process-in-bin.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- mysql-test/lib/My/SafeProcess.pm 2009-04-03 15:14:38.000000000 +0200
|
||||
+++ mysql-test/lib/My/SafeProcess.pm 2009-03-13 22:49:26.000000000 +0100
|
||||
@@ -86,7 +86,7 @@
|
||||
my $safe_kill;
|
||||
if (IS_WIN32PERL or IS_CYGWIN){
|
||||
# Use my_safe_process.exe
|
||||
+ my $exe= my_find_bin(".", ["../../bin","lib/My/SafeProcess", "My/SafeProcess"],
|
||||
- my $exe= my_find_bin(".", ["lib/My/SafeProcess", "My/SafeProcess"],
|
||||
"my_safe_process");
|
||||
push(@safe_process_cmd, $exe);
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
else
|
||||
{
|
||||
# Use my_safe_process
|
||||
+ my $exe= my_find_bin(".", ["../../bin", "lib/My/SafeProcess", "My/SafeProcess"],
|
||||
- my $exe= my_find_bin(".", ["lib/My/SafeProcess", "My/SafeProcess"],
|
||||
"my_safe_process");
|
||||
push(@safe_process_cmd, $exe);
|
||||
}
|
20
mysql-5.1.33-scripts-paths.patch
Normal file
20
mysql-5.1.33-scripts-paths.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- scripts/Makefile.am 2009-04-02 18:29:00.292563355 +0200
|
||||
+++ scripts/Makefile.am 2009-04-02 18:21:50.462559739 +0200
|
||||
@@ -110,7 +110,7 @@
|
||||
mysql_fix_privilege_tables.sql: mysql_system_tables.sql \
|
||||
mysql_system_tables_fix.sql
|
||||
@echo "Building $@";
|
||||
- @cat mysql_system_tables.sql mysql_system_tables_fix.sql > $@
|
||||
+ @cat $(top_srcdir)/scripts/mysql_system_tables.sql $(top_srcdir)/scripts/mysql_system_tables_fix.sql > $@
|
||||
|
||||
#
|
||||
# Build mysql_fix_privilege_tables_sql.c from
|
||||
@@ -123,7 +123,7 @@
|
||||
sleep 2
|
||||
$(top_builddir)/scripts/comp_sql$(EXEEXT) \
|
||||
mysql_fix_privilege_tables \
|
||||
- $(top_srcdir)/scripts/mysql_fix_privilege_tables.sql $@
|
||||
+ $(top_builddir)/scripts/mysql_fix_privilege_tables.sql $@
|
||||
|
||||
|
||||
SUFFIXES = .sh
|
11
mysql-5.1.33-ssl-lib64-macro.patch
Normal file
11
mysql-5.1.33-ssl-lib64-macro.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- config/ac-macros/ssl.m4 2009-04-10 14:05:07.000000000 +0200
|
||||
+++ config/ac-macros/ssl.m4 2009-04-10 14:15:15.000000000 +0200
|
||||
@@ -102,7 +102,7 @@
|
||||
#
|
||||
# Try to link with openSSL libs in <location>
|
||||
#
|
||||
- openssl_libs="-L$location/lib/ -lssl -lcrypto"
|
||||
+ openssl_libs="-L$location/lib -L$location/lib64 -lssl -lcrypto"
|
||||
MYSQL_CHECK_SSL_DIR([$openssl_includes], [$openssl_libs])
|
||||
|
||||
if test "$mysql_ssl_found" == "no"
|
79
mysql-5.1.35-test-utf8.patch
Normal file
79
mysql-5.1.35-test-utf8.patch
Normal file
@ -0,0 +1,79 @@
|
||||
Index: mysql-test/r/information_schema.result
|
||||
===================================================================
|
||||
--- mysql-test/r/information_schema.result.orig
|
||||
+++ mysql-test/r/information_schema.result
|
||||
@@ -9,7 +9,7 @@ create user mysqltest_3@localhost;
|
||||
create user mysqltest_3;
|
||||
select * from information_schema.SCHEMATA where schema_name > 'm';
|
||||
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
|
||||
-NULL mtr latin1 latin1_swedish_ci NULL
|
||||
+NULL mtr utf8 utf8_unicode_ci NULL
|
||||
NULL mysql latin1 latin1_swedish_ci NULL
|
||||
NULL test latin1 latin1_swedish_ci NULL
|
||||
select schema_name from information_schema.schemata;
|
||||
Index: mysql-test/r/mysql_comments.result
|
||||
===================================================================
|
||||
--- mysql-test/r/mysql_comments.result.orig
|
||||
+++ mysql-test/r/mysql_comments.result
|
||||
@@ -13,23 +13,23 @@ drop trigger if exists t1_bi;
|
||||
foofct("call 1")
|
||||
call 1
|
||||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||
-foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nreturn\n\n\n\nx latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nreturn\n\n\n\nx utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
foofct("call 2")
|
||||
call 2
|
||||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||
-foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nbegin\n \n \n \n\n \n\n \n return x;\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nbegin\n \n \n \n\n \n\n \n return x;\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
-empty CREATE DEFINER=`root`@`localhost` PROCEDURE `empty`()\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+empty CREATE DEFINER=`root`@`localhost` PROCEDURE `empty`()\nbegin\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
id data
|
||||
foo 42
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
-foosp CREATE DEFINER=`root`@`localhost` PROCEDURE `foosp`()\ninsert into test.t1\n\n\n\n\n \n\n \n values ("foo", 42) latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+foosp CREATE DEFINER=`root`@`localhost` PROCEDURE `foosp`()\ninsert into test.t1\n\n\n\n\n \n\n \n values ("foo", 42) utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
-nicesp CREATE DEFINER=`root`@`localhost` PROCEDURE `nicesp`(a int)\nbegin\n \n declare b int;\n declare c float;\n\n \n \n\n \nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+nicesp CREATE DEFINER=`root`@`localhost` PROCEDURE `nicesp`(a int)\nbegin\n \n declare b int;\n declare c float;\n\n \n \n\n \nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
|
||||
-t1_empty CREATE DEFINER=`root`@`localhost` trigger t1_empty after delete on t1\nfor each row\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+t1_empty CREATE DEFINER=`root`@`localhost` trigger t1_empty after delete on t1\nfor each row\nbegin\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
|
||||
-t1_bi CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1\nfor each row\nbegin\n\n\n\n \n declare b int;\n declare c float;\n\n \n \n\n \n set NEW.data := 12;\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+t1_bi CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1\nfor each row\nbegin\n\n\n\n \n declare b int;\n declare c float;\n\n \n \n\n \n set NEW.data := 12;\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
id data
|
||||
trig 12
|
||||
"Pass 2 : --enable-comments"
|
||||
@@ -40,23 +40,23 @@ trig 12
|
||||
foofct("call 1")
|
||||
call 1
|
||||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||
-foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nreturn\n-- comment 1a\n# comment 1b\n/* comment 1c */\nx # after body, on same line latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nreturn\n-- comment 1a\n# comment 1b\n/* comment 1c */\nx # after body, on same line utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
foofct("call 2")
|
||||
call 2
|
||||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||
-foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nbegin\n -- comment 1a\n # comment 1b\n /*\n comment 1c\n */\n\n -- empty line below\n\n -- empty line above\n return x;\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nbegin\n -- comment 1a\n # comment 1b\n /*\n comment 1c\n */\n\n -- empty line below\n\n -- empty line above\n return x;\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
-empty CREATE DEFINER=`root`@`localhost` PROCEDURE `empty`()\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+empty CREATE DEFINER=`root`@`localhost` PROCEDURE `empty`()\nbegin\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
id data
|
||||
foo 42
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
-foosp CREATE DEFINER=`root`@`localhost` PROCEDURE `foosp`()\ninsert into test.t1\n## These comments are part of the procedure body, and should be kept.\n# Comment 2a\n-- Comment 2b\n/* Comment 2c */\n -- empty line below\n\n -- empty line above\n values ("foo", 42) # comment 3, still part of the body latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+foosp CREATE DEFINER=`root`@`localhost` PROCEDURE `foosp`()\ninsert into test.t1\n## These comments are part of the procedure body, and should be kept.\n# Comment 2a\n-- Comment 2b\n/* Comment 2c */\n -- empty line below\n\n -- empty line above\n values ("foo", 42) # comment 3, still part of the body utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
-nicesp CREATE DEFINER=`root`@`localhost` PROCEDURE `nicesp`(a int)\nbegin\n -- declare some variables here\n declare b int;\n declare c float;\n\n -- do more stuff here\n -- commented nicely and so on\n\n -- famous last words ...\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+nicesp CREATE DEFINER=`root`@`localhost` PROCEDURE `nicesp`(a int)\nbegin\n -- declare some variables here\n declare b int;\n declare c float;\n\n -- do more stuff here\n -- commented nicely and so on\n\n -- famous last words ...\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
|
||||
-t1_empty CREATE DEFINER=`root`@`localhost` trigger t1_empty after delete on t1\nfor each row\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+t1_empty CREATE DEFINER=`root`@`localhost` trigger t1_empty after delete on t1\nfor each row\nbegin\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
|
||||
-t1_bi CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1\nfor each row\nbegin\n# comment 1a\n-- comment 1b\n/*\n comment 1c\n*/\n -- declare some variables here\n declare b int;\n declare c float;\n\n -- do more stuff here\n -- commented nicely and so on\n\n -- famous last words ...\n set NEW.data := 12;\nend latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
+t1_bi CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1\nfor each row\nbegin\n# comment 1a\n-- comment 1b\n/*\n comment 1c\n*/\n -- declare some variables here\n declare b int;\n declare c float;\n\n -- do more stuff here\n -- commented nicely and so on\n\n -- famous last words ...\n set NEW.data := 12;\nend utf8 utf8_unicode_ci latin1_swedish_ci
|
||||
id data
|
||||
trig 12
|
||||
End of 5.0 tests
|
32
mysql-5.1.35-test-variables-big.patch
Normal file
32
mysql-5.1.35-test-variables-big.patch
Normal file
@ -0,0 +1,32 @@
|
||||
Index: mysql-test/t/variables-big.test
|
||||
===================================================================
|
||||
--- mysql-test/t/variables-big.test.orig
|
||||
+++ mysql-test/t/variables-big.test
|
||||
@@ -40,22 +40,22 @@ SET SESSION transaction_prealloc_size=10
|
||||
--replace_column 1 <Id> 6 <Time>
|
||||
# Embedded server is hardcoded to show "Writing to net" as STATE.
|
||||
--replace_result "Writing to net" "NULL"
|
||||
-SHOW PROCESSLIST;
|
||||
+SHOW VARIABLES WHERE VARIABLE_NAME='transaction_prealloc_size';
|
||||
SET SESSION transaction_prealloc_size=1024*1024*1024*2;
|
||||
--replace_column 1 <Id> 6 <Time>
|
||||
--replace_result "Writing to net" "NULL"
|
||||
-SHOW PROCESSLIST;
|
||||
+SHOW VARIABLES WHERE VARIABLE_NAME='transaction_prealloc_size';
|
||||
SET SESSION transaction_prealloc_size=1024*1024*1024*3;
|
||||
--replace_column 1 <Id> 6 <Time>
|
||||
--replace_result "Writing to net" "NULL"
|
||||
-SHOW PROCESSLIST;
|
||||
+SHOW VARIABLES WHERE VARIABLE_NAME='transaction_prealloc_size';
|
||||
SET SESSION transaction_prealloc_size=1024*1024*1024*4;
|
||||
--replace_column 1 <Id> 6 <Time>
|
||||
--replace_result "Writing to net" "NULL"
|
||||
-SHOW PROCESSLIST;
|
||||
+SHOW VARIABLES WHERE VARIABLE_NAME='transaction_prealloc_size';
|
||||
SET SESSION transaction_prealloc_size=1024*1024*1024*5;
|
||||
--replace_column 1 <Id> 6 <Time>
|
||||
--replace_result "Writing to net" "NULL"
|
||||
-SHOW PROCESSLIST;
|
||||
+SHOW VARIABLES WHERE VARIABLE_NAME='transaction_prealloc_size';
|
||||
--enable_warnings
|
||||
|
40
mysql-5.1.36-bmove512.patch
Normal file
40
mysql-5.1.36-bmove512.patch
Normal file
@ -0,0 +1,40 @@
|
||||
Index: mysys/mf_keycache.c
|
||||
===================================================================
|
||||
--- mysys/mf_keycache.c.orig
|
||||
+++ mysys/mf_keycache.c
|
||||
@@ -2646,10 +2646,7 @@ uchar *key_cache_read(KEY_CACHE *keycach
|
||||
#endif
|
||||
|
||||
/* Copy data from the cache buffer */
|
||||
- if (!(read_length & 511))
|
||||
- bmove512(buff, block->buffer+offset, read_length);
|
||||
- else
|
||||
- memcpy(buff, block->buffer+offset, (size_t) read_length);
|
||||
+ memcpy(buff, block->buffer+offset, (size_t) read_length);
|
||||
|
||||
#if !defined(SERIALIZED_READ_FROM_CACHE)
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
@@ -2857,10 +2854,7 @@ int key_cache_insert(KEY_CACHE *keycache
|
||||
#endif
|
||||
|
||||
/* Copy data from buff */
|
||||
- if (!(read_length & 511))
|
||||
- bmove512(block->buffer+offset, buff, read_length);
|
||||
- else
|
||||
- memcpy(block->buffer+offset, buff, (size_t) read_length);
|
||||
+ memcpy(block->buffer+offset, buff, (size_t) read_length);
|
||||
|
||||
#if !defined(SERIALIZED_READ_FROM_CACHE)
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
@@ -3164,10 +3158,7 @@ int key_cache_write(KEY_CACHE *keycache,
|
||||
#if !defined(SERIALIZED_READ_FROM_CACHE)
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
#endif
|
||||
- if (!(read_length & 511))
|
||||
- bmove512(block->buffer+offset, buff, read_length);
|
||||
- else
|
||||
- memcpy(block->buffer+offset, buff, (size_t) read_length);
|
||||
+ memcpy(block->buffer+offset, buff, (size_t) read_length);
|
||||
|
||||
#if !defined(SERIALIZED_READ_FROM_CACHE)
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
30
mysql-5.1.36-hotcopy.patch
Normal file
30
mysql-5.1.36-hotcopy.patch
Normal file
@ -0,0 +1,30 @@
|
||||
=== modified file 'scripts/mysqlhotcopy.sh'
|
||||
--- scripts/mysqlhotcopy.sh 2008-03-07 20:45:40 +0000
|
||||
+++ scripts/mysqlhotcopy.sh 2009-03-12 13:06:42 +0000
|
||||
@@ -777,7 +777,24 @@ sub get_list_of_tables {
|
||||
} || [];
|
||||
warn "Unable to retrieve list of tables in $db: $@" if $@;
|
||||
|
||||
- return (map { $_->[0] } @$tables);
|
||||
+ my @ignore_tables = ();
|
||||
+
|
||||
+ # Ignore tables for the mysql database
|
||||
+ if ($db eq 'mysql') {
|
||||
+ @ignore_tables = qw(general_log slow_log schema apply_status);
|
||||
+ }
|
||||
+
|
||||
+ my @res = ();
|
||||
+ if ($#ignore_tables > 1) {
|
||||
+ my @tmp = (map { $_->[0] } @$tables);
|
||||
+ for my $t (@tmp) {
|
||||
+ push(@res, $t) if not exists { map { $_=>1 } @ignore_tables }->{$t};
|
||||
+ }
|
||||
+ } else {
|
||||
+ @res = (map { $_->[0] } @$tables);
|
||||
+ }
|
||||
+
|
||||
+ return @res;
|
||||
}
|
||||
|
||||
sub quote_names {
|
||||
|
38
mysql-5.1.42-myslq-test.patch
Normal file
38
mysql-5.1.42-myslq-test.patch
Normal file
@ -0,0 +1,38 @@
|
||||
Index: mysql-test/Makefile.am
|
||||
===================================================================
|
||||
--- mysql-test/Makefile.am.orig
|
||||
+++ mysql-test/Makefile.am
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
-testroot = $(prefix)
|
||||
+testroot = $(datadir)
|
||||
testdir = $(testroot)/mysql-test
|
||||
|
||||
test_SCRIPTS = mtr \
|
||||
Index: mysql-test/lib/My/SafeProcess/Makefile.am
|
||||
===================================================================
|
||||
--- mysql-test/lib/My/SafeProcess/Makefile.am.orig
|
||||
+++ mysql-test/lib/My/SafeProcess/Makefile.am
|
||||
@@ -13,7 +13,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
-testroot = $(prefix)
|
||||
+testroot = $(datadir)
|
||||
safedir = $(testroot)/mysql-test/lib/My/SafeProcess
|
||||
#nobase_bin_PROGRAMS = ...
|
||||
safe_PROGRAMS = my_safe_process
|
||||
Index: mysql-test/lib/mtr_cases.pm
|
||||
===================================================================
|
||||
--- mysql-test/lib/mtr_cases.pm.orig
|
||||
+++ mysql-test/lib/mtr_cases.pm
|
||||
@@ -254,6 +254,7 @@ sub collect_one_suite($)
|
||||
"share/mysql/mysql-test/suite",
|
||||
"share/mysql/mysql-test",
|
||||
# Look in storage engine specific suite dirs
|
||||
+ "share/mysql/storage/*/mysql-test-suites",
|
||||
"storage/*/mysql-test-suites"
|
||||
],
|
||||
[$suite]);
|
72
mysql-cnf.patch
Normal file
72
mysql-cnf.patch
Normal file
@ -0,0 +1,72 @@
|
||||
Index: support-files/my-huge.cnf.sh
|
||||
===================================================================
|
||||
--- support-files/my-huge.cnf.sh.orig
|
||||
+++ support-files/my-huge.cnf.sh
|
||||
@@ -131,6 +131,10 @@ server-id = 1
|
||||
#innodb_flush_log_at_trx_commit = 1
|
||||
#innodb_lock_wait_timeout = 50
|
||||
|
||||
+# The safe_mysqld script
|
||||
+[safe_mysqld]
|
||||
+log-error=/var/log/mysql/mysqld.log
|
||||
+
|
||||
[mysqldump]
|
||||
quick
|
||||
max_allowed_packet = 16M
|
||||
Index: support-files/my-large.cnf.sh
|
||||
===================================================================
|
||||
--- support-files/my-large.cnf.sh.orig
|
||||
+++ support-files/my-large.cnf.sh
|
||||
@@ -131,6 +131,10 @@ server-id = 1
|
||||
#innodb_flush_log_at_trx_commit = 1
|
||||
#innodb_lock_wait_timeout = 50
|
||||
|
||||
+# The safe_mysqld script
|
||||
+[safe_mysqld]
|
||||
+log-error=/var/log/mysql/mysqld.log
|
||||
+
|
||||
[mysqldump]
|
||||
quick
|
||||
max_allowed_packet = 16M
|
||||
Index: support-files/my-medium.cnf.sh
|
||||
===================================================================
|
||||
--- support-files/my-medium.cnf.sh.orig
|
||||
+++ support-files/my-medium.cnf.sh
|
||||
@@ -26,6 +26,8 @@ socket = @MYSQL_UNIX_ADDR@
|
||||
[mysqld]
|
||||
port = @MYSQL_TCP_PORT@
|
||||
socket = @MYSQL_UNIX_ADDR@
|
||||
+# Change following line if you want to store your database elsewhere
|
||||
+datadir = /var/lib/mysql
|
||||
skip-locking
|
||||
key_buffer_size = 16M
|
||||
max_allowed_packet = 1M
|
||||
@@ -129,7 +131,13 @@ server-id = 1
|
||||
#innodb_flush_log_at_trx_commit = 1
|
||||
#innodb_lock_wait_timeout = 50
|
||||
|
||||
+# The safe_mysqld script
|
||||
+[safe_mysqld]
|
||||
+log-error = /var/log/mysql/mysqld.log
|
||||
+socket = @MYSQL_UNIX_ADDR@
|
||||
+
|
||||
[mysqldump]
|
||||
+socket = @MYSQL_UNIX_ADDR@
|
||||
quick
|
||||
max_allowed_packet = 16M
|
||||
|
||||
Index: support-files/my-small.cnf.sh
|
||||
===================================================================
|
||||
--- support-files/my-small.cnf.sh.orig
|
||||
+++ support-files/my-small.cnf.sh
|
||||
@@ -65,6 +65,10 @@ server-id = 1
|
||||
#innodb_flush_log_at_trx_commit = 1
|
||||
#innodb_lock_wait_timeout = 50
|
||||
|
||||
+# The safe_mysqld script
|
||||
+[safe_mysqld]
|
||||
+log-error = /var/log/mysql/mysqld.log
|
||||
+
|
||||
[mysqldump]
|
||||
quick
|
||||
max_allowed_packet = 16M
|
63
mysql-enable-plugins.patch
Normal file
63
mysql-enable-plugins.patch
Normal file
@ -0,0 +1,63 @@
|
||||
diff -Naru scripts/mysql_fix_privilege_tables.sql scripts/mysql_fix_privilege_tables.sql
|
||||
--- scripts/mysql_fix_privilege_tables.sql 2008-11-14 18:03:14.000000000 +0100
|
||||
+++ scripts/mysql_fix_privilege_tables.sql 2009-01-09 18:57:47.000000000 +0100
|
||||
@@ -24,6 +24,17 @@
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin ( name char(64) binary DEFAULT '' NOT NULL, dl char(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='MySQL plugins';
|
||||
|
||||
+-- Remember for later if plugin table already existed
|
||||
+set @had_plugin_table= @@warning_count != 0;
|
||||
+
|
||||
+-- Install plugins by default if they didn't existed
|
||||
+CREATE TEMPORARY TABLE tmp_plugin LIKE plugin;
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('ARCHIVE','ha_archive.so');
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('FEDERATED','ha_federated.so');
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('BLACKHOLE','ha_blackhole.so');
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('EXAMPLE','ha_example.so');
|
||||
+INSERT INTO plugin SELECT * FROM tmp_plugin WHERE @had_plugin_table=0;
|
||||
+DROP TABLE tmp_plugin;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table';
|
||||
|
||||
diff -Naru scripts/mysql_fix_privilege_tables_sql.c scripts/mysql_fix_privilege_tables_sql.c
|
||||
--- scripts/mysql_fix_privilege_tables_sql.c 2008-11-14 18:03:19.000000000 +0100
|
||||
+++ scripts/mysql_fix_privilege_tables_sql.c 2009-01-09 19:02:35.000000000 +0100
|
||||
@@ -36,6 +36,17 @@
|
||||
"\n "
|
||||
"CREATE TABLE IF NOT EXISTS plugin ( name char(64) binary DEFAULT '' NOT NULL, dl char(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='MySQL plugins';\n "
|
||||
"\n "
|
||||
+"-- Remember for later if plugin table already existed\n "
|
||||
+"set @had_plugin_table= @@warning_count != 0;\n "
|
||||
+"\n "
|
||||
+"-- Install plugins by default if they didn't existed\n "
|
||||
+"CREATE TEMPORARY TABLE tmp_plugin LIKE plugin;\n "
|
||||
+"INSERT INTO tmp_plugin (name,dl) VALUES ('ARCHIVE','ha_archive.so');\n "
|
||||
+"INSERT INTO tmp_plugin (name,dl) VALUES ('FEDERATED','ha_federated.so');\n "
|
||||
+"INSERT INTO tmp_plugin (name,dl) VALUES ('BLACKHOLE','ha_blackhole.so');\n "
|
||||
+"INSERT INTO tmp_plugin (name,dl) VALUES ('EXAMPLE','ha_example.so');\n "
|
||||
+"INSERT INTO plugin SELECT * FROM tmp_plugin WHERE @had_plugin_table=0;\n "
|
||||
+"DROP TABLE tmp_plugin;\n "
|
||||
"\n "
|
||||
"CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table';\n "
|
||||
"\n "
|
||||
diff -Naru scripts/mysql_system_tables.sql scripts/mysql_system_tables.sql
|
||||
--- scripts/mysql_system_tables.sql 2008-11-14 17:37:05.000000000 +0100
|
||||
+++ scripts/mysql_system_tables.sql 2009-01-09 19:00:35.000000000 +0100
|
||||
@@ -24,6 +24,17 @@
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plugin ( name char(64) binary DEFAULT '' NOT NULL, dl char(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='MySQL plugins';
|
||||
|
||||
+-- Remember for later if plugin table already existed
|
||||
+set @had_plugin_table= @@warning_count != 0;
|
||||
+
|
||||
+-- Install plugins by default if they didn't existed
|
||||
+CREATE TEMPORARY TABLE tmp_plugin LIKE plugin;
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('ARCHIVE','ha_archive.so');
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('FEDERATED','ha_federated.so');
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('BLACKHOLE','ha_blackhole.so');
|
||||
+INSERT INTO tmp_plugin (name,dl) VALUES ('EXAMPLE','ha_example.so');
|
||||
+INSERT INTO plugin SELECT * FROM tmp_plugin WHERE @had_plugin_table=0;
|
||||
+DROP TABLE tmp_plugin;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table';
|
||||
|
148
mysql-group.patch
Normal file
148
mysql-group.patch
Normal file
@ -0,0 +1,148 @@
|
||||
Index: configure.in
|
||||
===================================================================
|
||||
--- configure.in.orig
|
||||
+++ configure.in
|
||||
@@ -772,6 +772,14 @@ AC_ARG_WITH(mysqld-user,
|
||||
[ MYSQLD_USER=mysql ]
|
||||
)
|
||||
AC_SUBST(MYSQLD_USER)
|
||||
+AC_ARG_WITH(mysqld-group,
|
||||
+ [ --with-mysqld-group=groupname
|
||||
+ What group the mysqld daemon shall be run as.],
|
||||
+ [ MYSQLD_GROUP=$withval ],
|
||||
+ [ MYSQLD_GROUP=mysql ]
|
||||
+ )
|
||||
+AC_SUBST(MYSQLD_GROUP)
|
||||
+
|
||||
|
||||
# If we should allow LOAD DATA LOCAL
|
||||
AC_MSG_CHECKING(If we should should enable LOAD DATA LOCAL by default)
|
||||
Index: scripts/Makefile.am
|
||||
===================================================================
|
||||
--- scripts/Makefile.am.orig
|
||||
+++ scripts/Makefile.am
|
||||
@@ -185,6 +185,7 @@ SUFFIXES = .sh
|
||||
-e 's!@''TARGET_LINUX''@!@TARGET_LINUX@!' \
|
||||
-e "s!@""CONF_COMMAND""@!@CONF_COMMAND@!" \
|
||||
-e 's!@''MYSQLD_USER''@!@MYSQLD_USER@!' \
|
||||
+ -e 's!@''MYSQLD_GROUP''@!@MYSQLD_GROUP@!' \
|
||||
-e 's!@''STATIC_NSS_FLAGS''@!@STATIC_NSS_FLAGS@!' \
|
||||
-e 's!@''NON_THREADED_LIBS''@!@NON_THREADED_LIBS@!' \
|
||||
-e 's!@''ZLIB_DEPS''@!@ZLIB_DEPS@!' \
|
||||
Index: scripts/mysqld_safe.sh
|
||||
===================================================================
|
||||
--- scripts/mysqld_safe.sh.orig
|
||||
+++ scripts/mysqld_safe.sh
|
||||
@@ -19,6 +19,7 @@ logging=init
|
||||
want_syslog=0
|
||||
syslog_tag=
|
||||
user='@MYSQLD_USER@'
|
||||
+group='@MYSQLD_GROUP@'
|
||||
pid_file=
|
||||
err_log=
|
||||
|
||||
@@ -162,6 +163,7 @@ parse_arguments() {
|
||||
--datadir=*) DATADIR="$val" ;;
|
||||
--pid-file=*) pid_file="$val" ;;
|
||||
--user=*) user="$val"; SET_USER=1 ;;
|
||||
+ --group=*) group="$val"; SET_USER=1 ;;
|
||||
|
||||
# these might have been set in a [mysqld_safe] section of my.cnf
|
||||
# they are added to mysqld command line to override settings from my.cnf
|
||||
@@ -388,11 +390,17 @@ then
|
||||
if test "$user" != "root" -o $SET_USER = 1
|
||||
then
|
||||
USER_OPTION="--user=$user"
|
||||
+ GROUP_OPTION="--group=$group"
|
||||
fi
|
||||
# Change the err log to the right user, if it is in use
|
||||
if [ $want_syslog -eq 0 ]; then
|
||||
touch "$err_log"
|
||||
- chown $user "$err_log"
|
||||
+ if [ "$user" -a "$group" ]; then
|
||||
+ chown $user:$group $err_log
|
||||
+ else
|
||||
+ [ "$user" ] && chown $user $err_log
|
||||
+ [ "$group" ] && chgrp $group $err_log
|
||||
+ fi
|
||||
fi
|
||||
if test -n "$open_files"
|
||||
then
|
||||
@@ -407,7 +415,12 @@ mysql_unix_port_dir=`dirname $safe_mysql
|
||||
if [ ! -d $mysql_unix_port_dir ]
|
||||
then
|
||||
mkdir $mysql_unix_port_dir
|
||||
- chown $user $mysql_unix_port_dir
|
||||
+ if [ "$user" -a "$group" ]; then
|
||||
+ chown $user:$group $mysql_unix_port_dir
|
||||
+ else
|
||||
+ [ "$user" ] && chown $user $mysql_unix_port_dir
|
||||
+ [ "$group" ] && chgrp $group $mysql_unix_port_dir
|
||||
+ fi
|
||||
chmod 755 $mysql_unix_port_dir
|
||||
fi
|
||||
|
||||
Index: scripts/mysql_install_db.sh
|
||||
===================================================================
|
||||
--- scripts/mysql_install_db.sh.orig
|
||||
+++ scripts/mysql_install_db.sh
|
||||
@@ -28,6 +28,7 @@ args=""
|
||||
defaults=""
|
||||
mysqld_opt=""
|
||||
user=""
|
||||
+group=""
|
||||
|
||||
force=0
|
||||
in_rpm=0
|
||||
@@ -63,6 +64,11 @@ Usage: $0 [OPTIONS]
|
||||
user. You must be root to use this option. By default
|
||||
mysqld runs using your current login name and files and
|
||||
directories that it creates will be owned by you.
|
||||
+ --group=group_name The login group to use for running mysqld. Files and
|
||||
+ directories created by mysqld will be owned by this
|
||||
+ group. You must be root to use this option. By default
|
||||
+ mysqld runs using your current group and files and
|
||||
+ directories that it creates will be owned by you.
|
||||
|
||||
All other options are passed to the mysqld program
|
||||
|
||||
@@ -103,11 +109,11 @@ parse_arguments()
|
||||
--builddir=*) builddir=`parse_arg "$arg"` ;;
|
||||
--srcdir=*) srcdir=`parse_arg "$arg"` ;;
|
||||
--ldata=*|--datadir=*) ldata=`parse_arg "$arg"` ;;
|
||||
- --user=*)
|
||||
# Note that the user will be passed to mysqld so that it runs
|
||||
# as 'user' (crucial e.g. if log-bin=/some_other_path/
|
||||
# where a chown of datadir won't help)
|
||||
- user=`parse_arg "$arg"` ;;
|
||||
+ --user=*) user=`parse_arg "$arg"` ;;
|
||||
+ --group=*) group=`parse_arg "$arg"` ;;
|
||||
--skip-name-resolve) ip_only=1 ;;
|
||||
--verbose) verbose=1 ;; # Obsolete
|
||||
--rpm) in_rpm=1 ;;
|
||||
@@ -360,7 +366,12 @@ do
|
||||
fi
|
||||
if test -w / -a ! -z "$user"
|
||||
then
|
||||
- chown $user $dir
|
||||
+ if test -z "$group"
|
||||
+ then
|
||||
+ chown $user $dir
|
||||
+ else
|
||||
+ chown $user:$group $dir
|
||||
+ fi
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -369,6 +380,11 @@ then
|
||||
args="$args --user=$user"
|
||||
fi
|
||||
|
||||
+if test -n "$group"
|
||||
+then
|
||||
+ args="$args --group=$group"
|
||||
+fi
|
||||
+
|
||||
# When doing a "cross bootstrap" install, no reference to the current
|
||||
# host should be added to the system tables. So we filter out any
|
||||
# lines which contain the current host name.
|
33
mysql-install_db-quiet.patch
Normal file
33
mysql-install_db-quiet.patch
Normal file
@ -0,0 +1,33 @@
|
||||
Index: scripts/mysql_install_db.sh
|
||||
===================================================================
|
||||
--- scripts/mysql_install_db.sh.orig
|
||||
+++ scripts/mysql_install_db.sh
|
||||
@@ -456,9 +456,11 @@ fi
|
||||
# the screen.
|
||||
if test "$cross_bootstrap" -eq 0 && test -z "$srcdir"
|
||||
then
|
||||
- s_echo
|
||||
- s_echo "To start mysqld at boot time you have to copy"
|
||||
- s_echo "support-files/mysql.server to the right place for your system"
|
||||
+# SuSE Installs init script ;-)
|
||||
+#
|
||||
+# s_echo
|
||||
+# s_echo "To start mysqld at boot time you have to copy"
|
||||
+# s_echo "support-files/mysql.server to the right place for your system"
|
||||
|
||||
echo
|
||||
echo "PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !"
|
||||
@@ -480,10 +482,10 @@ then
|
||||
then
|
||||
echo
|
||||
echo "You can start the MariaDB daemon with:"
|
||||
- echo "cd $basedir ; $bindir/mysqld_safe &"
|
||||
+ echo "rcmysql start"
|
||||
echo
|
||||
- echo "You can test the MariaDB daemon with mysql-test-run.pl"
|
||||
- echo "cd $basedir/mysql-test ; perl mysql-test-run.pl"
|
||||
+ echo "You can test the MariaDB daemon with mariadb-test package"
|
||||
+# echo "cd $basedir/mysql-test ; perl mysql-test-run.pl"
|
||||
fi
|
||||
|
||||
echo
|
28
mysql-logrotate.patch
Normal file
28
mysql-logrotate.patch
Normal file
@ -0,0 +1,28 @@
|
||||
Index: support-files/mysql-log-rotate.sh
|
||||
===================================================================
|
||||
--- support-files/mysql-log-rotate.sh.orig
|
||||
+++ support-files/mysql-log-rotate.sh
|
||||
@@ -18,7 +18,7 @@
|
||||
# ATTENTION: This /root/.my.cnf should be readable ONLY
|
||||
# for root !
|
||||
|
||||
-@localstatedir@/mysqld.log {
|
||||
+/var/log/mysql/mysqld.log {
|
||||
# create 600 mysql mysql
|
||||
notifempty
|
||||
daily
|
||||
@@ -31,6 +31,14 @@
|
||||
@bindir@/mysqladmin ping &>/dev/null
|
||||
then
|
||||
@bindir@/mysqladmin flush-logs
|
||||
+ ret=$?
|
||||
+ if test $ret -ne 0
|
||||
+ then
|
||||
+ echo "@sysconfdir@/logrotate.d/mysql failed, probably because" >&2
|
||||
+ echo "the root acount is protected by password." >&2
|
||||
+ echo "See comments in @sysconfdir@/logrotate.d/mysql on how to fix this" >&2
|
||||
+ exit $ret
|
||||
+ fi
|
||||
fi
|
||||
endscript
|
||||
}
|
53
mysql-multi-configuration.patch
Normal file
53
mysql-multi-configuration.patch
Normal file
@ -0,0 +1,53 @@
|
||||
---
|
||||
support-files/my-medium.cnf.sh | 43 +++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 43 insertions(+)
|
||||
|
||||
--- support-files/my-medium.cnf.sh.orig
|
||||
+++ support-files/my-medium.cnf.sh
|
||||
@@ -158,3 +158,46 @@ write_buffer = 2M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
+
|
||||
+[mysqld_multi]
|
||||
+mysqld = /usr/bin/mysqld_safe
|
||||
+mysqladmin = /usr/bin/mysqladmin
|
||||
+log = /var/log/mysqld_multi.log
|
||||
+# user = multi_admin
|
||||
+# password = secret
|
||||
+
|
||||
+# If you want to use mysqld_multi uncomment 1 or more mysqld sections
|
||||
+# below or add your own ones.
|
||||
+
|
||||
+# WARNING
|
||||
+# --------
|
||||
+# If you uncomment mysqld1 than make absolutely sure, that database mysql,
|
||||
+# configured above, is not started. This may result in corrupted data!
|
||||
+# [mysqld1]
|
||||
+# port = @MYSQL_TCP_PORT@
|
||||
+# datadir = /var/lib/mysql
|
||||
+# pid-file = /var/lib/mysql/mysqld.pid
|
||||
+# socket = /var/lib/mysql/mysql.sock
|
||||
+# user = mysql
|
||||
+
|
||||
+# [mysqld2]
|
||||
+# port = 3307
|
||||
+# datadir = /var/lib/mysql-databases/mysqld2
|
||||
+# pid-file = /var/lib/mysql-databases/mysqld2/mysql.pid
|
||||
+# socket = /var/lib/mysql-databases/mysqld2/mysql.sock
|
||||
+# user = mysql
|
||||
+
|
||||
+# [mysqld3]
|
||||
+# port = 3308
|
||||
+# datadir = /var/lib/mysql-databases/mysqld3
|
||||
+# pid-file = /var/lib/mysql-databases/mysqld3/mysql.pid
|
||||
+# socket = /var/lib/mysql-databases/mysqld3/mysql.sock
|
||||
+# user = mysql
|
||||
+
|
||||
+# [mysqld6]
|
||||
+# port = 3309
|
||||
+# datadir = /var/lib/mysql-databases/mysqld6
|
||||
+# pid-file = /var/lib/mysql-databases/mysqld6/mysql.pid
|
||||
+# socket = /var/lib/mysql-databases/mysqld6/mysql.sock
|
||||
+# user = mysql
|
||||
+
|
104
mysql-plugins-avoid-version.patch
Normal file
104
mysql-plugins-avoid-version.patch
Normal file
@ -0,0 +1,104 @@
|
||||
Index: storage/archive/Makefile.am
|
||||
===================================================================
|
||||
--- storage/archive/Makefile.am.orig
|
||||
+++ storage/archive/Makefile.am
|
||||
@@ -35,7 +35,7 @@ noinst_PROGRAMS = archive_test archive_r
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_archive.la
|
||||
pkgplugin_LTLIBRARIES = @plugin_archive_shared_target@
|
||||
-ha_archive_la_LDFLAGS = -module -rpath $(pkgplugindir)
|
||||
+ha_archive_la_LDFLAGS = -module -avoid-version -rpath $(pkgplugindir)
|
||||
ha_archive_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_archive_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_archive_la_SOURCES = ha_archive.cc azio.c
|
||||
Index: storage/blackhole/Makefile.am
|
||||
===================================================================
|
||||
--- storage/blackhole/Makefile.am.orig
|
||||
+++ storage/blackhole/Makefile.am
|
||||
@@ -34,7 +34,7 @@ noinst_HEADERS = ha_blackhole.h
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_blackhole.la
|
||||
pkgplugin_LTLIBRARIES = @plugin_blackhole_shared_target@
|
||||
-ha_blackhole_la_LDFLAGS=-module -rpath $(pkgplugindir)
|
||||
+ha_blackhole_la_LDFLAGS=-module -avoid-version -rpath $(pkgplugindir)
|
||||
ha_blackhole_la_CXXFLAGS=$(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_blackhole_la_CFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_blackhole_la_SOURCES=ha_blackhole.cc
|
||||
Index: storage/csv/Makefile.am
|
||||
===================================================================
|
||||
--- storage/csv/Makefile.am.orig
|
||||
+++ storage/csv/Makefile.am
|
||||
@@ -31,7 +31,7 @@ noinst_HEADERS = ha_tina.h transparent
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_csv.la
|
||||
pkglib_LTLIBRARIES = @plugin_csv_shared_target@
|
||||
-ha_csv_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
|
||||
+ha_csv_la_LDFLAGS = -module -avoid-version -rpath $(MYSQLLIBdir)
|
||||
ha_csv_la_CXXFLAGS = $(AM_CFLAGS) -DMYSQL_PLUGIN
|
||||
ha_csv_la_SOURCES = transparent_file.cc ha_tina.cc
|
||||
|
||||
Index: storage/example/Makefile.am
|
||||
===================================================================
|
||||
--- storage/example/Makefile.am.orig
|
||||
+++ storage/example/Makefile.am
|
||||
@@ -34,7 +34,7 @@ noinst_HEADERS = ha_example.h
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_example.la
|
||||
pkgplugin_LTLIBRARIES = @plugin_example_shared_target@
|
||||
-ha_example_la_LDFLAGS = -module -rpath $(pkgplugindir)
|
||||
+ha_example_la_LDFLAGS = -module -avoid-version -rpath $(pkgplugindir)
|
||||
ha_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_example_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_example_la_SOURCES = ha_example.cc
|
||||
Index: storage/federatedx/Makefile.am
|
||||
===================================================================
|
||||
--- storage/federatedx/Makefile.am.orig
|
||||
+++ storage/federatedx/Makefile.am
|
||||
@@ -19,7 +19,7 @@ noinst_HEADERS = ha_federatedx.h federat
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_federatedx.la
|
||||
pkgplugin_LTLIBRARIES = @plugin_federated_shared_target@
|
||||
-ha_federatedx_la_LDFLAGS = -module -rpath $(pkgplugindir)
|
||||
+ha_federatedx_la_LDFLAGS = -module -avoid-version -rpath $(pkgplugindir)
|
||||
ha_federatedx_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_federatedx_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
|
||||
Index: storage/ibmdb2i/Makefile.am
|
||||
===================================================================
|
||||
--- storage/ibmdb2i/Makefile.am.orig
|
||||
+++ storage/ibmdb2i/Makefile.am
|
||||
@@ -33,7 +33,7 @@ noinst_HEADERS = ha_ibmdb2i.h db2i_colla
|
||||
EXTRA_LTLIBRARIES = ha_ibmdb2i.la
|
||||
pkgplugin_LTLIBRARIES = @plugin_ibmdb2i_shared_target@
|
||||
ha_ibmdb2i_la_LIBADD = -liconv
|
||||
-ha_ibmdb2i_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
|
||||
+ha_ibmdb2i_la_LDFLAGS = -module -avoid-version -rpath $(MYSQLLIBdir)
|
||||
ha_ibmdb2i_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_ibmdb2i_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_ibmdb2i_la_SOURCES = ha_ibmdb2i.cc db2i_ileBridge.cc db2i_conversion.cc \
|
||||
Index: storage/pbxt/src/Makefile.am
|
||||
===================================================================
|
||||
--- storage/pbxt/src/Makefile.am.orig
|
||||
+++ storage/pbxt/src/Makefile.am
|
||||
@@ -35,7 +35,7 @@ libpbxt_la_SOURCES = bsearch_xt.cc cache
|
||||
systab_xt.cc ha_xtsys.cc discover_xt.cc backup_xt.cc \
|
||||
util_xt.cc xaction_xt.cc xactlog_xt.cc lock_xt.cc locklist_xt.cc
|
||||
|
||||
-libpbxt_la_LDFLAGS = -module
|
||||
+libpbxt_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
# These are the warning Drizzle uses:
|
||||
# DRIZZLE_WARNINGS = -W -Wall -Wextra -pedantic -Wundef -Wredundant-decls -Wno-strict-aliasing -Wno-long-long -Wno-unused-parameter
|
||||
Index: storage/xtradb/Makefile.am
|
||||
===================================================================
|
||||
--- storage/xtradb/Makefile.am.orig
|
||||
+++ storage/xtradb/Makefile.am
|
||||
@@ -331,7 +331,7 @@ libinnobase_a_CFLAGS= $(AM_CFLAGS)
|
||||
EXTRA_LTLIBRARIES= ha_innodb.la
|
||||
pkgplugin_LTLIBRARIES= @plugin_innobase_shared_target@
|
||||
|
||||
-ha_innodb_la_LDFLAGS= -module -rpath $(pkgplugindir)
|
||||
+ha_innodb_la_LDFLAGS= -module -avoid-version -rpath $(pkgplugindir)
|
||||
ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
||||
ha_innodb_la_CFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
||||
ha_innodb_la_SOURCES= $(libinnobase_a_SOURCES)
|
6
mysql.SuSEfirewall2
Normal file
6
mysql.SuSEfirewall2
Normal file
@ -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"
|
||||
|
11
mysql_config.patch
Normal file
11
mysql_config.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- scripts/mysql_config.sh.orig
|
||||
+++ scripts/mysql_config.sh
|
||||
@@ -92,7 +92,7 @@ fix_path pkgincludedir include/mysql inc
|
||||
|
||||
version='@VERSION@'
|
||||
socket='@MYSQL_UNIX_ADDR@'
|
||||
-ldflags='@LDFLAGS@'
|
||||
+ldflags='@SAVE_LDFLAGS@'
|
||||
|
||||
if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then
|
||||
port=0
|
31
mysql_upgrade-exit-status.patch
Normal file
31
mysql_upgrade-exit-status.patch
Normal file
@ -0,0 +1,31 @@
|
||||
returning non-zero exit status in this case is not nice to scripts using
|
||||
mysql_upgrade (eg. our init script)
|
||||
---
|
||||
client/mysql_upgrade.c | 4 +++-
|
||||
mysql-test/t/mysql_upgrade.test | 2 +-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
--- client/mysql_upgrade.c.orig
|
||||
+++ client/mysql_upgrade.c
|
||||
@@ -758,7 +758,9 @@ int main(int argc, char **argv)
|
||||
printf("This installation of MySQL is already upgraded to %s, "
|
||||
"use --force if you still need to run mysql_upgrade\n",
|
||||
MYSQL_SERVER_VERSION);
|
||||
- die(NULL);
|
||||
+ free_used_memory();
|
||||
+ my_end(MY_CHECK_ERROR);
|
||||
+ exit(0);
|
||||
}
|
||||
|
||||
/*
|
||||
--- mysql-test/t/mysql_upgrade.test.orig
|
||||
+++ mysql-test/t/mysql_upgrade.test
|
||||
@@ -19,7 +19,7 @@ file_exists $MYSQLTEST_VARDIR/master-dat
|
||||
|
||||
--echo Run it again - should say already completed
|
||||
--replace_result $MYSQL_SERVER_VERSION VERSION
|
||||
---error 1
|
||||
+--error 0
|
||||
--exec $MYSQL_UPGRADE --skip-verbose 2>&1
|
||||
|
||||
# It should have created a file in the MySQL Servers datadir
|
176
mysqld_multi.patch
Normal file
176
mysqld_multi.patch
Normal file
@ -0,0 +1,176 @@
|
||||
---
|
||||
scripts/mysqld_multi.sh | 108 ++++++++++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 100 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: scripts/mysqld_multi.sh
|
||||
===================================================================
|
||||
--- scripts/mysqld_multi.sh.orig
|
||||
+++ scripts/mysqld_multi.sh
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
use Getopt::Long;
|
||||
use POSIX qw(strftime getcwd);
|
||||
+use File::Path qw(mkpath);
|
||||
|
||||
$|=1;
|
||||
$VER="2.16";
|
||||
@@ -123,6 +124,7 @@ sub main
|
||||
usage() if (!defined($ARGV[0]) ||
|
||||
(!($ARGV[0] =~ m/^start$/i) &&
|
||||
!($ARGV[0] =~ m/^stop$/i) &&
|
||||
+ !($ARGV[0] =~ m/^reload$/i) &&
|
||||
!($ARGV[0] =~ m/^report$/i)));
|
||||
|
||||
if (!$opt_no_log)
|
||||
@@ -136,7 +138,7 @@ sub main
|
||||
print strftime "%a %b %e %H:%M:%S %Y", localtime;
|
||||
print "\n";
|
||||
}
|
||||
- if ($ARGV[0] =~ m/^start$/i)
|
||||
+ if (($ARGV[0] =~ m/^start$/i) || ($ARGV[0] =~ m/^reload$/i))
|
||||
{
|
||||
if (!defined(($mysqld= my_which($opt_mysqld))) && $opt_verbose)
|
||||
{
|
||||
@@ -145,7 +147,11 @@ sub main
|
||||
print "This is OK, if you are using option \"mysqld=...\" in ";
|
||||
print "groups [mysqldN] separately for each.\n\n";
|
||||
}
|
||||
- start_mysqlds();
|
||||
+ if ($ARGV[0] =~ m/^start$/i) {
|
||||
+ start_mysqlds();
|
||||
+ } elsif ($ARGV[0] =~ m/^reload$/i) {
|
||||
+ reload_mysqlds();
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -301,6 +307,39 @@ sub start_mysqlds()
|
||||
$com= "$mysqld";
|
||||
for ($j = 0, $tmp= ""; defined($options[$j]); $j++)
|
||||
{
|
||||
+ if ("--datadir=" eq substr($options[$j], 0, 10)) {
|
||||
+ $datadir = $options[$j];
|
||||
+ $datadir =~ s/\-\-datadir\=//;
|
||||
+ eval { mkpath($datadir) };
|
||||
+ if ($@) {
|
||||
+ print "FATAL ERROR: Cannot create data directory $datadir: $!\n";
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ if (! -d $datadir."/mysql") {
|
||||
+ if (-w $datadir) {
|
||||
+ print "\n\nInstalling new database in $datadir\n\n";
|
||||
+ $install_cmd="@bindir@/mysql_install_db ";
|
||||
+ $install_cmd.="--user=mysql ";
|
||||
+ $install_cmd.="--datadir=$datadir";
|
||||
+ system($install_cmd);
|
||||
+ } else {
|
||||
+ print "\n";
|
||||
+ print "FATAL ERROR: Tried to create mysqld under group [$groups[$i]],\n";
|
||||
+ print "but the data directory is not writable.\n";
|
||||
+ print "data directory used: $datadir\n";
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (! -d $datadir."/mysql") {
|
||||
+ print "\n";
|
||||
+ print "FATAL ERROR: Tried to start mysqld under group [$groups[$i]],\n";
|
||||
+ print "but no data directory was found or could be created.\n";
|
||||
+ print "data directory used: $datadir\n";
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if ("--mysqladmin=" eq substr($options[$j], 0, 13))
|
||||
{
|
||||
# catch this and ignore
|
||||
@@ -365,6 +404,58 @@ sub start_mysqlds()
|
||||
}
|
||||
|
||||
####
|
||||
+#### reload multiple servers
|
||||
+####
|
||||
+
|
||||
+sub reload_mysqlds()
|
||||
+{
|
||||
+ my (@groups, $com, $tmp, $i, @options, $j);
|
||||
+
|
||||
+ if (!$opt_no_log)
|
||||
+ {
|
||||
+ w2log("\nReloading MySQL servers\n","$opt_log",0,0);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ print "\nReloading MySQL servers\n";
|
||||
+ }
|
||||
+ @groups = &find_groups($groupids);
|
||||
+ for ($i = 0; defined($groups[$i]); $i++)
|
||||
+ {
|
||||
+ $mysqld_server = $mysqld;
|
||||
+ @options = defaults_for_group($groups[$i]);
|
||||
+
|
||||
+ for ($j = 0, $tmp= ""; defined($options[$j]); $j++)
|
||||
+ {
|
||||
+ if ("--mysqladmin=" eq substr($options[$j], 0, 13))
|
||||
+ {
|
||||
+ # catch this and ignore
|
||||
+ }
|
||||
+ elsif ("--mysqld=" eq substr($options[$j], 0, 9))
|
||||
+ {
|
||||
+ $options[$j] =~ s/\-\-mysqld\=//;
|
||||
+ $mysqld_server = $options[$j];
|
||||
+ }
|
||||
+ elsif ("--pid-file=" eq substr($options[$j], 0, 11))
|
||||
+ {
|
||||
+ $options[$j] =~ s/\-\-pid-file\=//;
|
||||
+ $pid_file = $options[$j];
|
||||
+ }
|
||||
+ }
|
||||
+ $com = "killproc -p $pid_file -HUP $mysqld_server";
|
||||
+ system($com);
|
||||
+
|
||||
+ $com = "touch $pid_file";
|
||||
+ system($com);
|
||||
+ }
|
||||
+ if (!$i && !$opt_no_log)
|
||||
+ {
|
||||
+ w2log("No MySQL servers to be reloaded (check your GNRs)",
|
||||
+ "$opt_log", 0, 0);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+###
|
||||
#### stop multiple servers
|
||||
####
|
||||
|
||||
@@ -727,7 +818,7 @@ sub usage
|
||||
$my_progname version $VER by Jani Tolonen
|
||||
|
||||
Description:
|
||||
-$my_progname can be used to start, or stop any number of separate
|
||||
+$my_progname can be used to start, reload, or stop any number of separate
|
||||
mysqld processes running in different TCP/IP ports and UNIX sockets.
|
||||
|
||||
$my_progname can read group [mysqld_multi] from my.cnf file. You may
|
||||
@@ -745,16 +836,16 @@ starting from 1. These groups should be
|
||||
[mysqld] group, but with those port, socket and any other options
|
||||
that are to be used with each separate mysqld process. The number
|
||||
in the group name has another function; it can be used for starting,
|
||||
-stopping, or reporting any specific mysqld server.
|
||||
+reloading, stopping, or reporting any specific mysqld server.
|
||||
|
||||
-Usage: $my_progname [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
|
||||
-or $my_progname [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
|
||||
+Usage: $my_progname [OPTIONS] {start|reload|stop|report} [GNR,GNR,GNR...]
|
||||
+or $my_progname [OPTIONS] {start|reload|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
|
||||
|
||||
-The GNR means the group number. You can start, stop or report any GNR,
|
||||
+The GNR means the group number. You can start, reload, stop or report any GNR,
|
||||
or several of them at the same time. (See --example) The GNRs list can
|
||||
be comma separated or a dash combined. The latter means that all the
|
||||
GNRs between GNR1-GNR2 will be affected. Without GNR argument all the
|
||||
-groups found will either be started, stopped, or reported. Note that
|
||||
+groups found will either be started, reloaded, stopped, or reported. Note that
|
||||
syntax for specifying GNRs must appear without spaces.
|
||||
|
||||
Options:
|
526
rc.mysql-multi
Normal file
526
rc.mysql-multi
Normal file
@ -0,0 +1,526 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 1995-2010 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/^[^=]*=//'`" ;;
|
||||
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)
|
||||
echo "Restarting service multi MySQL "
|
||||
"$MYSELF" stop
|
||||
"$MYSELF" start
|
||||
|
||||
rc_status
|
||||
;;
|
||||
|
||||
reload)
|
||||
echo -n "Reloading service multi MySQL "
|
||||
mysqld_multi reload
|
||||
rc_status -v
|
||||
;;
|
||||
|
||||
status)
|
||||
STATUS=$(mysqld_multi report)
|
||||
echo -n "$STATUS"
|
||||
# Set the status for rc_status
|
||||
echo "$STATUS" | grep -q "is running"
|
||||
rc_status -v
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $MYSELF {start|stop|status|reload|restart|try-restart|force-reload}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
else
|
||||
# Test, if mysqld or mysql-max actually exist
|
||||
unset MYSQLD
|
||||
|
||||
# use mysqld-debug only if explicitly requested (TODO: sysconfig variable?)
|
||||
if test "$MYSQLD_DEBUG" = yes -a -x /usr/sbin/mysqld-debug
|
||||
then
|
||||
MYSQLD=/usr/sbin/mysqld-debug
|
||||
elif test -x /usr/sbin/mysqld-max
|
||||
then
|
||||
MYSQLD=/usr/sbin/mysqld-max
|
||||
elif test -x /usr/sbin/mysqld
|
||||
then
|
||||
MYSQLD=/usr/sbin/mysqld
|
||||
fi
|
||||
test "$MYSQLD" || {
|
||||
echo -n "Nor /usr/sbin/mysqld nor /usr/sbin/mysqld-max exists";
|
||||
rc_failed 5; rc_status -v; rc_exit;
|
||||
}
|
||||
|
||||
|
||||
# The following section has been taken from
|
||||
# the original MySQL init script
|
||||
# Note: If you want to change these variables, you'll make your life easier
|
||||
# if you do so in /etc/my.cnf, which is preserved during upgrades
|
||||
basedir=/usr
|
||||
datadir=/var/lib/mysql
|
||||
mysql_daemon_user=mysql
|
||||
mysql_daemon_group=mysql
|
||||
pid_file=/var/run/mysql/mysqld.pid
|
||||
socket=/var/run/mysql/mysql.sock
|
||||
print_defaults=/usr/bin/my_print_defaults
|
||||
log_error=/var/log/mysql/mysqld.log
|
||||
|
||||
mode=$1 # start or stop
|
||||
|
||||
log_base="`echo "$log_error" | sed 's|\.log$||'`"
|
||||
[ "$log_base" \!= "$log_error" ] || log_base="/var/log/mysql/mysql"
|
||||
log_upgrade="${log_base}-upgrade.log"
|
||||
log_upgrade_run="${log_base}-upgrade-run.log"
|
||||
log_query="${log_base}-query.log"
|
||||
|
||||
parse_arguments `$print_defaults $defaults mysqld mysql_server`
|
||||
export TMPDIR="`cat /var/run/mysql/tmpdir 2> /dev/null`"
|
||||
|
||||
# Safeguard (relative paths, core dumps..)
|
||||
cd "$basedir"
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
# exit gracefully, if we are already running
|
||||
"$MYSELF" status >/dev/null && echo -n "Starting service MySQL " && \
|
||||
rc_status -v && rc_exit
|
||||
|
||||
# prepare tmp dir
|
||||
if [ "$TMPDIR" ] && [ -d "$TMPDIR" ] && \
|
||||
[ "`ls -ld "$TMPDIR" | grep "^drwx------[[:blank:]]\+[0-9]\+[[:blank:]]\+$mysql_daemon_user[[:blank:]]\+$mysql_daemon_group[[:blank:]]\+.*"`" ]; then
|
||||
rm -rf "$TMPDIR"
|
||||
fi
|
||||
TMPDIR="`mktemp -d -p /var/tmp mysql.XXXXXX | tee /var/run/mysql/tmpdir`"
|
||||
[ -z "$TMPDIR" ] || chown "$mysql_daemon_user:$mysql_daemon_group" "$TMPDIR"
|
||||
[ "`ls -ld "$TMPDIR" | grep "^drwx------[[:blank:]]\+[0-9]\+[[:blank:]]\+$mysql_daemon_user[[:blank:]]\+$mysql_daemon_group[[:blank:]]\+.*"`" ] || {
|
||||
echo "Can't create secure $TMPDIR"
|
||||
rc_failed; rc_status -v; rc_exit;
|
||||
}
|
||||
|
||||
# Test, if safe_mysqld actually exists
|
||||
SAFE_MYSQLD=/usr/bin/mysqld_safe
|
||||
test -x $SAFE_MYSQLD || {
|
||||
echo "$SAFE_MYSQLD does not exist ";
|
||||
rc_failed 5; rc_status -v; rc_exit;
|
||||
}
|
||||
debug_flags=""
|
||||
if test "$MYSQLD_DEBUG" = yes; then
|
||||
# add --log, --core-file and --debug
|
||||
# but only if not already set in my.cnf
|
||||
if ! $print_defaults mysqld | \
|
||||
grep -q -e '--log$' -e '--log[[:blank:]=]'
|
||||
then
|
||||
debug_flags="--log=${log_query}"
|
||||
fi
|
||||
if ! $print_defaults mysqld | grep -q -e '^--debug\>' &&
|
||||
test "$MYSQLD" = /usr/sbin/mysqld-debug
|
||||
then
|
||||
debug_flags="$debug_flags --debug=d:t:F:L:o,$datadir/mysqld.trace"
|
||||
fi
|
||||
if ! $print_defaults mysqld | grep -q -e '^--core-file\>'
|
||||
then
|
||||
debug_flags="$debug_flags --core-file"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Creating parent directories for logs
|
||||
for i in "$log_upgrade" "$log_query" "$log_error"; do
|
||||
log_dir="`dirname "$i"`"
|
||||
if [ \! -d "$log_dir" ]; then
|
||||
mkdir -p "$log_dir"
|
||||
chmod 660 "$log_dir"
|
||||
fi
|
||||
done
|
||||
|
||||
# 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 "Creating MySQL privilege database... "
|
||||
mysql_install_db --user="$mysql_daemon_user" --datadir="$datadir" ||{
|
||||
rc_failed; rc_status -v; rc_exit
|
||||
}
|
||||
fi
|
||||
check_obsolete
|
||||
# Run mysql_upgrade on every package install/upgrade. Not allways
|
||||
# necessary, but doesn't do any harm.
|
||||
if test -f "$datadir/.run-mysql_upgrade" ; then
|
||||
echo >> "$log_upgrade"
|
||||
echo "`LANG="" date` - upgrading MySQL..." >> "$log_upgrade"
|
||||
echo >> "$log_upgrade"
|
||||
echo "Will update MySQL now, if you encounter any problems, please read following file:" | tee -a "$log_upgrade"
|
||||
echo " /usr/share/doc/packages/mysql/README.SuSE" | tee -a "$log_upgrade"
|
||||
# Check logs for inconsistencies
|
||||
SRCLOGS=""
|
||||
ALL_SRCLOGS=""
|
||||
for i in "$log_error" /var/lib/mysql/mysqld.log \
|
||||
/var/log/mysqld.log ; do
|
||||
if test -f "$i"; then
|
||||
SRCLOGS="$i"
|
||||
ALL_SRCLOGS="${ALL_SRCLOGS} ${i}"
|
||||
fi
|
||||
done
|
||||
if [ "${ALL_SRCLOGS}" \!= " ${SRCLOGS}" ]; then
|
||||
echo "Log files inconsistency, please merge following files manually:"
|
||||
echo $ALL_SRCLOGS | sed 's|[[:blank:]]\+|\n|' | sed 's|^|\t|'
|
||||
else
|
||||
if [ "$SRCLOGS" ]; then
|
||||
[ "$SRCLOGS" = "$log_error" ] || mv "$SRCLOGS" "$log_error"
|
||||
fi
|
||||
fi
|
||||
check_obsolete >> "$log_upgrade"
|
||||
# instead of running mysqld --bootstrap, which wouldn't allow
|
||||
# us to run mysql_upgrade, we start a full-featured server with
|
||||
# --skip-grant-tables and restict access to it by unix
|
||||
# permissions of the named socket
|
||||
protected="`cat /var/run/mysql/protecteddir 2> /dev/null`"
|
||||
if [ -d "$protected" ]; then
|
||||
pid="`cat "$protected/mysqld.pid" 2> /dev/null`"
|
||||
if [ "$pid" ] && [ -d "/proc/$pid" ] &&
|
||||
[ "`readlink "/proc/$pid/exe" | grep "mysql"`" ]; then
|
||||
echo "Can't update as another updating process is currently running" | tee -a "$log_upgrade"
|
||||
echo "Please check process $pid and terminate it before restarting MySQL" | tee -a "$log_upgrade"
|
||||
rc_failed; rc_status -v; rc_exit;
|
||||
else
|
||||
rm -rf "$protected"
|
||||
fi
|
||||
fi
|
||||
protected="`mktemp -d -p /var/tmp mysql-protected.XXXXXX | tee /var/run/mysql/protecteddir`"
|
||||
[ -z "$protected" ] || chown "$mysql_daemon_user:$mysql_daemon_group" "$protected"
|
||||
[ "`ls -ld "$protected" | grep "^drwx------[[:blank:]]\+[0-9]\+[[:blank:]]\+$mysql_daemon_user[[:blank:]]\+$mysql_daemon_group[[:blank:]]\+.*"`" ] || {
|
||||
echo "Can't create secure $protected" | tee -a "$log_upgrade"
|
||||
rc_failed; rc_status -v; rc_exit;
|
||||
}
|
||||
|
||||
echo "Running protected MySQL... " | tee -a "$log_upgrade"
|
||||
$SAFE_MYSQLD \
|
||||
--mysqld=${MYSQLD#/usr/sbin/} \
|
||||
$debug_flags \
|
||||
--skip-networking \
|
||||
--skip-grant-tables \
|
||||
--datadir="$datadir" \
|
||||
--user="$mysql_daemon_user" \
|
||||
--log-error="$log_upgrade_run" \
|
||||
--socket="$protected/mysql.sock" \
|
||||
--pid-file="$protected/mysqld.pid" \
|
||||
--group="$mysql_daemon_group" &>/dev/null &
|
||||
wait_for_socket "$protected/mysql.sock" || {
|
||||
echo "error: $protected/mysql.sock file didn't appeared... " | tee -a "$log_upgrade"
|
||||
echo " Try checking \"$log_upgrade_run\"... " | tee -a "$log_upgrade"
|
||||
rc_failed; rc_status -v; rc_exit;
|
||||
}
|
||||
echo "Upgrading MySQL... " | tee -a "$log_upgrade"
|
||||
/usr/bin/mysql_upgrade \
|
||||
--socket="$protected/mysql.sock" | tee -a "$log_upgrade"
|
||||
[ "$PIPESTATUS" -ne 0 ] && {
|
||||
rc_failed; rc_status -v;
|
||||
kill -TERM "`cat $protected/mysqld.pid`"
|
||||
rc_exit; }
|
||||
kill -TERM "`cat $protected/mysqld.pid`"
|
||||
rm -rf "$protected"
|
||||
# Fix ownerships and permissions for $datadir
|
||||
chmod 750 "$datadir"
|
||||
chown -R "$mysql_daemon_user:$mysql_daemon_group" "$datadir"
|
||||
rm -f "$datadir/.run-mysql_upgrade" \
|
||||
"$datadir"/{update-stamp-*,mysql/stamp-4.1} # used in the past
|
||||
chown "$mysql_daemon_user:$mysql_daemon_group" "$log_upgrade"
|
||||
chmod 640 "$log_upgrade"
|
||||
fi
|
||||
|
||||
|
||||
echo -n "Starting service MySQL "
|
||||
|
||||
$SAFE_MYSQLD \
|
||||
--mysqld=${MYSQLD#/usr/sbin/} \
|
||||
$debug_flags \
|
||||
--user="$mysql_daemon_user" \
|
||||
--pid-file="$pid_file" \
|
||||
--socket="$socket" \
|
||||
--datadir="$datadir" &>/dev/null &
|
||||
|
||||
wait_for_socket "$socket" || {
|
||||
# let's not treat this as a fatal error
|
||||
echo "warning: $socket didn't appear within 30 seconds"
|
||||
}
|
||||
chmod a+r "$pid_file"
|
||||
|
||||
# Rmember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
|
||||
stop)
|
||||
echo -n "Shutting down service MySQL "
|
||||
kill_mysql
|
||||
if [ "$TMPDIR" ] && [ -d "$TMPDIR" ] && \
|
||||
[ "`ls -ld "$TMPDIR" | grep "^drwx------[[:blank:]]\+[0-9]\+[[:blank:]]\+$mysql_daemon_user[[:blank:]]\+$mysql_daemon_group[[:blank:]]\+.*"`" ]; then
|
||||
rm -rf "$TMPDIR"
|
||||
fi
|
||||
# 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)
|
||||
echo "Restarting service MySQL "
|
||||
"$MYSELF" stop
|
||||
"$MYSELF" start
|
||||
|
||||
rc_status
|
||||
;;
|
||||
|
||||
reload)
|
||||
echo -n "Reloading service MySQL "
|
||||
kill -HUP "`cat "$pid_file"`"
|
||||
touch "$pid_file"
|
||||
rc_status -v
|
||||
;;
|
||||
|
||||
check|status)
|
||||
echo -n "Checking for service MySQL: "
|
||||
## Check status with checkproc(8), if process is running
|
||||
## checkproc will return with exit status 0.
|
||||
|
||||
# Status has a slightly different for the status command:
|
||||
# 0 - service running
|
||||
# 1 - service dead, but /var/run/ pid file exists
|
||||
# 2 - service dead, but /var/lock/ lock file exists
|
||||
# 3 - service not running
|
||||
|
||||
# NOTE: checkproc returns LSB compliant status values,
|
||||
# but it checks for running binary first and only
|
||||
# if it doesn't find running process with proper
|
||||
# name it checks pidfile. So we can't use it because
|
||||
# akonadi runs it's own database.
|
||||
# checkproc -p $pid_file $MYSQLD
|
||||
if [ -f "$pid_file" ]; then
|
||||
if ! [ -e /proc/version ]; then
|
||||
mount -n -t proc proc /proc
|
||||
test -e /proc/version || set_return_value 100
|
||||
fi
|
||||
pid="`cat "$pid_file"`"
|
||||
if [ "$pid" ] && [ -d "/proc/$pid" ]; then
|
||||
cmd=`cat "/proc/$pid/cmdline" 2> /dev/null`
|
||||
exe=`readlink "/proc/$pid/exe" 2> /dev/null`
|
||||
if [ "`echo "$exe" | grep "^$MYSQLD"`" ] || [ "`echo "$cmd" | grep "^$MYSQLD"`" ]; then
|
||||
set_return_value 0
|
||||
else
|
||||
set_return_value 1
|
||||
fi
|
||||
else
|
||||
set_return_value 1
|
||||
fi
|
||||
else
|
||||
set_return_value 3
|
||||
fi
|
||||
rc_status -v
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $MYSELF {start|stop|status|reload|restart|try-restart|force-reload}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
rc_exit
|
||||
|
||||
# vim: ft=sh
|
17
suse-test-run
Normal file
17
suse-test-run
Normal file
@ -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: $!";
|
Loading…
Reference in New Issue
Block a user