endef
define Package/libmariadb
-$(call Package/libmariadb/Default)
+ $(call Package/libmariadb/Default)
DEPENDS:=$(MARIADB_COMMON_DEPENDS)
TITLE:=MariaDB database client library
MENU:=1
define Package/mariadb-client
$(call Package/mariadb/Default)
- TITLE:=MariaDB database core client binaries
- DEPENDS:= \
- $(MARIADB_COMMON_DEPENDS) \
- +libedit
+ TITLE:=MariaDB database client
+ MENU:=1
+ DEPENDS:=mariadb-client-base
endef
define Package/mariadb-client/description
endef
+define Package/mariadb-client-base
+ $(call Package/mariadb/Default)
+ TITLE:=MariaDB database client base
+ DEPENDS:=mariadb-common \
+ $(MARIADB_COMMON_DEPENDS) \
+ +libedit
+endef
+
+define Package/mariadb-client-base/conffiles
+$(CONF_DIR)/conf.d/50-client.cnf
+$(CONF_DIR)/conf.d/50-mysql-clients.cnf
+endef
+
+define Package/mariadb-client-base/description
+$(call Package/mariadb/description/Default)
+
+This package provides the foundation for mariadb-client. It installs the
+configuration and the dependencies.
+
+endef
+
define Package/mariadb-client-extra
$(call Package/mariadb/Default)
- TITLE:=MariaDB database extra client binaries
+ TITLE:=MariaDB database client extra
DEPENDS:=mariadb-client
endef
endef
+define Package/mariadb-common
+ $(call Package/mariadb/Default)
+ TITLE:=MariaDB database common files
+ DEPENDS:=
+endef
+
+define Package/mariadb-common/conffiles
+$(CONF_DIR)/my.cnf
+endef
+
+define Package/mariadb-common/description
+$(call Package/mariadb/description/Default)
+
+This package includes shared files, for example $(CONF_DIR)/my.cnf.
+
+endef
+
define Package/mariadb-extra-charsets
$(call Package/mariadb/Default)
TITLE:=MariaDB database extra character sets
define Package/mariadb-server
$(call Package/mariadb/Default)
- DEPENDS:= \
- $(MARIADB_COMMON_DEPENDS) \
- +!arc:libaio \
- +liblzma \
- +libpcre \
- +resolveip
- TITLE:=MariaDB database core server binaries
+ DEPENDS:=mariadb-server-base
+ TITLE:=MariaDB database server
MENU:=1
PROVIDES:=mysql-server
- USERID:=mariadb=376:mariadb=376
endef
define Package/mariadb-server/description
endef
+define Package/mariadb-server-base
+ $(call Package/mariadb/Default)
+ DEPENDS:=mariadb-common \
+ $(MARIADB_COMMON_DEPENDS) \
+ +!arc:libaio \
+ +liblzma \
+ +libpcre \
+ +resolveip
+ TITLE:=MariaDB database server base
+ USERID:=mariadb=376:mariadb=376
+endef
+
+define Package/mariadb-server-base/conffiles
+$(CONF_DIR)/conf.d/50-server.cnf
+/etc/default/mysqld
+endef
+
+define Package/mariadb-server-base/description
+$(call Package/mariadb/description/Default)
+
+This package provides the foundation for mariadb-server. It installs the
+init script, support files (configuration etc.), the user "mariadb" and
+the dependencies.
+
+endef
+
define Package/mariadb-server-extra
$(call Package/mariadb/Default)
- TITLE:=MariaDB database extra server binaries
+ TITLE:=MariaDB database server extra
DEPENDS:=mariadb-server
endef
cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
endef
+define Package/mariadb-client-base/install
+ $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
+ $(INSTALL_CONF) conf/50-client.cnf $(1)$(CONF_DIR)/conf.d
+ $(INSTALL_CONF) conf/50-mysql-clients.cnf $(1)$(CONF_DIR)/conf.d
+endef
+
define Package/mariadb-client-extra/install
$(INSTALL_DIR) $(1)/usr/bin
$(foreach b,$(MARIADB_CLIENT_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
endef
+define Package/mariadb-common/install
+ $(INSTALL_DIR) $(1)$(CONF_DIR)
+ $(INSTALL_CONF) conf/my.cnf $(1)$(CONF_DIR)
+endef
+
define Package/mariadb-extra-charsets/install
$(INSTALL_DIR) $(1)$(SHARE_DIR)/charsets
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/charsets/* $(1)$(SHARE_DIR)/charsets
define Package/mariadb-server/install
$(INSTALL_DIR) $(1)/usr/bin
$(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));)
+endef
+
+define Package/mariadb-server-base/install
+ $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
+ $(INSTALL_DIR) $(1)$(SHARE_DIR)/english
$(INSTALL_DIR) $(1)/etc/default
$(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
$(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld
- $(INSTALL_CONF) conf/my.cnf $(1)$(CONF_DIR)
+ $(INSTALL_CONF) conf/50-server.cnf $(1)$(CONF_DIR)/conf.d
$(INSTALL_CONF) conf/mysqld.default $(1)/etc/default/mysqld
- $(INSTALL_DIR) $(1)$(SHARE_DIR)/english
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/english/errmsg.sys $(1)$(SHARE_DIR)/english
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/fill_help_tables.sql $(1)$(SHARE_DIR)
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/maria_add_gis_sp_bootstrap.sql $(1)$(SHARE_DIR)
$(foreach b,$(MARIADB_SERVER_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
endef
-define Package/mariadb-server/conffiles
-/etc/default/mysqld
-$(CONF_DIR)/my.cnf
-endef
-
define BuildPlugin
define Package/$(1)-plugin-$(subst _,-,$(2))
$(call Package/$(subst mariadb-server,mariadb,$(1))/Default)
$(eval $(call HostBuild))
$(eval $(call BuildPackage,libmariadb))
$(eval $(call BuildPackage,mariadb-client))
+$(eval $(call BuildPackage,mariadb-client-base))
$(eval $(call BuildPackage,mariadb-client-extra))
+$(eval $(call BuildPackage,mariadb-common))
$(eval $(call BuildPackage,mariadb-extra-charsets))
$(eval $(call BuildPackage,mariadb-server))
+$(eval $(call BuildPackage,mariadb-server-base))
$(eval $(call BuildPackage,mariadb-server-extra))
$(eval $(call BuildPlugin,libmariadb,auth_gssapi_client,+krb5-libs))
--- /dev/null
+#
+# These groups are read by MariaDB server.
+# Use it for options that only the server (but not clients) should see
+#
+# See the examples of server my.cnf files in /usr/share/mysql/
+#
+
+# this is read by the standalone daemon and embedded servers
+[server]
+
+# this is only for the mysqld standalone daemon
+[mysqld]
+
+#
+# * Basic Settings
+#
+user = mariadb
+pid-file = /var/run/mysqld/mysqld.pid
+socket = /var/run/mysqld/mysqld.sock
+port = 3306
+basedir = /usr
+# Don't put this on flash memory
+# Figure out where you are going to put the databases and run
+# mysql_install_db --force
+datadir = /mnt/data/mysql
+# tmpdir should also not go on flash memory
+tmpdir = /tmp
+lc-messages-dir = /usr/share/mariadb
+
+skip-external-locking
+
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+bind-address = 127.0.0.1
+
+#
+# * Fine Tuning
+#
+key_buffer_size = 16M
+max_allowed_packet = 16M
+thread_stack = 192K
+thread_cache_size = 8
+# This replaces the startup script and checks MyISAM tables if needed
+# the first time they are touched
+myisam_recover_options = BACKUP
+#max_connections = 100
+#table_cache = 64
+#thread_concurrency = 10
+
+#
+# * Query Cache Configuration
+#
+query_cache_limit = 1M
+query_cache_size = 16M
+
+#
+# * Logging and Replication
+#
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+# As of 5.1 you can enable the log at runtime!
+#general_log_file = /var/log/mysql/mysql.log
+#general_log = 1
+#
+# Error log - should be very few entries.
+# Note that if unset the errors will go to stdout and can be seen in syslog
+# (check "logread")
+#
+#log_error = /var/log/mysql/error.log
+#
+# Enable the slow query log to see queries with especially long duration
+#slow_query_log_file = /var/log/mysql/mariadb-slow.log
+#long_query_time = 10
+#log_slow_rate_limit = 1000
+#log_slow_verbosity = query_plan
+#
+#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
+expire_logs_days = 10
+max_binlog_size = 100M
+#binlog_do_db = include_database_name
+#binlog_ignore_db = exclude_database_name
+
+#
+# * InnoDB
+#
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+
+#
+# * Security Features
+#
+# Read the manual, too, if you want chroot!
+# chroot = /var/lib/mysql/
+#
+# For generating SSL certificates you can use for example the GUI tool "tinyca".
+#
+# ssl-ca=/etc/mysql/cacert.pem
+# ssl-cert=/etc/mysql/server-cert.pem
+# ssl-key=/etc/mysql/server-key.pem
+#
+# Accept only connections using the latest and most secure TLS protocol version.
+# ..when MariaDB is compiled with OpenSSL:
+# ssl-cipher=TLSv1.2
+
+#
+# * Character sets
+#
+# MySQL/MariaDB default is Latin1, but in OpenWrt we rather default to the full
+# utf8 4-byte character set. See also client.cnf
+#
+# Note: In OpenWrt until mariadb 10.2.19-2 the baked-in defaults were
+# "DEFAULT_CHARSET=utf8" and "DEFAULT_COLLATION=utf8_general_ci". As MariaDB's
+# utf8 (supports three bytes per character) is not really UTF-8 (which needs up
+# to four bytes per character) this was changed. Now the baked in-defaults are
+# the upstream defaults (Latin1), but in the default configuration (like in the
+# file you are currently reading) utf8mb4 is set, which is real UTF-8.
+#
+# Of course you are free to change this, either here or in a configuration file
+# of your own which is read after this .cnf file, see my.cnf in parent folder
+# (files are read in alphabetical order).
+character-set-server = utf8mb4
+collation-server = utf8mb4_general_ci
+
+#
+# * Unix socket authentication plugin is built-in
+#
+# Needed so the root database user can authenticate without a password but
+# only when running as the unix root user.
+#
+# Also available for other users if required.
+# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/
+
-[client]
-port = 3306
-socket = /var/run/mysqld/mysqld.sock
-
-[mysqld]
-user = mariadb
-socket = /var/run/mysqld/mysqld.sock
-port = 3306
-basedir = /usr
-
-############ Don't put this on the NAND #############
-# Figure out where you are going to put the databases
-# And run mysql_install_db --force
-datadir = /mnt/data/mysql/
-
-######### This should also not go on the NAND #######
-tmpdir = /mnt/data/tmp/
-
-skip-external-locking
-
-bind-address = 127.0.0.1
-
-# Fine Tuning
-key_buffer_size = 16M
-max_allowed_packet = 16M
-thread_stack = 192K
-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
-#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
-#expire_logs_days = 10
-#max_binlog_size = 100M
-#binlog_do_db = include_database_name
-#binlog_ignore_db = include_database_name
-
-
-[mysqldump]
-quick
-quote-names
-max_allowed_packet = 16M
-
-[mysql]
-#no-auto-rehash # faster start of mysql but no tab completition
-
-[isamchk]
-key_buffer = 16M
-
+# The MariaDB configuration file
+#
+# The MariaDB/MySQL tools read configuration files in the following order:
+# 1. "/etc/mysql/my.cnf" (this file) to set global defaults,
+# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
+# 3. "~/.my.cnf" to set user-specific options.
+#
+# If the same option is defined multiple times, the last one will apply.
+#
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+
+#
+# This group is read both both by the client and the server
+# use it for options that affect everything
+#
+[client-server]
+
+# Import all .cnf files from configuration directory
+!includedir /etc/mysql/conf.d/