Page 1 of 1
Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 15:08
by gumble
Hallo,
ich habe auf einem bestehendem Debian mit Plesk 8.1.1 (Plesk-Version psa v8.1.1_build81070322.16 os_Debian 3.1 ; Betriebssystem Linux 2.6.8-3-686-smp) und MySQL 4.1 Server, ein MySQL 5.0.37 installiert.
Das MySQl 5 läuft auf Port 3307 und lässt sich auch über die Console ansprechen und Einträge vornehmen.
Das Problem ist allerdings der Zugriff von "extern". Ein telnet auf Port 33307 von einem anderen Server gibt mir immer nur "LHost "xxx.xxxx.xx" is not allowed to connect to this MySQL serverConnection closed by foreign host". Von localhost bekommt man allerdings einen Prompt.
In der my.cnf ist skip-networking auskommentiert und auch sonst eigentlich alles so eingestellt das solche in Zugriff erlaubt ist.
Versuch ich nun auf den Server per phpMyAdmin zuzugreifen, bekomm ich immer ein "#1045 - Access denied for user 'root'@'localhost' (using password: YES) "
Auf die MysQL 4 DB kann ich Problemlos peer telnet und PHP zugreifen.
Die Condatei des phpMyAdmin habe ich auch für das MySQL 5 entsprechen angepasst:
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port'] = '3307'; // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket'] = '/var/run/mysqld5/mysqld.sock'; // Path to the socket - leave blank for default socket
Das MySQL 5 läuft mit folgenden Parametern auf dem Server:
7385 pts/1 S 0:00 /bin/sh /usr/local/mysql5/bin/mysqld_safe --datadir=/var/lib/mysql5 --pid-file=/var/lib/mysql5/soft-works.housingnetz.net.pid
7414 pts/1 S 0:00 /usr/local/mysql5/libexec/mysqld --basedir=/usr/local/mysql5 --datadir=/var/lib/mysql5 --user=mysql --pid-file=/var/lib/mysql5/soft-works.housingnetz.net.pid --skip-external-locking --port=3307 --socket=/var/run/mysqld5/mysqld.sock
Hat jemand vieleicht eine Idee wie ich es hinbekomme auf MySQl per PHP zuzugreifen??
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 15:36
by isotopp
Gumble wrote:Hat jemand vieleicht eine Idee wie ich es hinbekomme auf MySQl per PHP zuzugreifen??
Code: Select all
# lsof -i -n -P | grep LIST
...
# grep bind-add /etc/my.cnf
...
# grep skip-netw /etc/my.cnf
...
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 15:45
by gumble
Reicht die Zeile?
mysqld 7414 mysql 13u IPv4 22467 TCP *:3307 (LISTEN)
grep bind-add /usr/local/mysql5/my.cnf => kein Eintrag
grep skip-netw /usr/local/mysql5/my.cnf => #skip-networking
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 16:00
by isotopp
Gumble wrote:Code: Select all
Reicht die Zeile?
mysqld 7414 mysql 13u IPv4 22467 TCP *:3307 (LISTEN)
Da lauscht also ein mysqld auf *:3307, das ist so weit korrekt. Mit "mysql -h <deineip> -P 3307 -u root -p" solltest Du den ansprechen können. Wenn nicht, mal "iptables -L -n" checken.
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 16:07
by gumble
Versuche von der ssh Console:
/usr/local/mysql5/bin/mysql -h localhost -P 3307 -u root -p => Login klappt
/usr/local/mysql5/bin/mysql -h 127.0.0.1 -P 3307 -u root -p => Login klappt
/usr/local/mysql5/bin/mysql -h 62.141.58.43 -P 3307 -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'soft-works.housingnetz.net' (using password: YES)
:-(
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 16:14
by isotopp
Gumble wrote:/usr/local/mysql5/bin/mysql -h 62.141.58.43 -P 3307 -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'soft-works.housingnetz.net' (using password: YES)
Ah, wir kriegen "Access denied" und nicht "Can't connect ... (111). Das ist ja schon mal was. Dann redest Du schon mit dem mysqld, nur der läßt Dich nicht rein.
Also mal
Code: Select all
mysql> select * from mysql.user where user = "root";
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 16:32
by gumble
isotopp wrote:
Code: Select all
mysql> select * from mysql.user where user = "root";
Ich hoffe mal das ist so lesbar?
Code: Select all
mysql> select * from mysql.user where user = "root";
+----------------------------+------+-------------------------------------------+-------------+-------------+-------------+-------------+----- --------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+------- -------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+------- ---------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+- ------------+-----------------+----------------------+
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Crea te_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_d b_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_v iew_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+----------------------------+------+-------------------------------------------+-------------+-------------+-------------+-------------+----- --------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+------- -------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+------- ---------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+- ------------+-----------------+----------------------+
| localhost | root | *00A51F3F48415C7D4E8908980D443C29C69B60C9 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 |
| soft-works.housingnetz.net | root | | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 |
+----------------------------+------+-------------------------------------------+-------------+-------------+-------------+-------------+----- --------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+------- -------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+------- ---------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+- ------------+-----------------+----------------------+
2 rows in set (0.00 sec)
mysql>
Ich glaub mal eher nicht.
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 17:28
by flo
Für Isotopp schon ... :-)
Code: Select all
mysql> select * from mysql.user where user = "root" G;
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 18:01
by isotopp
Gumble wrote:isotopp wrote:
Code: Select all
mysql> select * from mysql.user where user = "root";
Ich hoffe mal das ist so lesbar?
Gut genug. Was Du hier hast sind 2 User, einer root@localhost und einer
root@soft-works.housingnetz.net - in MySQL ist ein User nie "user", sondern immer "user"@"host". Du kannst also laut Tabelle von diesen beiden Hosts als root einloggen.
Wenn Du "root"@"soft-works.housingnetz.net" in "root"@"%" umänderst, kann jeder der das Paßwort kennt oder errät von überall im Internet auf Deinem Datenbankserver root werden. Wenn es das ist, was Du möchtest, führe
Code: Select all
mysql> update mysql.user set host = "%" where user = "root" and host = "soft-works.housingnetz.net";
mysql> flush privileges;
aus.
Wenn Dir das zu risikoreich ist, müssen wir uns überlegen, ob es da nicht bessere Lösungen gibt.
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 20:45
by gumble
isotopp wrote:
Code: Select all
mysql> update mysql.user set host = "%" where user = "root" and host = "soft-works.housingnetz.net";
mysql> flush privileges;
Hab ich gemacht, aber leider kommt auf der Console immer noch:
Code: Select all
soft-works:~# /usr/local/mysql5/bin/mysql -h soft-works.housingnetz.net -P 3307 -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'soft-works.housingnetz.net' (using password: YES)
Und auch mein phpMyAdmin meldet sich mit:
Code: Select all
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
:?
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-12 21:52
by isotopp
[quote="Gumble"]
Code: Select all
mysql> select * from mysql.user where user = "root";
| localhost | root | *00A51F3F48415C7D4E8908980D443C29C69B60C9 |
Der hat ein Paßwort - welches auch immer.
Code: Select all
| soft-works.housingnetz.net | root | |
Der hier eher nicht. Das ist ja mal nicht so gut.
Re: Zugriff auf MySQL5.0 nur von der Console möglich
Posted: 2007-04-13 08:32
by gumble
Das mit dem Passwort habe ich dann auch gesehen, daran lag es wirklich das man sich nicht von der Console einloggen konnte.
Mit dem PHP hat sich dann nach vielem Testne herausgefunden, das ich nur via Socket auf die 5er VErsion zugreifen konnte. Zugriffe via tcp, obwohl auf den Hostnamen und nicht auf localhost brach er immer beim Handshake ab.
Ich habe dann nochmal ein fertiges binary installiert und seltsamerweise lief es da nun, ich wusste ja nun wegen den Passwörter usw. Bescheid.
ICh vermute mal das irgendwas beim compilieren der ersten 5er VErsion falsch gelaufen ist :-/
Trotzdem möchete ich mal isotopp für die SUPER HILFE danken! Ohne die Ansätze hing ich wohl immer noch fest!