Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

hey@all!

Ich melde mich hier, weil ich fast schon am verzweifeln bin und vom Server 4 You Support entäuscht wurde.

Ich versuche hier mal in kurzform zu berichten:

Wir betreiben eine Community mit rund 1400 Usern. Zu der besten Zeit, am 1. Weihnachtstag, wo wir mit einem großen Ansturm rechneten verabschiedete sich der Mysql Server ohne jegliche Gründe.

- Gegen 10 Uhr war der Mysql Server nicht mehr erreichbar. Apache lief normal weiter. Ein Reboot brachte keine Änderung, im Gegenteil, der Mysql Dienst ließ sich nicht mehr starten (Laut mysal error log, gab es ein Problem mit der InnoDB, welches zuvor nie aufgetreten ist! Ich nutze die angepasste my.cnf aus diesem Forum) Daraufhin habe ich den Teil aus der my.cnf entfernt, der die InnoDB anspricht. Danach konnte ich den Mysql Dienst wieder starten.
- Leider konnte aber immernoch keine Verbindung aufgebaut werden, zu confixx nicht, phpmyadmin

Code: Select all

(#2002 - Der Server antwortet nicht. (evtl. ist auch der Socket des lokalen MySQL-Servers socket nicht korrekt konfiguriert))
und nicht zu unserer Webseite. Der Apache Error Log meldet folgendes Problem:

Code: Select all

[Tue Dec 26 22:01:23 2006] [error] [client 80.228.68.49] PHP Warning:  mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /srv/www/confixx/html/functions.inc.php on line 388
Der Pfad '/var/lib/mysql/mysql.sock' stimmt auch nicht, in der my.cnf ist aber der richtige eingetragen: "/var/run/mysqld/mysqld.sock"
Zum Vergleich hier meine my.cnf:

Code: Select all

[client]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8
port                  = 3306
socket                = /var/run/mysqld/mysqld.sock

[mysql]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8
no-auto-rehash

[mysqladmin]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8

[mysqlcheck]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8

[mysqldump]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8
max_allowed_packet    = 16M
quick

[mysqlimport]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8

[mysqlshow]
character-sets-dir    = /usr/share/mysql/charsets
default-character-set = utf8

[isamchk]
character-sets-dir    = /usr/share/mysql/charsets
key_buffer_size       = 256M
sort_buffer_size      = 256M
read_buffer_size      = 4M
write_buffer_size     = 4M

[myisamchk]
character-sets-dir    = /usr/share/mysql/charsets
key_buffer_size       = 256M
sort_buffer_size      = 256M
read_buffer_size      = 4M
write_buffer_size     = 4M

[myisampack]
character-sets-dir    = /usr/share/mysql/charsets

[mysqld_safe]
err-log               = /var/lib/mysql/mysql.err
open-files-limit      = 4096

[mysqld]
character-sets-dir    = /usr/share/mysql/charsets
character-set-server  = utf8
default-character-set = utf8
user                  = mysql
port                  = 3306
bind-address          = 127.0.0.1
socket                = /var/run/mysqld/mysqld.sock
pid-file              = /var/run/mysqld/mysqld.pid
log-error             = /var/log/mysqld.err
basedir               = /usr
datadir               = /var/lib/mysql
tmpdir                = /tmp
language              = /usr/share/mysql/english
log-bin               = mysql-bin
server-id             = 1
sync_binlog           = 1
binlog_cache_size     = 1M
max_binlog_size       = 10M
slave_compressed_protocol = 1
delay-key-write       = ALL
skip-locking
skip-networking
#skip-name-resolve
skip-external-locking
skip-show-database
safe-user-create      = 1
default_table_type    = MYISAM
transaction_isolation = REPEATABLE-READ
max_allowed_packet    = 16M
max_heap_table_size   = 64M
tmp_table_size        = 64M
key_buffer_size       = 384M
sort_buffer_size      = 8M
join_buffer_size      = 8M
read_buffer_size      = 8M
read_rnd_buffer_size  = 16M
bulk_insert_buffer_size = 32M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 1G
myisam_max_extra_sort_file_size = 1G
myisam_repair_threads = 1
thread_cache_size     = 8
table_cache           = 512
query_cache_type      = 1
query_cache_size      = 32M
query_cache_limit     = 2M
thread_concurrency    = 8
local-infile          = 0
long_query_time       = 3
log_slow_queries
log_long_format
myisam_recover

[mysqlhotcopy]
interactive-timeout 
Nun habe ich mir gedacht, kann ich doch in der php.ini den Socket-Pfad zuweisen, damit php ihn findet:

Code: Select all

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =
Aber dieser wird ja aus den mysql default Werten ausgelesen und sollte dann doch richtig erkannt werden?! Aber auch wenn ich nun den Socket manuell eintrage, geht es nicht:

Code: Select all

mysql.default_socket = /var/run/mysqld/mysqld.sock
Ich weiß nicht mehr weiter, wäre sehr nett, wenn ihr mir weiterhelfen könnt. Der Support von S4Y lässt mich Stunden warten und auch gegen Aufpreis, haben sie den DB Server nicht mehr zum laufen gebracht.

Gruß,
Defender
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by Roger Wilco »

Was steht in /var/log/mysqld.err?
Top

snowball
Posts: 218
Joined: 2004-09-15 10:14

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by snowball »

Ähh, auch auf die Gefahr hin, das ich da jetzt was falsch verstanden habe...

Dein PHP sucht die Socket Datei hier -> /var/lib/mysql/mysql.sock
Dein MySQL Server legt sie aber nach -> /var/run/mysqld/mysqld.sock.

Du könntest also in der my.cnf eintragen, das er die Datei nach "/var/lib/mysql/mysql.sock" dort hinlegt, oder einen Symlink zu der Datei in /var/run/mysqld/mysqld.sock machen ("ln -s")

HTH

Jochen
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

Die befindet sich bei mir in /var/lib/mysql:

Code: Select all

061227 16:08:48  mysqld started
061227 16:08:48  InnoDB: Started; log sequence number 0 2213095
Gruß
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by Roger Wilco »

Defender wrote:Aber dieser wird ja aus den mysql default Werten ausgelesen und sollte dann doch richtig erkannt werden?! Aber auch wenn ich nun den Socket manuell eintrage, geht es nicht:

Code: Select all

mysql.default_socket = /var/run/mysqld/mysqld.sock
Hast du den Apache httpd danach neugestartet (wenn du mod_php einsetzt)?
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

Ja, habe ich. Habe es aber soeben nochmal getestet mit:

Code: Select all

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/run/mysqld/mysqld.sock
Keine Änderung nach Neustart von Apache und Mysql :?

Code: Select all

[Wed Dec 27 16:14:47 2006] [error] [client 91.96.75.89] PHP Warning:  mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /srv/www/confixx/html/functions.inc.php on line 388
Top

snowball
Posts: 218
Joined: 2004-09-15 10:14

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by snowball »

Hast du schon mal nach der Datei mysqld.sock gesucht?
Wo wird die denn erzeugt? Versuche es doch einfach mal mit 'nem Symlink, vielleicht hilft es ja doch.
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

snowball wrote:Hast du schon mal nach der Datei mysqld.sock gesucht?
Wo wird die denn erzeugt? Versuche es doch einfach mal mit 'nem Symlink, vielleicht hilft es ja doch.
Ja habe ich, die Socket und die pid Datei befinden sich in "/var/run/mysqld". Ist also auch richtig angegeben in der my.cnf.

Das mit dem Symlink habe ich nun versucht:

Code: Select all

ln /var/run/mysqld/mysqld.sock /var/lib/mysql/mysql.sock 
Immernoch keine Verbindung möglich :cry:
Top

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by daemotron »

Kannst Du Dich denn per mysql-Client mit dem Server verbinden? Eventuell hilft's auch mal, den MySQL-Server runterzufahren und mal nach liegengebliebenen Socket-Files etc. Ausschau zu halten und diese ggf. zu entfernen.
Top

timeless2
Posts: 416
Joined: 2005-03-04 14:45
Location: Paris

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by timeless2 »

Hast du auch die richtige php.ini editiert? Ruf mal phpinfo() auf und schau, was dort als mysql-Socket angegeben ist.

Wurden vor den Problemen Updates eingespielt bzw. findet sich in den Logs etwas auffälliges?
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

Wie gesagt, der msql Server läuft. Wurde heute schon unzählige Male neugestartet. Es wurden auch keine Updates oder sonstige Änderungen seit etwa 2 Wochen durchgeführt o.ä. Bis vorgestern lief alles ohne Probleme :(

@timeless2
Seltsam, in der PHP Info steht tatsächlich noch der alte Socket, aber auch der neue?!

Code: Select all

mysql
MySQL Support	enabled
Active Persistent Links 	0
Active Links 	0
Client API version 	5.0.18
MYSQL_MODULE_TYPE 	external
MYSQL_SOCKET 	/var/lib/mysql/mysql.sock
MYSQL_INCLUDE 	-I/usr/include/mysql
MYSQL_LIBS 	-L/usr/lib -lmysqlclient

Directive	Local Value	Master Value
mysql.allow_persistent	Off	Off
mysql.connect_timeout	60	60
mysql.default_host	no value	no value
mysql.default_password	no value	no value
mysql.default_port	no value	no value
mysql.default_socket	/var/run/mysqld/mysqld.sock	/var/run/mysqld/mysqld.sock
mysql.default_user	no value	no value
mysql.max_links	Unlimited	Unlimited
mysql.max_persistent	Unlimited	Unlimited
mysql.trace_mode	Off	Off

mysqli
MysqlI Support	enabled
Client API version 	5.0.18
MYSQLI_SOCKET 	/var/lib/mysql/mysql.sock

Directive	Local Value	Master Value
mysqli.default_host	no value	no value
mysqli.default_port	3306	3306
mysqli.default_pw	no value	no value
mysqli.default_socket	/var/run/mysqld/mysqld.sock	/var/run/mysqld/mysqld.sock
mysqli.default_user	no value	no value
mysqli.max_links	Unlimited	Unlimited
mysqli.reconnect	Off	Off
Oben steht der falsche Pfad unter "MYSQL_SOCKET" und unter "mysql.default_socket" der richtige... :?:

Gruß
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11519
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by Joe User »

Wurde die richtige my.cnf geändert? Was spricht MySQLs SHOW VARIABLES?

EDIT: Dein PHP wurde mit falschem MySQL-Socket-Path kompiliert...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

Ja eigentlich schon, sie befindet sich unter etc/my.cnf.

Das sagt show variables: (Ich lasse die Befehle mal weg)

Code: Select all

Default options are read from the following files in the given order:
/etc/my.cnf /var/lib/mysql/my.cnf ~/.my.cnf 
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults	Print the program argument list and exit
--no-defaults		Don't read default options from any options file
--defaults-file=#	Only read default options from the given file #
--defaults-extra-file=# Read this file after the global files are read
Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- -----------------------------
auto-rehash                       FALSE
character-sets-dir                /usr/share/mysql/charsets
default-character-set             utf8
compress                          FALSE
database                          (No default value)
delimiter                         ;
vertical                          FALSE
force                             FALSE
named-commands                    FALSE
local-infile                      FALSE
no-beep                           FALSE
host                              (No default value)
html                              FALSE
xml                               FALSE
line-numbers                      TRUE
unbuffered                        FALSE
column-names                      TRUE
sigint-ignore                     FALSE
port                              3306
prompt                            mysql> 
quick                             FALSE
raw                               FALSE
reconnect                         FALSE
socket                            /var/run/mysqld/mysqld.sock
table                             FALSE
debug-info                        FALSE
user                              (No default value)
safe-updates                      FALSE
i-am-a-dummy                      FALSE
connect_timeout                   0
max_allowed_packet                16777216
net_buffer_length                 16384
select_limit                      1000
max_join_size                     1000000
secure-auth                       FALSE
Gruß
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11519
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by Joe User »

Siehe mein EDIT, Du musst Deinen Client (PHP) neu bauen...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

Das heißt, ich kann per php.ini oder sonstigen Einstellungen nun nichts mehr machen? Seltsam, dabei habe ich seit über 2 Wochen am Server nichts geändert (Außer einigen reboots natürlich) und nun stimmt der Socket aufeinmal nicht mehr. :?

Ich bitte um Nachsicht, weil ich mich noch nicht mit allen Dingen beschäftigt habe bisher. Könntest du mir bitte sagen wie ich nun am besten vorgehen sollte? Wieso übernimmt er denn nun nicht den neuen default mysql Socket, wenn er in der php.ini eingetragen wird?

Gruß
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by Roger Wilco »

Joe User wrote:Siehe mein EDIT, Du musst Deinen Client (PHP) neu bauen...
Wieso nicht einfach den Socket in der my.cnf ändern?
Top

defender
Posts: 14
Joined: 2006-12-14 17:20
Location: Niedersachsen

Re: Mysql Server nicht mehr erreichbar, Seite seit 2 Tagen offline...

Post by defender »

Roger Wilco wrote:
Joe User wrote:Siehe mein EDIT, Du musst Deinen Client (PHP) neu bauen...
Wieso nicht einfach den Socket in der my.cnf ändern?
Super, ich habe nun in der my.cnf den Socket Pfad auf "/var/lib/mysql/mysql.sock" geändert und in der php.ini den neuen Pfad entfernt. Reboot und nun geht alles :-D

Danke für den super Support in diesem Forum, ohne Euch wäre die Seite wohl immer noch nicht erreichbar!

Gruß,
Defender
Top