mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-02-14 17:49:53 +00:00
166 lines
6.2 KiB
Bash
Executable File
166 lines
6.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# shellcheck disable=SC2034
|
|
|
|
__init_mariadb() {
|
|
set -e
|
|
set -u
|
|
|
|
###################
|
|
# Install mariadb #
|
|
###################
|
|
|
|
# Every package should define these 6 variables
|
|
pkg_cmd_name="mariadb"
|
|
|
|
pkg_dst_cmd="${HOME}/.local/opt/mariadb/bin/mariadb"
|
|
pkg_dst_bin="${HOME}/.local/opt/mariadb/bin"
|
|
pkg_dst_dir="${HOME}/.local/opt/mariadb"
|
|
pkg_dst="${pkg_dst_dir}"
|
|
|
|
pkg_src_cmd="${HOME}/.local/opt/mariadb-v${WEBI_VERSION}/bin/mariadb"
|
|
pkg_src_dir="${HOME}/.local/opt/mariadb-v${WEBI_VERSION}"
|
|
pkg_src="${pkg_src_dir}"
|
|
|
|
pkg_get_current_version() {
|
|
# 'mariadb --version' has output in this format:
|
|
# mariadb (mariadbQL) 17.0
|
|
# This trims it down to just the version number:
|
|
# 17.0
|
|
mariadb --version 2> /dev/null | head -n 1 | cut -d' ' -f3
|
|
}
|
|
|
|
pkg_install() {
|
|
# mkdir -p $HOME/.local/opt
|
|
mkdir -p "$(dirname "$pkg_src")"
|
|
|
|
# mv ./mariadb-11.4.4-linux-systemd-x86_64 "$HOME/.local/opt/mariadb-v11.4.4"
|
|
mv ./"mariadb-"* "$pkg_src"
|
|
}
|
|
|
|
pkg_link() {
|
|
# ln -s "$HOME/.local/opt/mariadb-v17.0" "$HOME/.local/opt/mariadb"
|
|
# for the old mariadb version
|
|
ln -s "$pkg_src" "$pkg_dst"
|
|
if ! test -d ~/.local/opt/mysql; then
|
|
rm -f ~/.local/opt/mysql
|
|
ln -s "mariadb-v${WEBI_VERSION}" ~/.local/opt/mysql
|
|
fi
|
|
}
|
|
|
|
#shellcheck disable=SC2059
|
|
pkg_post_install() {
|
|
b_hostname="$(hostname)"
|
|
|
|
if ! test -e ~/.config/mariadb; then
|
|
mkdir -p ~/.config/mariadb
|
|
chmod 0700 ~/.config/mariadb/
|
|
fi
|
|
|
|
if ! test -e ~/.local/share/mariadb; then
|
|
mkdir -p ~/.local/share/mariadb/
|
|
chmod 0700 ~/.local/share/mariadb/
|
|
mkdir -p ~/.local/share/mariadb/run/
|
|
chmod 0750 ~/.local/share/mariadb/run/
|
|
mkdir -p ~/.local/share/mariadb/var/
|
|
chmod 0750 ~/.local/share/mariadb/var/
|
|
else
|
|
mkdir -p ~/.local/share/mariadb/run/
|
|
mkdir -p ~/.local/share/mariadb/data/
|
|
mkdir -p ~/.local/share/mariadb/var/
|
|
fi
|
|
|
|
printf " $(t_path '~''/.my.cnf') $(t_dim '(sources client & server config)') "
|
|
if test -e ~/.my.cnf; then
|
|
printf -- "$(t_dim 'Found')\n"
|
|
else
|
|
{
|
|
echo '[client]'
|
|
echo '!include /home/app/.config/mariadb/my.cnf'
|
|
echo ''
|
|
echo '[server]'
|
|
echo '!include /home/app/.local/share/mariadb/my.cnf'
|
|
} > ~/.my.cnf
|
|
printf -- "Created\n"
|
|
fi
|
|
|
|
printf " $(t_path '~''/.config/mariadb/my.cnf') $(t_dim '(client config)') "
|
|
if test -e ~/.config/mariadb/my.cnf; then
|
|
printf -- "$(t_dim 'Found')\n"
|
|
else
|
|
{
|
|
echo '[client]'
|
|
echo ' default-character-set = utf8mb4'
|
|
echo ''
|
|
echo " socket = $HOME/.local/share/mariadb/run/mariadbd.sock"
|
|
echo " #host = ${b_hostname}"
|
|
echo ' #port = 3306'
|
|
echo " #user = ${USER}"
|
|
echo " #password = (none)"
|
|
echo " #database = (none)"
|
|
} > ~/.config/mariadb/my.cnf
|
|
printf -- "Created\n"
|
|
fi
|
|
|
|
printf " $(t_path '~''/.local/share/mariadb/my.cnf') $(t_dim '(server config)') "
|
|
if test -e ~/.local/share/mariadb/my.cnf; then
|
|
printf -- "$(t_dim 'Found')\n"
|
|
else
|
|
{
|
|
echo '[server]'
|
|
echo " character-set-server = utf8mb4"
|
|
echo " collation-server = utf8mb4_unicode_ci"
|
|
echo " init-connect = 'SET NAMES utf8mb4'"
|
|
echo ''
|
|
echo " bind-address = 127.0.0.1"
|
|
echo " port = 3306"
|
|
echo " socket = $HOME/.local/share/mariadb/run/mariadbd.sock"
|
|
echo ''
|
|
echo " basedir = $HOME/.local/opt/mariadb/"
|
|
echo " datadir = $HOME/.local/share/mariadb/data/"
|
|
echo " pid-file = $HOME/.local/share/mariadb/run/mariadbd.pid"
|
|
echo " #log-error = $HOME/.local/share/mariadb/var/error.log"
|
|
} > ~/.local/share/mariadb/my.cnf
|
|
printf -- "Created\n"
|
|
fi
|
|
|
|
printf " $(t_path '~''/.local/share/mariadb/data/') $(t_dim '(database)') "
|
|
if test -e ~/.local/share/mariadb/data; then
|
|
printf -- "$(t_dim 'Found')\n"
|
|
else
|
|
printf -- "Initializing ... "
|
|
mkdir -p ~/.local/share/mariadb/data/
|
|
chmod 0700 ~/.local/share/mariadb/data/
|
|
# echo ""
|
|
# echo " Consider joining MariaDB's strong and vibrant community:"
|
|
# echo " https://mariadb.org/get-involved/"
|
|
# echo ""
|
|
~/.local/opt/mariadb/scripts/mariadb-install-db --defaults-file="$HOME/.my.cnf" > /dev/null
|
|
printf -- "OK\n"
|
|
fi
|
|
webi_path_add "$(dirname "$pkg_dst_cmd")"
|
|
}
|
|
|
|
pkg_done_message() {
|
|
b_hostname="$(hostname)"
|
|
|
|
echo ""
|
|
echo " Installed $(t_pkg "mariadb") $(t_dim "(mysql)") as $(t_link '~''/.local/opt/mariadb/bin/mariadb')"
|
|
|
|
echo ""
|
|
echo "To run manually"
|
|
echo " $(t_cmd 'mariadbd-safe') --defaults-file=\"$(t_path "$HOME/.my.cnf")\""
|
|
#mariadbd-safe --defaults-file=$HOME/.my.cnf --print-defaults
|
|
echo ""
|
|
echo "To install as a system service"
|
|
# export MARIADB_HOME=$HOME/.local/opt/mariadb/
|
|
echo " $(t_cmd 'serviceman') add --name mariadb --workdir $(t_path '~''/.local/opt/mariadb/') -- \\"
|
|
echo " $(t_cmd 'mariadbd') --defaults-file=\"$(t_path "$HOME/.my.cnf")\""
|
|
echo ""
|
|
echo "To connect with a client:"
|
|
echo " $(t_cmd 'mariadb') -u 'root' -h 'localhost' $(t_dim '# all-privileges admin')"
|
|
echo " $(t_cmd 'mariadb') -u '${USER}' -h 'localhost' $(t_dim '# all-privileges admin')"
|
|
}
|
|
}
|
|
|
|
__init_mariadb
|