Donc, j'installe essentiellement mariadb avec mysql sur mon mac en utilisant homebrew. Ce sont les étapes que j'ai faites:
mysql_install_db -> Échec
AVERTISSEMENT: l'hôte "Toms-MacBook-Pro.local" n'a pas pu être recherché avec /usr/local/Cellar/mariadb/10.4.6_1/bin/resolveip. Cela signifie probablement que vos bibliothèques libc ne sont pas 100% compatibles avec cette version binaire MariaDB. Le démon MariaDB, mysqld, devrait fonctionner normalement à l'exception que la résolution du nom d'hôte ne fonctionnera pas. Cela signifie que vous devez utiliser des adresses IP au lieu de noms d'hôtes lors de la spécification des privilèges MariaDB! La table mysql.user existe déjà!
Fonctionnement mysql_upgrade
m'a ensuite donné l'erreur suivante:
La vérification de la version a échoué. Vous obtenez l'erreur suivante lors de l'appel du client de ligne de commande 'mysql' ERREUR 1698 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' ERREUR FATALE: La mise à niveau a échoué
Je ne peux pas entrer dans mysql comme ceci:
mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
mais comme ça:
Sudo mysql -u root
La table utilisateur renvoie ceci:
MariaDB [(none)]> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> SELECT User, Host, plugin FROM mysql.user;
+---------------+-------------------------+-----------------------+
| User | Host | plugin |
+---------------+-------------------------+-----------------------+
| root | localhost | mysql_native_password |
| toms | localhost | mysql_native_password |
| | localhost | |
| | toms-macbook-pro.local | |
+---------------+-------------------------+-----------------------+
4 rows in set (0.004 sec)
J'utilise ceci mysql_secure_installation
et cela fonctionne maintenant pour moi:
$ 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
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): << enter root here >>
J'entre root
comme mot de passe actuel
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
et fais le reste
MariaDB 10.4 active le plugin d'authentification socket Unix pour la racine locale par défaut. Cela signifie que sur un système fraîchement installé, vous pouvez vous connecter à un serveur en cours d'exécution sans mot de passe, tant que vous êtes une racine locale (par exemple, exécutez sous Sudo
) et en utilisant un socket plutôt que TCP.
De plus, MariaDB 10.4 autorise plusieurs méthodes d'authentification pour les comptes. Il configure la racine locale pour pouvoir également utiliser l'authentification par mot de passe, mais elle invalide initialement le mot de passe (ne définit pas un mot de passe vide comme auparavant). Si vous souhaitez utiliser l'authentification par mot de passe et vous connecter en tant que mysql -uroot -p
, vous devez d'abord vous connecter en tant que root à l'aide du socket Unix et exécuter SET PASSWORD=...
.
La configuration utilisateur avancée est désormais stockée dans mysql.global_priv
table au format JSON. mysql.user
a été conservé pour des raisons de compatibilité descendante, mais il a cessé d'être une table et est devenu une vue. En raison de l'autorisation de plusieurs méthodes d'authentification, il n'affiche pas toujours la configuration utilisateur avec précision. Plus précisément, il n'affiche pas toutes les méthodes d'authentification disponibles pour un utilisateur, vous devez interroger mysql.global_priv
pour ça. Sur une nouvelle installation, vous verrez quelque chose comme
+-----------+--------+--------------------------------------------------------------------------------------------------------------------------------------------+
| Host | User | Priv |
+-----------+--------+--------------------------------------------------------------------------------------------------------------------------------------------+
| localhost | root | {"access":18446744073709551615,"plugin":"mysql_native_password","authentication_string":"invalid","auth_or":[{},{"plugin":"unix_socket"}]} |
...
Vous pouvez trouver plus d'informations sur les modifications de l'authentification 10.4 ici .