• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

kann nicht zu mysql verbinden (local)

pospiech

Hacker
Ich habe auf opensuse 11.0 mysql installiert:
libmysqlclient15-5.0.51a-27.1
libqt4-sql-mysql-4.4.3-28.1
mysql-tools-5.0.51a-27.1
libmysqlclient_r15-5.0.51a-27.1
perl-DBD-mysql-4.006-41.1
mysql-gui-tools-5.0r12-195.1
mysql-client-5.0.51a-27.1
mysql-5.0.51a-27.1
mysql-query-browser-5.0r12-195.1
mysql-workbench-5.0r12-195.1
php5-mysql-5.2.6-0.6

und gestartet:
# /etc/init.d/mysql start
Updating MySQL privilege database...
Looking for 'mysql' in: /usr/bin/mysql
Looking for 'mysqlcheck' in: /usr/bin/mysqlcheck
Running 'mysqlcheck'...
mysql.columns_priv OK
mysql.db OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.proc OK
mysql.procs_priv OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Running 'mysql_fix_privilege_tables'...
OK
Starting service MySQL

wenn ich nun aber ein Passwort festlegen will bekomme ich die Fehlermeldung:
localhost:# mysqladmin -u=root password xxx
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user '=root'@'localhost' (using password: NO)'
(egal ob und welches Passwort ich angebe)

Was soll das? Früher hat es funktioniert.
 
OP
P

pospiech

Hacker
panamajo schrieb:
pospiech schrieb:
error: 'Access denied for user '=root'@'localhost' (using password: NO)'
Statt -u=root -u root verwenden?
dass ändert nichts. Das hatte ich vorher verwendet.
localhost:/etc # mysqladmin -u root password xxx
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

Ob das "password: YES" oder "password: NO" steht hat auch überhaupt nichts mit der Eingabe zu tun, sondern nur damit was in /etc/my.cnf steht
# The following options will be passed to all MySQL clients
[client]
#password =xxx
port = 3306
socket = /var/lib/mysql/mysql.sock

Meine Idee dazu : Suse geht irgenteinen Sonderweg und verhindert damit das alle üblichen Methoden funktionieren.
Wie also funktioniert mysql unter Suse?
 

panamajo

Guru
pospiech schrieb:
Ob das "password: YES" oder "password: NO" steht hat auch überhaupt nichts mit der Eingabe zu tun, sondern nur damit was in /etc/my.cnf steht
Kann ich nicht nachvollziehen:
Code:
jo@l33t ~> mysql -u jo -p jo
Enter password:
ERROR 1045 (28000): Access denied for user 'jo'@'localhost' (using password: YES)
jo@l33t ~> mysql -u jo -p jo
Enter password:
ERROR 1045 (28000): Access denied for user 'jo'@'localhost' (using password: NO)
Beim 1. mal ein falsches PW eingegeben, beim 2. mal keines.

pospiech schrieb:
Meine Idee dazu : Suse geht irgenteinen Sonderweg und verhindert damit das alle üblichen Methoden funktionieren.
Wie also funktioniert mysql unter Suse?
Da hier immer wieder ähnliche Probleme geschildert werden habe ich mir die Mühe gemacht MySQL auf einem Laptop neu zu installieren:
Code:
# zypper in mysql mysql-client
Damit sind Server und Client installiert. Wenn der Server zum 1. mal gestartet wird werden die Einstellungen initialisiert:
Code:
# rcmysql start
Und genau wie üblich wird die mysql DB angelegt mit einem Benutzer namens root, für den kein PW vergeben wird. Man kann also entweder ohne PW oder mit (ohne eines einzugeben) zur DB mysql verbinden und dann weitere Benutzer anlegen und dem root Benutzer ein PW vergeben. Auch das ändern via mysqladmin
Code:
$ mysqladmin -u root password dasneuepw
funktioniert.

Ich habe keine Ahnung was die Leute anstellen die hier Ihre Probleme schildern, die openSUSE Pakete sind jedenfalls in Ordnung.
Denkbar wäre dass evtl. vorher installierte, nicht zur openSUSE Dist. gehörigen Pakete (xampp etc.) da querschlagen weil sie dieselben Verzeichnise verwenden, aber in diesem Thread wurde nicht dbzgl. genannt.

MySQL funktioniert unter openSUSE genauso wie spezifiziert und unter anderen Systemen/Dists auch.
 
OP
P

pospiech

Hacker
panamajo schrieb:
MySQL funktioniert unter openSUSE genauso wie spezifiziert und unter anderen Systemen/Dists auch.
Das mag ja sein, bis zur letzten von mir verwendeten Version 10.2 hatte ich auch noch nie ein Problem. Jetzt habe ich Version 11.0 installiert und nichts geht.

Kann ich irgentwie mysql wieder auf Auslieferungszustand zurückversetzen, also insbesondere alle Passworter löschen? Das System neu installieren ist dabei keine mögliche Option - auch wenn ich einige Foreneinträge über Google finden die bei ähnlichen Problemen auch keine bessere Lösung wussten...

Und was hat die my.cnf mit den Passworten zu tun?
 
OP
P

pospiech

Hacker
Hat
localhost:/var/log # mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

bei eine nichtexistierenden Datei "/var/lib/mysql/mysql.sock" etwas zu bedeuten?

Nebenbei, meine Fehlerbeschreibung deckt sich identisch mit
http://www.linux-club.de/viewtopic.php?f=36&t=99169

EDIT:
Mit folgender Beschreibung konnte ich ein neues Passwort setzen:
http://www.linux-fuer-blinde.de/97-0-vergessenes-root-kennwort-neu-festlegen.html

Aber: Jetzt kann ich mysql nicht mehr starten:
localhost:/var/lib/mysql # /etc/init.d/mysql start
Starting service MySQL warning: /var/lib/mysql/mysql.sock didn't appear within 30 seconds
done
was sich damit deckt das die Datei wirklich nicht existiert.


EDIT2:

mysql deinstalliert /var/lib/mysql gelöscht, mysql wieder installiert und /etc/init.d/mysql start ausgeführt. Ich bekomme exakt denselben Fehler wie beim ersten Mal:
localhost:/var/lib/mysql # /etc/init.d/mysql start
Creating MySQL privilege database...
Installing MySQL system tables...
ERROR: 1062 Duplicate entry 'localhost-' for key 1
081212 22:36:07 [ERROR] Aborting

081212 22:36:07 [Note] /usr/sbin/mysqld: Shutdown complete

Installation of system tables failed!

Examine the logs in /var/lib/mysql for more information.
You can try to start the mysqld daemon with:
/usr/sbin/mysqld --skip-grant &
and use the command line tool
/usr/bin/mysql to connect to the mysql
database and look at the grant tables:

shell> /usr/bin/mysql -u root mysql
mysql> show tables

Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /var/lib/mysql that may be helpful.

The latest information about MySQL is available on the web at
http://www.mysql.com
Please consult the MySQL manual section: 'Problems running mysql_install_db',
and the manual section that describes problems on your OS.
Another information source is the MySQL email archive.
Please check all of the above before mailing us!
And if you do mail us, you MUST use the /usr/bin/mysqlbug script!
failed
 
Oben