Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/06/2021, à 15:57

keokaz

changer de dossier la base de donnée mariadb

Bonjour,
je souhaite modifier l'emplacement de la base de donnée de mariadb qui est sur le disque l'os ubuntu20  de
démarrage sur une carte micro sd.

J'ai monté un disque sur un répertoire qui s'appelle /moodledata et à l'intérieur je souhaite
lui mettre toute la base de donnée qui lui se trouve dans un vrai disque dur de 1To.

dans ce tuto:
https://www.skyminds.net/serveur-dedie- … us-debian/

il montre comment le faire, mais on nous dit cela:

systemctl edit mariadb

on se trouve dans un editeur  joe's , le fichier est vide , est ce normal ?
les raccourcis pour sortir de l'éditeur sont bizzard ...

on nous dit d'entrer le code suivant:

[Service]
ProtectHome = false

le "Home" est t'il liée au nom "home" du dossier du tuto ?
ici je ne souhaite pas mettre dans le /home de mon system mais moodledata.

plus loin on il faut modifier le chemain de datadir mais mon fichier n'a pas la section "[mysqld]"

voici mon my.cnf:

  GNU nano 4.8                         /etc/mysql/my.cnf                                    
# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.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/
!includedir /etc/mysql/mariadb.conf.d/

comment je dois faire correctement les choses ? merci d'avance pour les réponses smile

Dernière modification par keokaz (Le 10/06/2021, à 16:05)


http://lcms.fr/moodle2/

site pédagogique informatique,electronique

Hors ligne

#2 Le 10/06/2021, à 16:23

erresse

Re : changer de dossier la base de donnée mariadb

Bonjour,
Il me semble que le plus simple et le plus sécurisant est de ne PAS modifier la configuration de ton application.
Puisque tu veux simplement changer le support de la base de données, tu peux la transférer à son nouvel emplacement, puis simplement créer à l'ancien emplacement un lien symbolique qui pointe vers la nouvelle destination.
De cette manière, l'application ne saura pas que la base a changé d'emplacement puisqu'elle sera toujours censée être au même endroit dans ton système, mais en réalité, cette adresse sera seulement un lien qui renverra vers la véritable adresse de la base.
1 - Tu déplaces la base de données à l'emplacement de ton choix.
2 - Tu crées un lien symbolique à l'ancien emplacement de la base pour renvoyer vers la nouvelle adresse.
Commandes :

cd <emplacement actuel de la base>
mv <base de données> /chemin/nouvel/emplacement/<base de données>
ln -s /chemin/nouvel/emplacement/<base de données> <base de données>

Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 10/06/2021, à 19:19

bruno

Re : changer de dossier la base de donnée mariadb

@erresse : as-tu essayé la manipulation que tu proposes ? Je doute qu'elle fonctionne telle quelle sans adapter les droits d'accès et le profil apparmor. Et attention il arrêter le service avant ce genre de manipulation.

@keokaz : le tuto que tu indiques me semble relativement(*) correct mais il faut comprendre ce qui est proposé et l’adapter à ton cas. En particulier tu n'utilises pas /home mais un autre dossier : la manipulation sur l'unité de service systemd est donc inutile. Pour la directive datadir regarde bien les deux dernières lignes de ton fichier my.cnf wink

(*) l'auteur utilise /home/mysql ce qui est en soi une mauvaise idée et diminue la sécurité en autorisant le service à accéder. globalement à /home

Hors ligne

#4 Le 11/06/2021, à 05:29

keokaz

Re : changer de dossier la base de donnée mariadb

merci de la réponse,
dans le premier dossier il est vide:

etc/mysql/conf.d$ ls -la
total 8
drwxr-xr-x 2 root root 4096 Jun 10 13:48 .
drwxr-xr-x 4 root root 4096 Jun 10 14:49

j'ai donc aller sur le deuxième include et modifer le path dir avec le

/etc/apparmor.d$ ls -la
total 44
drwxr-xr-x   5 root root  4096 Jun 10 13:48 .
drwxr-xr-x 100 root root 12288 Jun 10 14:34 ..
drwxr-xr-x   2 root root  4096 Nov 22  2018 disable
drwxr-xr-x   2 root root  4096 Apr 24  2018 force-complain
drwxr-xr-x   2 root root  4096 Nov 26  2018 local
-rw-r--r--   1 root root  3222 Mar 11  2020 sbin.dhclient
-rw-r--r--   1 root root  3202 Feb 25  2020 usr.bin.man
-rw-r--r--   1 root root   730 May  9 18:20 usr.sbin.mysqld
-rw-r--r--   1 root root  1575 Feb 11  2020 usr.sbin.rsyslogd

