PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql problem



beijo
12.09.07, 15:16
hallo,

diesmal läuft der mysql server in einer eigensdafür vorgesehenen chroot umgebung (/home/chroot/mysql) der user und die usergroup lauten chrmysql

das problem was auftaucht wenn ich ihn starte ist folgendes:



mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


hab nach dem problem nun schon über 4 stunden gegoogled aber kam zu keiner lösung. in der jail exsistiert die mysqld.sock auch !



server:/home/chroot/mysql# ls -al var/run/mysqld
insgesamt 12
drwxr-xr-x 2 chrmysql root 4096 2007-09-12 17:58 .
drwxr-xr-x 4 root root 4096 2007-09-12 16:32 ..
-rw-rw---- 1 chrmysql chrmysql 5 2007-09-12 17:58 mysqld.pid
srwxrwxrwx 1 chrmysql chrmysql 0 2007-09-12 17:58 mysqld.sock


unter prozessen läuft der mysql server per chroot auch:


chrmysql 5607 0.0 2.9 125960 15328 pts/0 Sl 17:58 0:00 | \_ /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=chrmysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock


gestartet wurde er über den befehl


chroot /home/chroot/mysql /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=chrmysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock & disown


dabei hat er mir folgendes gesagt


server:/home/chroot/mysql/# chroot /home/chroot/mysql /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=chrmysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock & disown
[1] 5640
server:/home/chroot/mysql/etc/mysql# 070912 16:07:41 InnoDB: Started; log sequence number 0 43655
070912 16:07:41 [Note] Recovering after a crash using /var/log/mysql/mysql-bin
070912 16:07:41 [Note] Starting crash recovery...
070912 16:07:41 [Note] Crash recovery finished.
070912 16:07:41 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.32-Debian_7etch1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Debian etch distribution


obwohl er mir anzeigt dass der port gebunden ist:



Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:1987 *:* LISTEN 2257/sshd
tcp 0 0 localhost:mysql *:* LISTEN 5607/mysqld
tcp 0 0 *:48746 *:* LISTEN 2162/rpc.statd
tcp 0 0 *:sunrpc *:* LISTEN 1778/portmap
tcp 0 0 *:auth *:* LISTEN 2133/inetd
tcp 0 0 localhost:smtp *:* LISTEN 2121/exim4
tcp6 0 0 *:www *:* LISTEN 4766/apache2
udp 0 0 *:32768 *:* 2162/rpc.statd
udp 0 0 *:642 *:* 2162/rpc.statd
udp 0 0 *:bootpc *:* 2237/dhclient3
udp 0 0 *:sunrpc *:* 1778/portmap
Aktive Sockets in der UNIX Domäne (Nur Server)
Proto RefZäh Flaggen Typ Zustand I-Node PID/Program name Pfad
unix 2 [ ACC ] STREAM HÃRT 5422 2078/acpid /var/run/acpid.socket
unix 2 [ ACC ] STREAM HÃRT 59464 5607/mysqld /var/run/mysqld/mysqld.sock


wenn ich mich mit telnet auf den port connecte kommt:



server:/home/chroot/mysql/# telnet 127.0.0.1 3306
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
F
5.0.32-Debian_7etch1-log|k$n"VoK,fD\&EgW^Q^bSConnection closed by foreign host.

nach etwa 5 sekunden kommt connection closed by foreign host
ich versteh nicht wenn der port nicht gebunden werden kann und wenn man nicht sich einloggen kann warum er dann per telnet geht ?



was ich bisher gemacht habe ware die usergroups bei den /var/run zu überprüfen und anzupassen auf chrmysql

über


find / mysql | grep mysql

alle mysql files versucht zu finden und in die jail struktur einzugliedern



ldd /usr/sbin/mysqld

eingegeben und alle nötigen libraries von hand in die jail struktur eingegliedert ...

das komische ist jetzt wenn ich den mysql ganz normal über /etc/init.d/mysql start
starte - also außerhalb der jail ... macht er keine problem ... deshalb whats wrong ?

mfg
beijo

beijo
14.09.07, 09:34
Update:
so habs nun hinbekommen - lag an dem problem dass mysql über tcp/ip an einen port gebunden werden musst in der my.cnf und das skip-networking ausgeschaltet werden musste

ps
danke für die hilfe

slavka
10.12.07, 15:16
hallo,

also ich habe genau das selbe problem mit meinem Rootserver aber ich bin ein völliger anfänger was linux an geht, da ich den Rootserver (Debian) erst gestern bekommen habe. Kann mir vielleicht einer die genauen befehle geben die ich eingeben muss um diesen fehler zu beheben, Also ich möchte meine Homepage auf den server aufsetzten. Und habe echt null ahnung von linux also PLZ PLZ PLZ ;)

MFG slavka

bla!zilla
10.12.07, 15:29
Bevor es jemand anderes tut: http://www.root-und-kein-plan.ath.cx

slavka
10.12.07, 15:31
ne jetzt mal in ernst könnt ihr mir da echt nicht helfen?

bla!zilla
10.12.07, 15:32
Wahrscheinlich lauscht dein MySQL Daemon nur auf einem Socket und nicht auf einem Port, und deine Applikation will das Gegenteil.

slavka
10.12.07, 15:36
aha und wie bbehebe ich nun dieses problem welche befehle muss ich dafür eingeben oder brauchst du noch welche infos?

bla!zilla
10.12.07, 15:38
Lies doch einfach die Doku. Ich wiederhole mich so ungerne und wir sind auch nicht dafür da den Leuten alles vorzukauen. Wir geben gerne Hinweise, Lösen zusammen Probleme usw. Aber wir leisten hier keine Aufbauhilfe für Leute, die zu faul sind die Doku zu lesen. Es sind Root-Server wie deiner, welche oft aus Unwissenheit der Admins, zu Spamschleudern, oder sogar ganz übernommen werden.

baumgartner
10.12.07, 16:17
Die Informationen die gebraucht werden, sollten für jeden Administrator ausreichend sein.