mysql 5.6 scheint eine neue Option --random-passwords für mysql_install_db zu haben, mit der ich das Root-Passwort ermitteln kann: http://dev.mysql.com/doc/refman/5.6/en/mysql-install-db.html# option_mysql_install_db_random-passwords
Aber was kann ich mit MySQL 5.5 machen? Die Dokumentation schlägt vor, dass das Root-Passwort leer sein sollte, aber ich kann anscheinend keine Verbindung mit keinem Passwort (oder einem leeren Passwort) herstellen, sodass ich kein echtes Root-Passwort festlegen kann:
Zum Beispiel:
Ich initialisiere die Datenbank wie folgt:
$ mysql_install_db --no-defaults --user=murrayc --datadir=/tmp/testmysql/data
Ich starte den Server wie folgt:
$ mysqld_safe --no-defaults --user=murrayc --port=3308 --datadir='/tmp/testmysql/data' --socket='/tmp/testmysql/mysqld.sock' --pid-file='/tmp/testmysql/pid'
Aber wenn ich versuche, das Root-Passwort so festzulegen (ich glaube, dass sich --user in diesem Fall auf den MySQL-Benutzer bezieht, nicht auf den Linux-Benutzer):
$ mysqladmin --no-defaults --port=3308 --user=root --password='' password 'somenewpassword'
Ich erhalte diesen Fehler:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
10:41:12 ~$ mysql -uroot --port=3311 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Befehle wie "service mysql restart" gelten für den regulären mysql-Prozess des Systems. Ich initialisiere eine separate Datenbank und starte eine separate mysqld-Instanz.Versuche
mkdir -p var tmp
vorher zu rennenmysql_install_db
.mysql db erstellen ist in meiner situation fehlgeschlagen.
Wenn var und tmp zuvor nicht erstellt wurden und sie als Paras von mysql_install_db verwenden, können wir mysqld erfolgreich starten. Wenn Sie versuchen, MySQL oder Mysqladmin zu verwenden, um eine Verbindung zum Server herzustellen, wurde der Fehler angezeigt: Zugriff für 'root' @ 'localhost' verweigert.
Vielleicht ist die Ursache der Frage bei mir dieselbe.
quelle