j'ai modifier le fichier en cherchant le datadir:

 sudo grep -R --color datadir /etc/mysql/*
/etc/mysql/mariadb.conf.d/50-server.cnf:#datadir                 = /var/lib/mysql
/etc/mysql/mariadb.conf.d/50-server.cnf:datadir                 = /moodledata/

j'ai lancer ceci:

 sudo rsync -avzh /var/lib/mysql/ /moodledata

Dans cette autre t

uto:
https://opensofty.com/fr/2019/6/6/comme … ur-ubuntu/

il faut executer cette commande:

sudo nano /etc/apparmor.d/tunables/alias

mais le dossier tunables n'existe pas:

/etc/apparmor.d$ ls -la
total 44
drwxr-xr-x   5 root root  4096 Jun 10 13:48 .
drwxr-xr-x 100 root root 12288 Jun 10 14:34 ..
drwxr-xr-x   2 root root  4096 Nov 22  2018 disable
drwxr-xr-x   2 root root  4096 Apr 24  2018 force-complain
drwxr-xr-x   2 root root  4096 Nov 26  2018 local
-rw-r--r--   1 root root  3222 Mar 11  2020 sbin.dhclient
-rw-r--r--   1 root root  3202 Feb 25  2020 usr.bin.man
-rw-r--r--   1 root root   730 May  9 18:20 usr.sbin.mysqld
-rw-r--r--   1 root root  1575 Feb 11  2020 usr.sbin.rsyslogd

j'ai quand même créer le dossier, éditer le fichier alias et fait :

 sudo systemctl restart apparmor
Failed to restart apparmor.service: Unit apparmor.service not found.

Dernière modification par keokaz (Le 11/06/2021, à 06:13)


http://lcms.fr/moodle2/

site pédagogique informatique,electronique

Hors ligne

#5 Le 11/06/2021, à 06:09

MicP

Re : changer de dossier la base de donnée mariadb

Bonjour

Quand tu donnes des retours de commande, il faut aussi donner un retour complet, avec le prompt de départ et de retour de la commande, sinon, il nous manque des informations essentielles.

Par exemple dans ton dernier retour, si le prompt avait été présent, on aurait pu savoir depuis quel répertoire tu avais lancé la commandels -la
Du coup, on ne peut pas savoir quel répertoire est listé, ni le nom d’hôte de la machine, ni avec quel compte utilisateur, ni avec quels privilèges,
et on ne sait pas si le retour est complet ou s'il a été tronqué.

Dernière modification par MicP (Le 11/06/2021, à 06:11)

Hors ligne

#6 Le 11/06/2021, à 06:21

keokaz

Re : changer de dossier la base de donnée mariadb

oui effectivement j'ai volontairement tronqué pur ne pas que google référence le nom du serveur et l'utilisateur (même si c'est peut être inutile ...).
j'ai créer un utilisateur qui a les privilège root. je mettrais pour la prochaine fois root@root

je ne connais pas apparamor, il faut que je regarde à quoi ça sert ce dossier ....
ou que faire un lien symbolique est bien plus simple ?

Dernière modification par keokaz (Le 11/06/2021, à 06:23)


http://lcms.fr/moodle2/

site pédagogique informatique,electronique

Hors ligne

#7 Le 11/06/2021, à 07:26

bruno

Re : changer de dossier la base de donnée mariadb

J'espère que tu as bien pensé à arrêter le service avant tes manipulations :

sudo systemctl stop mysql

Ce que tu observes avec apparmor semble indiquer qu'il n'est pas installé.
Donnes-nous les retours de :

lsb_release -a
apt policy apparmor

Hors ligne

#8 Le 11/06/2021, à 11:08

erresse

Re : changer de dossier la base de donnée mariadb

@bruno: As-tu déjà essayé de créer un lien symbolique dont les droits seraient différents de ceux de l'objet ciblé ? Moi, je n'y suis JAMAIS parvenu...
Par ailleurs, je n'ai jamais constaté non plus que le système s'aperçoive du déplacement d'un objet dès lors qu'il trouve à l'emplacement où il le cherche un lien qui renvoie sur l'objet ciblé. Mais on ne sait jamais, je pourrais m'apercevoir que j'avais tort...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#9 Le 11/06/2021, à 11:55

bruno

Re : changer de dossier la base de donnée mariadb

@erresse : c'est bien pour cela que je parlais de problèmes de droits d'accès. Le nouvel emplacement doit appartenir à l'utilisateur mysql. Donc a minima il manque une étape dans ce que tu proposes en #2. Mais j'avoue que ce n'est pas clair ce que tu déplaces avec la commande mv, qui a priori devrait conserver les propriétaire, groupe et permissions.

Pour ce type de changement, je préfère de loin un vrai déplacement de dossier à un endroit approprié (/srv/mysql, par exemple) que l'utilisation de liens symboliques. Je trouve que cela complique l'administration du système et introduit des risques de mauvaise manipulation. Bien entendu chacun fait comme il veut et je conçois parfaitement que tu trouves cela plus simple ou plus pratique.

Hors ligne

#10 Le 13/06/2021, à 16:50

keokaz

Re : changer de dossier la base de donnée mariadb

voici les commandes :

root@root:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal
root@root:~$ systemctl status mysql
● mariadb.service - MariaDB 10.3.29 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Thu 2021-06-10 14:22:57 UTC; 3 days ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 3783 (code=exited, status=0/SUCCESS)
     Status: "MariaDB server is down"

pour les droits la commande ne suffit pas ?

sudo rsync -avzh /var/lib/mysql/ /moodledata

en faisant cette commande à l'intérieur de moodledata, j'ai un dossier "mysql" qui est créer...

comme le dossier appArmor était la je me suis pas posé la question s'il 'était bien installer .

systemctl status apparmor
Unit apparmor.service could not be found.
 root@root   apt policy apparmor
apparmor:
  Installed: (none)
  Candidate: 2.13.3-7ubuntu5.1
  Version table:
     2.13.3-7ubuntu5.1 500
        500 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 Packages
     2.13.3-7ubuntu5 500
        500 http://ports.ubuntu.com/ubuntu-ports focal/main arm64 Packages

Sinon si je tentais de me connecté à mysql si j'arrive à me connecté dessus  ? ou il faut que je régle ce souci de apparmor ?
si je l'installe j'espère que cela ne va pas tout perturber sinon je vais devoir recommencer ?

Dernière modification par keokaz (Le 13/06/2021, à 16:56)


http://lcms.fr/moodle2/

site pédagogique informatique,electronique

Hors ligne

#11 Le 13/06/2021, à 18:53

bruno

Re : changer de dossier la base de donnée mariadb

Il faut modifier ta directive datadir

datadir =  = /moodledata/mysql

et relancer le serveur mysql :

sudo systemctl restart mysql

Cela devrait suffire vu que apparmor n'est pas installé (bizarre sur une Ubuntu…)

Hors ligne

#12 Le 13/06/2021, à 19:25

keokaz

Re : changer de dossier la base de donnée mariadb

j'ai redémarrer mysql est cela à marché.
J'ai maintenant un problème de mots de passe, quand je fait un

sudo mysql -u root -p"nimportequoi"

j'arrive à l'invite de commande quelque sois le mot de passe ?
normalement l'accès devrais mêtre refusé ?
j'ai donc rétenter de faire un mysql_secure_installation mais c'est la même chose en mettant "root" en mote de passe".

sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

comment je dois faire pour mettre de l'ordre sur les mots de passe de mysql ?

MariaDB [mysql]> select * from user;
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+---------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-------------+-----------------------+------------------+---------+--------------+--------------------+
| Host      | User | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | Delete_history_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin      | authentication_string | password_expired | is_role | default_role | max_statement_time |
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+---------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-------------+-----------------------+------------------+---------+--------------+--------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      | Y                   |          |            |             |              |             0 |           0 |               0 |                    0 | unix_socket |

ce que je ne comprend pas c'est que dès que j'utilise sudo mysql, on peut être n'importe quel mot de passe alors qu'il devrait que accépter que le mots de pass "root".

Dernière modification par keokaz (Le 13/06/2021, à 20:19)


http://lcms.fr/moodle2/

site pédagogique informatique,electronique

Hors ligne

#13 Le 14/06/2021, à 07:04

bruno

Re : changer de dossier la base de donnée mariadb

C'est parfaitement normal, regarde la doc mysql (point 3.1 Authetiification) et la doc mariadb

Hors ligne