mein mysql server läuft in einer eigens dafü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 einen offenen port anzeigt hinter dem anscheinend ein mysqld läuft - auch netstat macht ja den eindruck ?
Evtl ein Permissions bzw Rechtezuweisungsproblem? Bei chroot-Umgebung wäre ja sowas denkbar möglich....
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 ?
Zudem hab ich meinen Apache2 auch chrooted und jedesmal wenn ich mich per phpMyAdmin einloggen will kommt:
#2002 - Der Server antwortet nicht. (evtl. ist auch der Socket des lokalen MySQL-Servers socket nicht korrekt konfiguriert)
und das obwohl ich diesmal zum testen gannz normal /etc/init.d/mysql start gemacht habe - also ohne jail
anfangs hatte er in der error.log meines apache2 folgende fehler gebracht:
/usr/lib/libmysqlclient_r.so.15
/usr/lib/libmysqlclient_r.so.15.0.0
/usr/lib/libmysqlclient.so.15.0.0
/usr/lib/libmysqlclient.so.15
als ich diese dateien jetzt aber in die chroot umgebung kopiert habe bringt er mir keine error.log fehler mehr bis auf:
[Thu Sep 13 10:43:59 2007] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Sep 13 10:43:59 2007] [notice] Apache/2.2.3 (Debian) PHP/5.2.0-8+etch7 configured -- resuming normal operations
und das phpMyAdmin login geht immernoch nicht ^^ - gleiche Fehlermeldung
Habt ihr auch dazu eine Idee/Ahnung? Irgendwas mit den Rechten bestimmt, aber was? in RTMF find ich auch nix...
mfg
be1j0