it-swarm.com.de

Standardkennwort von mysql im Ubuntu-Server 16.04

Ich habe Ubuntu 16.04 Server installiert. Mein MySQL-Server wurde standardmäßig darin installiert. Wenn ich versuche, mit mysql -u root -p auf das mysql zuzugreifen, kann ich mich nicht bei mysql anmelden, da ich kein Kennwort habe. Gibt es ein Standardkennwort?

Ich habe es auch mit --skip-grant-tables probiert, auch das funktioniert nicht. Selbst der Versuch, sich nur mit mysql -u root anzumelden, ist ein Fehler.

17
Debashisenator

Das ist, was Sie suchen:
Sudo mysql --defaults-file=/etc/mysql/debian.cnf
MySql unter Debian-Base Linux verwendet normalerweise eine Konfigurationsdatei mit den Berechtigungsnachweisen.

41
Maoz Zadok

Mysql hat standardmäßig das Authentifizierungs-Plugin des Root-Benutzers als auth_socket. Dies erfordert, dass der Systembenutzername und der Datenbankbenutzer-Name identisch sind. 

Melden Sie sich insbesondere als root oder Sudo -i an, und geben Sie einfach mysql ein. Sie werden als mysql root angemeldet. Sie können dann andere Benutzer anlegen.

Wenn Sie keinen root auf dem Host haben, sollten Sie sich nicht als root bei mysql anmelden können?

24
Harper

Sie können das root-Passwort einfach zurücksetzen, indem Sie den Server mit --skip-grant-tables ausführen und sich ohne Passwort anmelden, indem Sie Folgendes als root oder mit Sudo ausführen:

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

Ich denke, ein anderer Ort ist /var/lib. Wenn Sie dorthin gehen, sehen Sie drei MySQL-Ordner mit "interessanten" Berechtigungen:

user   group 
mysql  mysql

So habe ich mein Problem mit dem root-Passwort gelöst:

nach dem Rennen

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

Ich habe auch folgendes ausgeführt (statt my_username deins):

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

Und dann:

Sudo apt-get install mysql-server

was mich dazu aufforderte, ein neues root-Passwort auszuwählen .. Ich hoffe, es hilft

4
Leo Skhrnkv
  1. als erstes sollten Sie MySQL stoppen
  2. verwenden Sie diesen Befehl Sudo mysqld_safe --skip-grant-tables --skip-networking &
  3. und dann Eingabe mysql -u root versuchen Sie es auf diese Weise, ich habe mein Problem mit dieser Methode gelöst.
3
qingliu

Ich hatte eine neue Installation von mysql-server auf Ubuntu 18.10 und konnte mich nicht mit dem Standardkennwort anmelden. Dann habe ich nur erfahren, dass der root-Benutzer standardmäßig mit auth_socket authentifiziert wird. Wie in der Antwort, als das Plugin in mysql_native_password geändert wurde, können Sie das Standardkennwort für mysql verwenden 

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

Dort finden Sie die folgenden Zeilen

user     = debian-sys-maint
password = password_for_the_user

Dann:

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

geben Sie das Passwort von debian.cnf ein

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; 

Entweder:

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

Oder:

// Für MySQL 5.7 und höher

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

Einfach Sudo dpkg-reconfigure mysql-server-5.7 ausführen

Sie finden die installierte Version, indem Sie dpkg --get-selections | grep mysql-server ausführen.

1
rynop

Obwohl dies eine alte Frage ist, haben einige von uns immer noch Schwierigkeiten, eine Antwort zu finden. Zumindest habe ich getan. Bitte befolgen Sie nicht alle langwierigen Lösungen. Sie können sich einfach als root bei Ihrem mysql anmelden, ohne ein Kennwort anzugeben (vorausgesetzt, es handelt sich um eine Neuinstallation oder Sie haben das Kennwort seit Ihrer Installation nicht geändert), indem Sie vor Ihrem mysql-Befehl Sudo hinzufügen. $Sudo mysql -uroot -p mysql> Dies liegt daran, dass mysql das Sicherheitsmodell in einer der neuesten Versionen geändert hat.

Hoffe das hilft

0
BeNiza