summaryrefslogtreecommitdiff
path: root/extra/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'extra/mysql')
-rw-r--r--extra/mysql/PKGBUILD30
-rw-r--r--extra/mysql/my.cnf145
-rw-r--r--extra/mysql/mysql.install17
-rwxr-xr-xextra/mysql/mysqld-post.sh3
-rw-r--r--extra/mysql/mysqld.service9
5 files changed, 37 insertions, 167 deletions
diff --git a/extra/mysql/PKGBUILD b/extra/mysql/PKGBUILD
index ea07e72b2..6e6557d1c 100644
--- a/extra/mysql/PKGBUILD
+++ b/extra/mysql/PKGBUILD
@@ -1,30 +1,30 @@
-# $Id: PKGBUILD 176798 2013-01-31 15:46:51Z andrea $
+# $Id: PKGBUILD 178940 2013-03-01 05:59:24Z bpiotrowski $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
pkgbase=mysql
pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
pkgver=5.5.30
-pkgrel=1
+pkgrel=6
arch=('i686' 'x86_64')
license=('GPL')
url="https://www.mysql.com/products/community/"
makedepends=('cmake' 'openssl' 'zlib')
options=('!libtool')
-source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz"
- 'my.cnf' 'mysqld-post.sh' 'mysqld-tmpfile.conf' 'mysqld.service')
-md5sums=('f0cdd56f89e781e800cf223bd9edd00c'
- '1351485633baf9894cfdf7c5bbffd7b5'
- '6ea6ceb360d09a774e87335ee098ddd5'
- '2fa6e456964d4ff5e6d4f9ff0126aed6'
- 'a0e1460c276a50a9666c331de83271f2')
+source=(http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz{,.asc}
+ mysqld-post.sh
+ mysqld-tmpfile.conf
+ mysqld.service)
+sha256sums=('909fe596e0044082a02d2757b742a33b8a3ff399b589603940494d3d3d975053'
+ '27d3bba7b7f54f9f77cddba81a3fe124aeef918cc09eb28860338e9a4359e6f7'
+ '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd'
+ '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd'
+ '50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556')
build() {
mkdir build
cd build
- # CFLAGS/CXXFLAGS as suggested upstream
-
cmake ../${pkgbase}-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
@@ -53,9 +53,9 @@ build() {
-DWITH_EMBEDDED_SERVER=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
- -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
-DCMAKE_C_FLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
-DCMAKE_CXX_FLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti"
@@ -107,7 +107,7 @@ package_mysql(){
cd build
make DESTDIR="${pkgdir}" install
- install -Dm644 "${srcdir}"/my.cnf "${pkgdir}"/etc/mysql/my.cnf
+ install -Dm644 "${pkgdir}"/usr/share/mysql/my-medium.cnf "${pkgdir}"/etc/mysql/my.cnf
install -Dm755 "${srcdir}"/mysqld-post.sh "${pkgdir}"/usr/bin/mysqld-post
install -Dm644 "${srcdir}"/mysqld-tmpfile.conf "${pkgdir}"/usr/lib/tmpfiles.d/mysqld.conf
install -d "${pkgdir}"/usr/lib/systemd/system
@@ -127,5 +127,5 @@ package_mysql(){
rm -r "${pkgdir}"/usr/{data,mysql-test,sql-bench}
rm "${pkgdir}"/usr/share/man/man1/mysql-test-run.pl.1
- install -dm700 "${pkgdir}"/var/lib/mysql
+ #install -dm700 "${pkgdir}"/var/lib/mysql
}
diff --git a/extra/mysql/my.cnf b/extra/mysql/my.cnf
deleted file mode 100644
index 387020858..000000000
--- a/extra/mysql/my.cnf
+++ /dev/null
@@ -1,145 +0,0 @@
-# MySQL config file for medium systems.
-#
-# This is for a system with little memory (32M - 64M) where MySQL plays
-# an important part, or systems up to 128M where MySQL is used together with
-# other programs (such as a web server)
-#
-# MySQL programs look for option files in a set of
-# locations which depend on the deployment platform.
-# You can copy this option file to one of those
-# locations. For information about these locations, see:
-# http://dev.mysql.com/doc/mysql/en/option-files.html
-#
-# In this file, you can use all long options that a program supports.
-# If you want to know which options a program supports, run the program
-# with the "--help" option.
-
-# The following options will be passed to all MySQL clients
-[client]
-#password = your_password
-port = 3306
-socket = /run/mysqld/mysqld.sock
-
-# Here follows entries for some specific programs
-
-# The MySQL server
-[mysqld]
-port = 3306
-socket = /run/mysqld/mysqld.sock
-datadir = /var/lib/mysql
-skip-external-locking
-key_buffer_size = 16M
-max_allowed_packet = 1M
-table_open_cache = 64
-sort_buffer_size = 512K
-net_buffer_length = 8K
-read_buffer_size = 256K
-read_rnd_buffer_size = 512K
-myisam_sort_buffer_size = 8M
-
-# Don't listen on a TCP/IP port at all. This can be a security enhancement,
-# if all processes that need to connect to mysqld run on the same host.
-# All interaction with mysqld must be made via Unix sockets or named pipes.
-# Note that using this option without enabling named pipes on Windows
-# (via the "enable-named-pipe" option) will render mysqld useless!
-#
-skip-networking
-
-# Replication Master Server (default)
-# binary logging is required for replication
-log-bin=mysql-bin
-
-# binary logging format - mixed recommended
-binlog_format=mixed
-
-# required unique id between 1 and 2^32 - 1
-# defaults to 1 if master-host is not set
-# but will not function as a master if omitted
-server-id = 1
-
-# Replication Slave (comment out master section to use this)
-#
-# To configure this host as a replication slave, you can choose between
-# two methods :
-#
-# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
-# the syntax is:
-#
-# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
-# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
-#
-# where you replace <host>, <user>, <password> by quoted strings and
-# <port> by the master's port number (3306 by default).
-#
-# Example:
-#
-# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
-# MASTER_USER='joe', MASTER_PASSWORD='secret';
-#
-# OR
-#
-# 2) Set the variables below. However, in case you choose this method, then
-# start replication for the first time (even unsuccessfully, for example
-# if you mistyped the password in master-password and the slave fails to
-# connect), the slave will create a master.info file, and any later
-# change in this file to the variables' values below will be ignored and
-# overridden by the content of the master.info file, unless you shutdown
-# the slave server, delete master.info and restart the slaver server.
-# For that reason, you may want to leave the lines below untouched
-# (commented) and instead use CHANGE MASTER TO (see above)
-#
-# required unique id between 2 and 2^32 - 1
-# (and different from the master)
-# defaults to 2 if master-host is set
-# but will not function as a slave if omitted
-#server-id = 2
-#
-# The replication master for this slave - required
-#master-host = <hostname>
-#
-# The username the slave will use for authentication when connecting
-# to the master - required
-#master-user = <username>
-#
-# The password the slave will authenticate with when connecting to
-# the master - required
-#master-password = <password>
-#
-# The port the master is listening on.
-# optional - defaults to 3306
-#master-port = <port>
-#
-# binary logging - not required for slaves, but recommended
-#log-bin=mysql-bin
-
-# Uncomment the following if you are using InnoDB tables
-#innodb_data_home_dir = /var/lib/mysql
-#innodb_data_file_path = ibdata1:10M:autoextend
-#innodb_log_group_home_dir = /var/lib/mysql
-# You can set .._buffer_pool_size up to 50 - 80 %
-# of RAM but beware of setting memory usage too high
-#innodb_buffer_pool_size = 16M
-#innodb_additional_mem_pool_size = 2M
-# Set .._log_file_size to 25 % of buffer pool size
-#innodb_log_file_size = 5M
-#innodb_log_buffer_size = 8M
-#innodb_flush_log_at_trx_commit = 1
-#innodb_lock_wait_timeout = 50
-
-[mysqldump]
-quick
-max_allowed_packet = 16M
-
-[mysql]
-no-auto-rehash
-# Remove the next comment character if you are not familiar with SQL
-#safe-updates
-
-[myisamchk]
-key_buffer_size = 20M
-sort_buffer_size = 20M
-read_buffer = 2M
-write_buffer = 2M
-
-[mysqlhotcopy]
-interactive-timeout
diff --git a/extra/mysql/mysql.install b/extra/mysql/mysql.install
index a98f1a877..907e98656 100644
--- a/extra/mysql/mysql.install
+++ b/extra/mysql/mysql.install
@@ -1,15 +1,24 @@
+if [[ $(command -v my_print_defaults >/dev/null 2>&1) ]]; then
+ datadir=$(my_print_defaults mysqld | sed -n "s/^--datadir=//p")
+fi
+[[ -z $datadir ]] && datadir=/var/lib/mysql
+
post_install(){
groupadd -g 89 mysql &>/dev/null
- useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
- usr/bin/mysql_install_db --user=mysql --basedir=/usr
- chown -R mysql:mysql var/lib/mysql &>/dev/null
+ useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null
+
+ if [[ ! -e $datadir ]]; then
+ install -dm700 $datadir
+ usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=$datadir
+ chown -R mysql:mysql var/lib/mysql &>/dev/null
+ fi
usr/bin/systemd-tmpfiles --create mysqld.conf
}
post_upgrade(){
getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null
- getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+ getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null
if [ "$(vercmp $2 5.5)" -lt 0 ]; then
echo " >> "
diff --git a/extra/mysql/mysqld-post.sh b/extra/mysql/mysqld-post.sh
index 8dc9c4eea..c4ac18171 100755
--- a/extra/mysql/mysqld-post.sh
+++ b/extra/mysql/mysqld-post.sh
@@ -1,7 +1,8 @@
#!/bin/sh
while true; do
- response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
+ response=$(/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1) && break
echo "$response" | grep -q "mysqld is alive" && break
+ echo "$response" | grep -q "Access denied for user" && break
sleep 1
done
diff --git a/extra/mysql/mysqld.service b/extra/mysql/mysqld.service
index 0175c685b..a6fc8cf88 100644
--- a/extra/mysql/mysqld.service
+++ b/extra/mysql/mysqld.service
@@ -1,11 +1,16 @@
[Unit]
-Description=MySQL Server
+Description=MySQL database server
+After=syslog.target
[Service]
User=mysql
-ExecStart=/usr/bin/mysqld --user=mysql
+Group=mysql
+
+ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid
ExecStartPost=/usr/bin/mysqld-post
+
Restart=always
+PrivateTmp=true
[Install]
WantedBy=multi-user.target