Installation de MariaDB en mode secure
zwykx Membre non connecté
-
- Voir le profil du membre zwykx
- Inscrit le : 21/01/2013
- Groupes :
Je viens d'installer quelques mises à jour et en fin d'installation, une fenêtre contenait le texte suivant :
Caché :
NOTE: MariaDB is installed without root password, it is recommended to set the root password with the following command as soon as possible:
# mysql_secure_installation press enter at each question except the new root password.
The initscript used to start mariadb has been reverted to use the one shipped by MariaDB. This means the following changes:
* The generation of the initial system mysql database is now done when mariadb is started from the initscript and only if the /var/lib/mysql/mysql directory is empty (mariadb-install-db). Previousely this was quite hidden and silently done at (rpm) install time. As a consequence to this change you may have to perform some manual tasks to upgrade the mariadb system database and such. So, doing something like this might help you:
systemctl stop mysqld.service TMPDIR=/var/tmp mariadb-install-db systemctl start mysqld.service mariadb-upgrade --skip-write-binlog mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb -D mysql
NOTE: Most mysql commands have equivalents with mariadb prefix. Old mysql commands will show warnings and will be removed in later releases. This also affects the main thread which will be called "mariadb-safe" instead of "mysql-safe".
# mysql_secure_installation press enter at each question except the new root password.
The initscript used to start mariadb has been reverted to use the one shipped by MariaDB. This means the following changes:
* The generation of the initial system mysql database is now done when mariadb is started from the initscript and only if the /var/lib/mysql/mysql directory is empty (mariadb-install-db). Previousely this was quite hidden and silently done at (rpm) install time. As a consequence to this change you may have to perform some manual tasks to upgrade the mariadb system database and such. So, doing something like this might help you:
systemctl stop mysqld.service TMPDIR=/var/tmp mariadb-install-db systemctl start mysqld.service mariadb-upgrade --skip-write-binlog mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb -D mysql
NOTE: Most mysql commands have equivalents with mariadb prefix. Old mysql commands will show warnings and will be removed in later releases. This also affects the main thread which will be called "mariadb-safe" instead of "mysql-safe".
Alors j'ai exécuté la commande :
Code BASH :
# mysql_secure_installation /usr/bin/mysql_secure_installation: Deprecated program name. It will be removed in a future release, use 'mariadb-secure-installation' instead 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 haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): ERROR 2002 (HY000): Can't connect to local server through socket '/var/lib/mysql/mysql.sock' (2) Enter current password for root (enter for none): ERROR 2002 (HY000): Can't connect to local server through socket '/var/lib/mysql/mysql.sock' (2) Enter current password for root (enter for none): Aborting!
J'ai essayé sans mot de passe, puis avec le mot de passe root mais je sors toujours en erreur.
Quelqu'un connait-il un moyen de progresser dans cette installation en "mode secure" ?
Merci pour votre aide.
PC : Z80 SoftCard, CPU Z80, 64 K RAM
Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
Utilises-tu MariaDB ? Ce message apparait à chaque mise à jour de MariaDB. Normalement, si tu utilises déjà MariaDB, tu as dû faire la sécurisation lors de ta première utilisation. Si tu ne l'utilises pas, ne tiens juste pas compte de ce message.
Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
| Arch | Machine | OS |
| x86_64 | lenovo x250 | mga9 |
| armv7hl | bananapro | mga9 |
| aarch64 | Raspberry Pi 4B | mga9 |
Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
https://bugs.mageia.org/show_bug.cgi?id=34749
Yves
zwykx Membre non connecté
-
- Voir le profil du membre zwykx
- Inscrit le : 21/01/2013
- Groupes :
Yuusha :Utilises-tu MariaDB ?
Non, pas en tant que SGBDR, disons plutôt à la manière de M Jourdain ;-/
Mais comme le signale @Jybz, je suis sous Plasma et ma messagerie tourne sous kmail/akonadi.
Donc j'ai un service /usr/sbin/mysqld qui gère tout ça.
Yuusha :tu as dû faire la sécurisation lors de ta première utilisation
Peut-être mais je ne me souviens pas du mot de passe root.
Et si je ne me trompe pas, il s'agit du mot de passe root du SGBD, pas celui du système.
Y a-t-il un moyen de le réinitialiser ?
PC : Z80 SoftCard, CPU Z80, 64 K RAM
Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
zwykx :
Et si je ne me trompe pas, il s'agit du mot de passe root du SGBD, pas celui du système.
Exactement. Je trouve le choix du mot "root" déroutant.
zwykx :Y a-t-il un moyen de le réinitialiser ?
Oui bien sûr ! À la première installation, aucun mot de passe n'a été définit. Même s'il a déjà été initialisé une première fois, il est possible de le réinitialiser.
Mais en as-tu besoin ? As-tu besoin d'initialiser un gestionnaire de base de donnée au niveau système (pas au niveau simple utilisateur, ça akonadi a très bien su le faire).
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
| Arch | Machine | OS |
| x86_64 | lenovo x250 | mga9 |
| armv7hl | bananapro | mga9 |
| aarch64 | Raspberry Pi 4B | mga9 |
nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Il faut distinguer l' utilisation en temps que serveur local ( donc en réel serveur MariaDB) aux instances qui sont lancées par d' autres processus ( ici Akonadi).
Akonadi lance sa propre instance qui serait différente d' une utilisation en serveur de base de données "brut" ( type LinuxApacheMysqlPhp).
Ici le mysql_secure_installation tente de se connecter à une instance globale au pc. Si le service mysqld n' est pas lancé, aucune socket n' est ouverte et donc le script ne trouve aucune connexion possible d' où l' erreur. Le service mysqld est il lancé ?
Si non et que l' on souhaite modifier le mdp root de l' instance SQL, il faut d' abord lancer le service puis lancer le script
zwykx Membre non connecté
-
- Voir le profil du membre zwykx
- Inscrit le : 21/01/2013
- Groupes :
Désolé pour la réponse tardive. La notification était perdue dans une pile de mails à lire.
Alors, je ne saisis pas toutes les subtilités de l'utilisation de mysql/mariadb dans Plasma.
nic80 :Ici le mysql_secure_installation tente de se connecter à une instance globale au pc. Si le service mysqld n' est pas lancé, aucune socket n' est ouverte et donc le script ne trouve aucune connexion possible d' où l' erreur. Le service mysqld est il lancé ?
Réponse : oui, il est en effet lancé par akonadi.
Code BASH :
# ps -ef | grep mysql zwykx 3381161 3381154 6 16:50 ? 00:00:02 /usr/sbin/mysqld --defaults-file=/home/zwykx/.local/share/akonadi/mysql.conf --datadir=/home/zwykx/.local/share/akonadi/db_data/ --socket=/run/user/1000/akonadi/mysql.socket --pid-file=/run/user/1000/akonadi/mysql.pid root 3381967 1994358 0 16:50 pts/25 00:00:00 grep --color mysql
mais le seul moyen que j'ai trouvé (sur https://dev.mysql.com/doc/refman/8.4/en/resetting-permissions.html), c'est de démarrer le service en tant que root avec l'option --skip-grant-tables :
Code BASH :
# mysqld --skip-grant-tables --skip-networking& [1] 3379425 # mysqld: Deprecated program name. It will be removed in a future release, use '/usr/sbin/mariadbd' instead 2025-12-18 17:00:18 0 [Note] Starting MariaDB 11.4.9-MariaDB source revision aa6a2e6bf05d43c3bb44db50566937a5f97a6580 server_uid JR9oG5oj2cr0NnhCcaUx4F3QuyA= as process 3379425 2025-12-18 17:00:18 0 [Note] InnoDB: Compressed tables use zlib 1.2.13 2025-12-18 17:00:18 0 [Note] InnoDB: Number of transaction pools: 1 2025-12-18 17:00:18 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions 2025-12-18 17:00:18 0 [Note] InnoDB: Using Linux native AIO 2025-12-18 17:00:18 0 [Note] InnoDB: innodb_buffer_pool_size_max=128m, innodb_buffer_pool_size=128m 2025-12-18 17:00:18 0 [Note] InnoDB: Completed initialization of buffer pool 2025-12-18 17:00:18 0 [Note] InnoDB: File system buffers for log disabled (block size=512 bytes) 2025-12-18 17:00:18 0 [Note] InnoDB: End of log at LSN=37295 2025-12-18 17:00:18 0 [Note] InnoDB: Opened 3 undo tablespaces 2025-12-18 17:00:18 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active. 2025-12-18 17:00:18 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ... 2025-12-18 17:00:18 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB. 2025-12-18 17:00:18 0 [Note] InnoDB: log sequence number 37295; transaction id 5 2025-12-18 17:00:18 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool 2025-12-18 17:00:18 0 [Note] InnoDB: Buffer pool(s) load completed at 251218 17:00:18 251218 17:00:18 server_audit: MariaDB Audit Plugin version 1.4.14 STARTED. 251218 17:00:18 server_audit: Query cache is enabled with the TABLE events. Some table reads can be veiled.2025-12-18 17:00:18 0 [Note] Plugin 'wsrep-provider' is disabled. 2025-12-18 17:00:18 0 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist 2025-12-18 17:00:20 0 [Warning] Can't open and lock time zone table: Table 'mysql.time_zone_leap_second' doesn't exist trying to live without them 2025-12-18 17:00:20 1 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1146: Table 'mysql.gtid_slave_pos' doesn't exist 2025-12-18 17:00:20 0 [Note] mysqld: ready for connections. Version: '11.4.9-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 0 Mageia MariaDB Server
et ça commence mal :
Code BASH :
2025-12-18 17:00:18 0 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
j'arrive à me connecter, il voit la base mysql, mais elle est vide :
Code SQL :
# mysql mysql: Deprecated program name. It will be removed IN a future release, USE '/usr/bin/mariadb' instead Welcome TO the MariaDB monitor. Commands END WITH ; OR \g. Your MariaDB connection id IS 3 Server version: 11.4.9-MariaDB Mageia MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab AND others. TYPE 'help;' OR '\h' FOR help. TYPE '\c' TO clear the CURRENT INPUT statement. MariaDB [(NONE)]> SHOW DATABASES; +--------------------+ | DATABASE | +--------------------+ | information_schema | | mysql | +--------------------+ 2 ROWS IN SET (0,000 sec) MariaDB [(NONE)]> USE mysql; DATABASE changed MariaDB [mysql]> SHOW TABLES; Empty SET (0,001 sec) MariaDB [mysql]> FLUSH PRIVILEGES; 2025-12-18 17:01:54 3 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.db' doesn't exist 2025-12-18 17:01:54 3 [ERROR] Can't open and lock privilege tables: Table 'mysql.db' doesn't exist ERROR 1146 (42S02): TABLE 'mysql.db' doesn't exist
Alors il faudrait utiliser un autre moyen ou effacer tous les fichiers mysql dans /var/lib/mysql et ré-installer mariadb.
Mais dans ce cas, je risque de plus retrouver mes mails.
En plus, si je désinstalle mariadb, ça risque de désinstaller aussi Plasma.
PC : Z80 SoftCard, CPU Z80, 64 K RAM
Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Je ne comprends pas l'objectif que tu poursuis.
1/ Tu n'as pas exprimé de besoin d’utiliser une base de données
2/ la seule utilisation de mariadb est faite par akonadi
Donc tu laisses akonadi gérer sa base.
Ma compréhension est que tu n'as rien de spécial à faire.
Yves
zwykx Membre non connecté
-
- Voir le profil du membre zwykx
- Inscrit le : 21/01/2013
- Groupes :
Je pense que le premier point d'entrée des malwares dans le système est la messagerie (avant les sites internet vérolés).
Je reçois quotidiennement des e-mails suspects et une attaque par injection sql pourrait être utilisée contre Kmail puisqu'il utilise une base de données SQL.
Je précise qu'il y a eu des périodes récentes où kmail fonctionnait très mal notamment pour la suppression d'anciens mails où il partait dans une boucle de traitement interminable.
Il fallait alors faire un kill sur kmail et tout ce qui lui était lié (services akonadi, bdd mysql) et le redémarrer.
Bon, pour l'instant, c'est stable.
PC : Z80 SoftCard, CPU Z80, 64 K RAM
nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Pas sur que connaitre le mot de passe root de l' instance d' Akonadi protège d' une injection sql. Si injection SQL il y a, c' est qu' il y a un problème de vérification du côté programme client ( ici en l' occurence kmail/akonadi) et cela impacte uniquement la base relative à Akonadi. Dans le pire des cas, l' injection permet une escalade de privilège, mais dans ce cas là le mot de passe root de MariaDB n' est pas vraiement nécessaire
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie