web-dev-qa-db-fra.com

Mot de passe par défaut de mysql sur le serveur Ubuntu 16.04

J'ai installé le serveur Ubuntu 16.04. Le serveur Mysql y était installé par défaut. Lorsque j'essaie d'accéder à mysql avec mysql -u root -p, je ne parviens pas à me connecter à mysql car je n'ai pas le mot de passe. Y a-t-il un mot de passe par défaut?

J'ai aussi essayé avec --skip-grant-tables, même cela ne fonctionne pas. Même essayer de se connecter avec seulement mysql -u root est un échec.

17
Debashisenator

C'est ce que vous recherchez:
Sudo mysql --defaults-file=/etc/mysql/debian.cnf
MySql sous Linux Debian utilise généralement un fichier de configuration avec les informations d'identification.

41
Maoz Zadok

Mysql par défaut a le plug-in d'authentification de l'utilisateur root sous la forme auth_socket, ce qui nécessite que le nom d'utilisateur du système et le nom d'utilisateur de la base de données soient identiques. 

Plus précisément, connectez-vous en tant que root ou Sudo -i et tapez simplement mysql et vous serez connecté en tant que mysql root. Vous pourrez ensuite créer d'autres utilisateurs.

Si vous n'avez pas de racine sur l'hôte, j'imagine que vous ne devriez pas être autorisé à vous connecter à mysql en tant que root?

24
Harper

Vous pouvez simplement réinitialiser le mot de passe root en exécutant le serveur avec --skip-grant-tables et en vous connectant sans mot de passe en exécutant ce qui suit en tant que root ou avec Sudo:

service mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

# service mysql stop
# service mysql start
$ mysql -u root -p
12
Shakti Phartiyal

Je pense qu'un autre endroit à regarder est /var/lib. Si vous y allez, vous pouvez voir trois dossiers mysql avec des autorisations 'intéressantes':

user   group 
mysql  mysql

Voici ce que j'ai fait pour résoudre mon problème avec le mot de passe root:

après avoir couru

Sudo apt-get purge mysql*
Sudo rm -rf /etc/mysql

J'ai aussi couru ce qui suit (au lieu de mon_username mettez le votre):

cd /var/lib
Sudo chown --from=mysql <my_username> mysql* -R
Sudo rm -rf mysql*

Et alors:

Sudo apt-get install mysql-server

ce qui m'a incité à sélectionner un nouveau mot de passe root . J'espère que cela aide

4
Leo Skhrnkv
  1. le premier, vous devriez arrêter mysql
  2. utiliser cette commande Sudo mysqld_safe --skip-grant-tables --skip-networking &
  3. puis saisissez mysql -u root essayez de cette façon, mon problème avec cette méthode a été résolu.
3
qingliu

J'ai eu une nouvelle installation de mysql-server sur Ubuntu 18.10 et je n'ai pas pu me connecter avec le mot de passe par défaut. Alors seulement, j'ai appris que l'utilisateur root par défaut est authentifié avec auth_socket. Donc, comme dans la réponse lorsque le plugin a été remplacé par mysql_native_password, nous pouvons utiliser le mot de passe par défaut mysql 

$ Sudo apt install mysql-server
$ Sudo cat /etc/mysql/debian.cnf

Vous pouvez trouver les lignes suivantes ici

user     = debian-sys-maint
password = password_for_the_user

Ensuite:

$ mysql -u debian-sys-maint -p
Enter password: 

tapez le mot de passe de debian.cnf

mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT; 

Non plus:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Ou:

// Pour MySQL 5.7+

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
3
Yasii

Il suffit de lancer Sudo dpkg-reconfigure mysql-server-5.7

Vous pouvez trouver la version que vous avez installée en exécutant dpkg --get-selections | grep mysql-server

1
rynop