diff --git a/utils/mariadb/Makefile b/utils/mariadb/Makefile index 545daba01..92cadf31b 100644 --- a/utils/mariadb/Makefile +++ b/utils/mariadb/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mariadb -PKG_VERSION:=10.1.33 +PKG_VERSION:=10.1.34 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz @@ -18,7 +18,7 @@ PKG_SOURCE_URL := \ https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \ https://downloads.mariadb.org/interstitial/$(PKG_NAME)-$(PKG_VERSION)/source -PKG_HASH:=94312c519f2c0c25e1964c64e22aff0036fb22dfb2685638f43a6b2211395d2d +PKG_HASH:=c7e0719fd08790c096585bf867fe87e084b310f2f3679e059e3b10b9fd6d5548 PKG_MAINTAINER:=Sebastian Kemper PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING @@ -61,6 +61,8 @@ MARIADB_SERVER_PLUGINS := \ ha_federated \ ha_federatedx \ ha_innodb \ + ha_sequence \ + ha_sphinx \ ha_spider \ ha_test_sql_discovery \ handlersocket \ @@ -103,6 +105,8 @@ plugin-ha_example := PLUGIN_EXAMPLE plugin-ha_federated := PLUGIN_FEDERATED plugin-ha_federatedx := PLUGIN_FEDERATEDX plugin-ha_innodb := PLUGIN_INNOBASE +plugin-ha_sequence := PLUGIN_SEQUENCE +plugin-ha_sphinx := PLUGIN_SPHINX plugin-ha_spider := PLUGIN_SPIDER plugin-ha_test_sql_discovery := PLUGIN_TEST_SQL_DISCOVERY plugin-handlersocket := PLUGIN_HANDLERSOCKET @@ -264,6 +268,7 @@ define Package/mariadb-server TITLE:=MariaDB database core server binaries MENU:=1 PROVIDES:=mysql-server + USERID:=mariadb=376:mariadb=376 endef define Package/mariadb-server/description @@ -340,9 +345,10 @@ CMAKE_OPTIONS += \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR="" \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ - -DMYSQLD_USER=root \ + -DINSTALL_UNIX_ADDRDIR=/var/run/mysqld/mysqld.sock \ + -DMYSQLD_USER=mariadb \ -DMYSQL_DATADIR=/var/lib/mysql \ - -DMYSQL_UNIX_ADDR=/var/run/mysqld.sock \ + -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \ -DSKIP_TESTS=ON \ -DWITH_ASAN=OFF \ -DWITH_EMBEDDED_SERVER=OFF \ @@ -371,7 +377,6 @@ CMAKE_OPTIONS += \ -DPLUGIN_MROONGA=NO \ -DPLUGIN_OQGRAPH=NO \ -DPLUGIN_ROCKSDB=NO \ - -DPLUGIN_SPHINX=NO \ -DPLUGIN_TOKUDB=NO \ -DPLUGIN_AUTH_PAM=NO \ -DPLUGIN_AUTH_GSSAPI=NO \ @@ -441,6 +446,10 @@ endef define Package/mariadb-client/install $(INSTALL_DIR) $(1)/usr/bin $(foreach b,$(MARIADB_CLIENT),$(call Package/mariadb/install/bin,$(1),$(b));) + # Install convenience links for mysqlcheck multi-call binary + cd $(1)/usr/bin; $(LN) mysqlcheck mysqlanalyze + cd $(1)/usr/bin; $(LN) mysqlcheck mysqlrepair + cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize endef define Package/mariadb-client-extra/install @@ -456,10 +465,12 @@ endef define Package/mariadb-server/install $(INSTALL_DIR) $(1)/usr/bin $(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));) + $(INSTALL_DIR) $(1)/etc/default $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/mysql/conf.d $(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld $(INSTALL_CONF) conf/my.cnf $(1)/etc/mysql + $(INSTALL_CONF) conf/mysqld.default $(1)/etc/default/mysqld $(INSTALL_DIR) $(1)$(PLUGIN_DIR) $(INSTALL_CONF) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/daemon_example.ini $(1)$(PLUGIN_DIR) $(INSTALL_DIR) $(1)/usr/share/mysql/english @@ -477,8 +488,9 @@ define Package/mariadb-server-extra/install endef define Package/mariadb-server/conffiles +/etc/default/mysqld /etc/mysql/my.cnf -/usr/lib/mysql/plugin/daemon_example.ini +$(PLUGIN_DIR)/daemon_example.ini endef define BuildPlugin @@ -525,9 +537,12 @@ $(eval $(call BuildPlugin,file_key_management,)) $(eval $(call BuildPlugin,ha_archive,)) $(eval $(call BuildPlugin,ha_blackhole,)) $(eval $(call BuildPlugin,ha_connect,+libxml2)) +$(eval $(call BuildPlugin,ha_example,)) $(eval $(call BuildPlugin,ha_federated,)) $(eval $(call BuildPlugin,ha_federatedx,)) $(eval $(call BuildPlugin,ha_innodb,)) +$(eval $(call BuildPlugin,ha_sequence,)) +$(eval $(call BuildPlugin,ha_sphinx,)) $(eval $(call BuildPlugin,ha_spider,)) $(eval $(call BuildPlugin,ha_test_sql_discovery,)) $(eval $(call BuildPlugin,handlersocket,)) diff --git a/utils/mariadb/conf/my.cnf b/utils/mariadb/conf/my.cnf index ec2ade2c8..effa88a77 100644 --- a/utils/mariadb/conf/my.cnf +++ b/utils/mariadb/conf/my.cnf @@ -1,10 +1,10 @@ [client] port = 3306 -socket = /var/run/mysqld.sock +socket = /var/run/mysqld/mysqld.sock [mysqld] -user = root -socket = /var/run/mysqld.sock +user = mariadb +socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr @@ -21,21 +21,21 @@ skip-external-locking bind-address = 127.0.0.1 # Fine Tuning -key_buffer = 16M +key_buffer_size = 16M max_allowed_packet = 16M thread_stack = 192K -thread_cache_size = 8 +thread_cache_size = 8 # Here you can see queries with especially long duration #log_slow_queries = /var/log/mysql/mysql-slow.log -#long_query_time = 2 +#long_query_time = 2 #log-queries-not-using-indexes # The following can be used as easy to replay backup logs or for replication. #server-id = 1 -#log_bin = /var/log/mysql/mysql-bin.log +#log_bin = /var/log/mysql/mysql-bin.log #expire_logs_days = 10 -#max_binlog_size = 100M +#max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name diff --git a/utils/mariadb/conf/mysqld.default b/utils/mariadb/conf/mysqld.default new file mode 100644 index 000000000..fe9c698ba --- /dev/null +++ b/utils/mariadb/conf/mysqld.default @@ -0,0 +1,10 @@ +# The user and group that will run the MySQL server. The user mariadb is +# automatically created by the mariadb-server package, hence that is the +# default choice. + +#MY_USER=mariadb +#MY_GROUP=mariadb + +# Additional arguments you want to pass to the MySQL server. + +#MY_ARGS="" diff --git a/utils/mariadb/files/mysqld.init b/utils/mariadb/files/mysqld.init index fcd08d61e..abc99fc7a 100644 --- a/utils/mariadb/files/mysqld.init +++ b/utils/mariadb/files/mysqld.init @@ -1,32 +1,53 @@ #!/bin/sh /etc/rc.common -# Copyright (C) 2010-2011 OpenWrt.org +# Copyright (C) 2010-2018 OpenWrt.org START=95 STOP=10 -SERVICE_DAEMONIZE=1 -SERVICE_WRITE_PID=1 -SERVICE_STOP_TIME=9 -PROG='/usr/bin/mysqld' +USE_PROCD=1 -start() { +#PROCD_DEBUG=1 + +MYSQLD=mysqld + +DEFAULT=/etc/default/$MYSQLD +LOGGER="/usr/bin/logger -p user.err -s -t $MYSQLD" +PROG=/usr/bin/$MYSQLD + +unset MY_ARGS MY_GROUP MY_USER + +[ -f $DEFAULT ] && . $DEFAULT + +my_user="${MY_USER:-mariadb}" +my_group="${MY_GROUP:-mariadb}" + +start_service() { local conf='/etc/mysql/my.cnf' local datadir="$( sed -nE "s/^\s*datadir\s*=\s*('([^']*)'|\x22([^\x22]*)\x22|(.*\S))\s*$/\2\3\4/p" "$conf" )" [ -d "$datadir" ] || { - logger -s "[ERROR] datadir '$datadir' in '$conf' does not exist" + $LOGGER "datadir '$datadir' in '$conf' does not exist" return 1 } [ -f "$datadir/mysql/tables_priv.MYD" ] || { - logger -s "[ERROR] can not detect privileges table, you might need to" - logger -s "run 'mysql_install_db --force' to initialize the system tables" + $LOGGER "cannot detect privileges table, you might need to" + $LOGGER "run 'mysql_install_db --force' to initialize the system tables" return 1 } - service_start "$PROG" -} + mkdir -p /var/lib/mysql + chown "$my_user":"$my_group" /var/lib/mysql -stop() { - service_stop "$PROG" + mkdir -p /var/run/mysqld + chown "$my_user":"$my_group" /var/run/mysqld + + procd_open_instance + + procd_set_param command $PROG $MY_ARGS + procd_set_param pidfile /var/run/mysqld.pid + # forward stderr to logd + procd_set_param stderr 1 + + procd_close_instance }