Aujourd'hui, je voulais créer une base de données dans PMA. Il disait: "Impossible de se connecter au serveur MySQL". J'ai essayé via un terminal, même problème, et c'est parce que mon mot de passe est erroné. Et je ne comprends pas pourquoi.
J'ai essayé la méthode habituelle pour réinitialiser le mot de passe root (ignorer le montage des tables d'attribution et réinitialiser le mot de passe), mais il semble que cela ne fonctionne pas.
Regarde ça:
morgan@rakija:~$ sudo mysqld_safe --skip-grant-tables &
[1] 14016
morgan@rakija:~$ 150802 19:07:25 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
150802 19:07:25 mysqld_safe Logging to '/var/log/mysql/error.log'.
150802 19:07:25 mysqld_safe A mysqld process already exists
[1]+ Terminé 1 sudo mysqld_safe --skip-grant-tables
morgan@rakija:~$ mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.20-MariaDB-0ubuntu0.15.04.1 (Ubuntu)
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> update user set password=PASSWORD("newPass") where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye
morgan@rakija:~$ sudo service mysql restart
morgan@rakija:~$ mysql -uroot -pnewPass
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
. La meilleure solution est donc de continuer à utiliser l’authentification de socket unix par défaut avec commandesudo mysql -u root
, ce qui, à mon avis, est également plus sûr et plus performant.A partir de cette réponse, http://ubuntuforums.org/showthread.php?t=2275033&p=13272227#post13272227 .
Mysql tente d'authentifier la racine en utilisant un plugin, pas un mot de passe. Vous devez désactiver l'utilisation du plug-in pour root.
la source
Could not open mysql.plugin table.
dans le journal des erreurs.Connectez comme décrit précédemment:
Le fichier de log sera montré:
Journal de recherche répertorié (dans ce cas: /usr/local/mysql/data/ab123456.domain.com.err) pour le socket de droite:
et l'utiliser dans la connexion mysql:
la source
$ mysqld_safe --skip-grant-tables 190818 14:13:35 mysqld_safe Logging to '/usr/local/var/mylaptop.local.err'. 190818 14:13:35 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
mais je suis simplement renvoyé à l'invite bash.Par défaut, marriadb utilise le plug-in d'authentification "unix_socket" pour définir les mots de passe. Il doit s'agir de "mot_passe_natif_sql", donc
changer de base de données ..
d'abord voir le plugin est réglé ..
réglez-le sur "mysql_native_password"
définir un nouveau mot de passe ...
la source