HowtoMySQL: Use ${instance} instead of 1

This commit is contained in:
David Prevot 2023-05-17 15:32:07 +02:00
parent 833a2391cb
commit 9b11b2f631

View file

@ -1521,29 +1521,31 @@ systemctl disable --now mariadb
Créer un utilisateur dédié pour l'instance :
~~~
# useradd mysqld1
instance=1
useradd mysqld${instance}
~~~
Créer les dossiers qui vont accueillir le *datadir* et les données temporaire avec les bons droits :
~~~
# mkdir -vp /srv/mysqld_instances/mysqld1 /home/mysqld1-tmp
# touch /var/log/mysqld1.log
# chmod 755 /srv /srv/mysqld_instances
# chown -R mysqld1:mysqld1 /srv/mysqld_instances/mysqld1 /home/mysqld1-tmp /var/log/mysqld1.log
mkdir -vp /srv/mysqld_instances/mysqld${instance} /home/mysqld${instance}-tmp
touch /var/log/mysqld${instance}.log
chmod 755 /srv /srv/mysqld_instances
chown -R mysqld${instance}:mysqld${instance} /srv/mysqld_instances/mysqld${instance} /home/mysqld${instance}-tmp /var/log/mysqld${instance}.log
~~~
Ajouter ces lignes dans `/etc/mysql/mariadb.conf.d/zzz_mysqld1.cnf` :
Ajouter ces lignes dans `/etc/mysql/mariadb.conf.d/zzz_mysqld${instance}.cnf` :
~~~{.ini}
[mysqld1]
user = mysqld1
port = 3307
tmpdir = /home/mysqld1-tmp/
socket = /var/run/mysqld1/mysqld1.sock
pid-file = /var/run/mysqld1/mysqld1.pid
datadir = /srv/mysqld_instances/mysqld1
log_error = /var/log/mysqld1.log
echo "[mysqld${instance}]
user = mysqld${instance}
port = $((3306+${instance}))
tmpdir = /home/mysqld${instance}-tmp/
socket = /var/run/mysqld${instance}/mysqld${instance}.sock
pid-file = /var/run/mysqld${instance}/mysqld${instance}.pid
datadir = /srv/mysqld_instances/mysqld${instance}
log_error = /var/log/mysqld${instance}.log" \
> /etc/mysql/mariadb.conf.d/zzz_mysqld${instance}.cnf
~~~
L'ajout de ces directives permet de désactiver l'héritage des valeurs issue de l'instance principale :
@ -1557,14 +1559,14 @@ slow_query_log = 0
Ajuster les permissions du fichier de configuration:
~~~
# chmod 644 /etc/mysql/mariadb.conf.d/zzz_mysqld1.cnf
chmod 644 /etc/mysql/mariadb.conf.d/zzz_mysqld${instance}.cnf
~~~
Créer manuellement le *datadir* :
~~~
# mysql_install_db --user=mysqld1 --datadir=/srv/mysqld_instances/mysqld1 --defaults-file=/etc/mysql/mariadb.conf.d/zzz_mysqld1.cnf
# chmod 700 /srv/mysqld_instances/mysqld1
mysql_install_db --user=mysqld${instance} --datadir=/srv/mysqld_instances/mysqld${instance} --defaults-file=/etc/mysql/mariadb.conf.d/zzz_mysqld${instance}.cnf
chmod 700 /srv/mysqld_instances/mysqld${instance}
~~~
### Démarrer une instance avec systemd