Mysql Rennt aber Trotzdem socket fehler.

MySQL, PostgreSQL, SQLite
werwolf
Posts: 23
Joined: 2002-06-16 22:11

Mysql Rennt aber Trotzdem socket fehler.

Post by werwolf » 2006-03-11 10:46

Hallo Leute.

Ich habe folgendes Problem.

Der Mysql Server rennt Problemlos, aber gelegentlich gibt es beim aufrufen der Seite socket fehler.

Code: Select all

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (11) in /var/www/conneryweb/public_html/admin/config/class_db.inc on line 23 
Database error in : Handle == false, connect failed 
mysql error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (11) 
mysql error number: 2002 
Date: 11.03.2006 @ 10:20 
Script: /adbanner.php?typ=1&sid=DEE936E8FBC73F56296EF9699666D24C 
Referer: http://www.conneryweb.de/seite_home.php?betteln=
Das Problem ist auch sie Serverload teilweise auf beiden cpus auf ueber 99% geht. Ich bin langsam ratlos woran es liegen kann.

Code: Select all

p - 10:41:41 up  9:06,  1 user,  load average: 23.86, 24.83, 22.11
Tasks: 119 total,   2 running, 117 sleeping,   0 stopped,   0 zombie
Cpu(s):sks: 127 total,   3 running, 124 sleeping,   0 stopped,   0 zombie
Cpu0  : 93.9% us,  6.1% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu1  : 87.8% us, 10.2% sy,  0.0% ni,  0.0% id,  0.0% wa,  2.0% hi,  0.0% si
Mem:   4052832k total,  1062808k used,  2990024k free,     6268k buffers
Swap:  1000440k total,   116340k used,   884100k free,   333144k cached
hier meine my.cnf

Code: Select all

# /etc/mysql/my.cnf: The global mysql configuration file.
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/my.cnf-4.0.24-r1,v 1.1 2005/03/13 05:54:00 robbat2 Exp $
#
# This file can be simultaneously placed in three places:
# 1. /etc/mysql/my.cnf to set global options.
# 2. /var/lib/mysql/my.cnf to set server-specific options.
# 3. ~/.my.cnf to set user-specific options.
#
# One can use all long options that the program supports.
# Run the program with --help to get a list of them.
#
# The following values assume you have at least 64M RAM!

[client]
#password       = my_password
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[safe_mysqld]
err-log         = /var/log/mysql/mysql.err

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
log-error       = /var/log/mysql/mysqld.err
# If set, mysql logs all queries(general query log). This will be deprecated in
# 5.0. This logs all queries, even error queries and is slow.
# log          = /var/log/mysql/mysql.log
#
# If you really need logging, use rather binary logging. Especially when doing
# replication. Read
# file:/usr/share/doc/mysql-*/manual.html.gz#Replication
# You can use PURGE MASTER LOGS TO '$hostname-bin.010' to get rid of old logs
# from $hostname-bin.01 up to $hostname-bin.09 while the slave server is
# running.
# Before doing that, check which logfile slave curently uses by running
# mysql> SHOW SLAVE STATUS
# To list logfiles on master do:
# mysql> SHOW MASTER LOGS
# Then use PURGE for those not needed anymore only! Never remove the files
# manually!
#
# Also consult RESET MASTER and RESET SLAVE commands before doing any changes
# mysql> RESET MASTER - Deletes all binary logs listed in the index
#                       file, resetting the binlog index file to be empty.
# mysql> RESET SLAVE - Makes the slave forget its replication position in
#                      the master logs.
# mysql> SET SQL_LOG_BIN=0  - this turns off logging (execute on MASTER only)
# mysql> SET SQL_LOG_BIN=1  - this turns on logging (execute on MASTER only)
#
# log-bin
# set-variable  = binlog-do-db=non_existant
# set-variable  = binlog-ignore-db=database_name
#
# server-id has to unique for each master or slave in your network,
# lets use last number from IP address
server-id      = 207
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
skip-locking
set-variable    = key_buffer=350M
set-variable    = max_allowed_packet=2M
#set-variable   = thread_stack=128K
# keep secure by default!
bind-address    = 127.0.0.1
port            = 3306
# this can make it even more secure:
#skip-networking
#
# The following is the InnoDB configuration
# if you wish to disable innodb instead
# uncomment just the next line
#skip-innodb
#
# the rest of the innodb config follows:
# don't eat too much memory, we're trying to be safe on 64Mb boxes.
# you might want to bump this up a bit on boxes with more RAM
set-variable = innodb_buffer_pool_size=32M                
# this is the default, increase if you have lots of tables
set-variable = innodb_additional_mem_pool_size=1M         
#                                                         
# i'd like to use /var/lib/mysql/innodb, but that is seen as a database :-(
# and upstream wants things to be under /var/lib/mysql/, so that's the route
# we have to take for the moment
innodb_data_home_dir = /var/lib/mysql/
innodb_log_arch_dir = /var/lib/mysql/
innodb_log_group_home_dir = /var/lib/mysql/
# you may wish to change this size to be more suitable for your system
# the max is there to avoid run-away growth on your machine
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
# we keep this at around 25% of of innodb_buffer_pool_size
# sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size)
set-variable = innodb_log_file_size=8M
# this is the default, increase if you have very large transactions.
set-variable = innodb_log_buffer_size=1M
# this is the default, and won't hurt you.
# you shouldn't need to tweak it.
set-variable = innodb_log_files_in_group=2
# see the innodb config docs, the other options are not always safe
innodb_flush_log_at_trx_commit=1


[mysqldump]
quick
set-variable    = max_allowed_packet=2M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
#set-variable   = key_buffer=128M
set-variable    = table_cache=4068
set-variable    = global_max_connections=800
set-variable    = sort_buffer=15M
set-variable    = wait_timeout=10
set-variable    = interactive_timeout=100
set-variable    = query_cache_size=64M
set-variable    = query_cache_limit=512K
set-variable    = query_cache_type=1

Ich waere fuer jeden Tipp dankbar.

Gruss Martin

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

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by Roger Wilco » 2006-03-11 11:48

Was sagt `netstat -ln | grep mysql` und stimmen die Rechte von
/var/run/mysqld/?
Außerdem findest du über die Suchfunktion noch einige Threads zu dem Fehler.

User avatar
isotopp
RSAC
Posts: 482
Joined: 2003-08-21 10:21
Location: Berlin

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by isotopp » 2006-03-11 21:06

werwolf wrote:mysql error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (11)
kris@linux:~> perror 11
OS error code 11: Resource temporarily unavailable

Dein Datenbankserver ist (wegen schlechtem SQL oder schlechter Konfiguration) so überlastet, daß sich die eingehenden Queries stauen. Dadurch ist max_connections ausgelastet und der Server nimmt vorübergehend keine weiteren Verbindungen nicht an.

max_connections zu erhöhen wird das Problem nicht lösen. Du mußt herausfinden, warum Dein Server so langsam ist und ihn dann schneller machen.

werwolf
Posts: 23
Joined: 2002-06-16 22:11

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by werwolf » 2006-03-13 06:18

Guten Morgen.

Ich habe nun raus bekommen das es an einer Datenbank liegt.
Netstat ergibt

Code: Select all

netstat -ln | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     4001153 /var/run/mysqld/mysqld.sock
Das stimmt soweit. Das Problem ist bsp das er

Code: Select all

set-variable    = max_connections=800
schlicht weg ignoriert beim restarten vom sql Server. Ich bin im moment ziehmlich ratlos was ich noch machen kann. Die Maschine duerft noch lange nicht an ihre grenze stossen. Das ist ein 1und1 optron 175. Es liegen 3 grosse Projekte auf dem Server. Die Socket fehler tretten meistens auch zu stoss zeiten auf. Die Datenbank die das verursachen tut ist knapp 360 mb gross. Achja auf dem Server ist gentoo installiert mit der mysql 4.0.25 leider erlauben die scripte keinen einsatz aktuellere sql server :(. Hat jemand noch ein paar tipps parat was ich tun koennte um die cpu last zuverringern. Es ist defintiv der sql server bzw die eine spezielle datenbank.

Gruss Martin

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by flo » 2006-03-13 08:16

Die üblichen Kandidaten:

1. pconnect --> abschaffen, wenn an
2. slow queries loggen lassen --> SQL optimieren
3. schau wo Deine (aktive) Konfiguration liegt und ob gegebenenfalls andere Direktiven übernommen werden.

Poste doch mal den Output von:

Code: Select all

mysql> show variables like '%conne%';
mysql> show status like '%conne%';
flo.

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

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by Joe User » 2006-03-13 11:12

Code: Select all

sed 's/set-variable[[:space:]]*=[[:space:]]//g' -i /etc/mysql/my.cnf
/etc/init.d/mysql restart

emerge -pv mysql

emerge --info
http://www.rootforum.org/forum/viewtopic.php?t=36343
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.

werwolf
Posts: 23
Joined: 2002-06-16 22:11

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by werwolf » 2006-03-13 11:54

Hallo

joe user Thx fuer emerge -pv mysql ich sollte eventuell big-tables aktiveren.

hier die ausgabe von dem gewuenschten.

Code: Select all

[ebuild   R   ] dev-db/mysql-4.0.25-r2  -berkdb -big-tables -debug -doc -minimal +perl +readline (-selinux) +ssl -static -tcpd 0 kB

Code: Select all

System uname: 2.6.15-gentoo-r7 x86_64 Dual Core AMD Opteron(tm) Processor 175
Gentoo Base System version 1.6.14
dev-lang/python:     2.4.2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X1                                              1/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://                                              linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp.uni-erlangen.de/p                                              ub/mirrors/gentoo ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo http://ftp6.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp6.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 alsa apache2 bitmap-fonts bzip2 chroot cli crypt ctype curl domxml eds emboss expat gd gd2 gdbm gif gstreamer gtk2 imap innodb ipv6 jpeg lzw lzw-tiff maildir mp3 mpm-worker mysql ncurses nls nptl oggvorbis pam pcre pdo-external pear perl php png postfix python readline sasl sdl simplexml sockets ssl threads tiff truetype truetype-fonts type1-fonts udev usb xml xml2 xpm xsl zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Flo hier deine gewuenschte ausgabe.

Code: Select all

mysql> show variables like '%conne%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| connect_timeout      | 5     |
| max_connections      | 900   |
| max_connect_errors   | 10    |
| max_user_connections | 0     |
+----------------------+-------+
4 rows in set (0.00 sec)

Code: Select all

mysql> show status like '%conne%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 0     |
| Connections              | 8717  |
| Max_used_connections     | 64    |
| Ssl_finished_connects    | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_client_connects      | 0     |
| Threads_connected        | 3     |
+--------------------------+-------+
7 rows in set (0.00 sec)


Danke fuer eure Hilfe.


Gruss Martin

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

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by Joe User » 2006-03-13 12:45

Dein Kernel und Deine USE-Flags sind für einen Desktop ja durchaus zu gebrauchen, aber nicht für einen Server (http://www.rootforum.org/wiki/howto/gentoo).

Da Du kein Gentoo-Hardened nutzt, solltest Du MySQL statisch (USE="static") kompilieren. Desweiteren solltest Du Dir die mit "Wichtig" gekennzeichneten MySQL-Threads von isotopp durchlesen, die sind äusserst informativ und hilreich.

Warum ist ein Upgrade auf MySQL 5.0 nicht möglich?
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.

werwolf
Posts: 23
Joined: 2002-06-16 22:11

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by werwolf » 2006-03-16 06:21

Guten Morgen.

Danke fuer euere Antworten und hilfe.

Ich hatte jetzt versucht auf static zuwechseln das Problem war das php5 die libmysqlbla nicht mehr finden konnte auch das remergen brachte nigs.

@joe user, Die Scripte sind einfach nicht mysql5 compatiebel. Wir werden sehn das wir die scripte angepasst bekommen und den einen wechsel machen.

Gruss Martin

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by flo » 2006-03-16 08:09

werwolf wrote:@joe user, Die Scripte sind einfach nicht mysql5 compatiebel. Wir werden sehn das wir die scripte angepasst bekommen und den einen wechsel machen.
Prüf das doch mal nach - ich hatte bis jetzt keine Probleme mit MySQL5, weder bei meinen eigenen Sachen, noch bei getesteter Fremdsoftware.

flo.

werwolf
Posts: 23
Joined: 2002-06-16 22:11

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by werwolf » 2006-03-16 19:41

flo wrote:
werwolf wrote:@joe user, Die Scripte sind einfach nicht mysql5 compatiebel. Wir werden sehn das wir die scripte angepasst bekommen und den einen wechsel machen.
Prüf das doch mal nach - ich hatte bis jetzt keine Probleme mit MySQL5, weder bei meinen eigenen Sachen, noch bei getesteter Fremdsoftware.

flo.
Hallo flo

Wir hatten einen Testlauf damit gemacht vor ein paar wochen *5.0.18*.
Dort wuerden die Userdaten nicht mehr richtig angezeigt und die auszahlungs belege liefen nicht richtig. Und da es keine aenderungen am PHP gab lag es defintiv an mysql 5.

Gruss Martin

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

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by Roger Wilco » 2006-03-16 20:08

werwolf wrote:Und da es keine aenderungen am PHP gab lag es defintiv an mysql 5.
Ihr habt versucht mit einer PHP-Version, die gegen die alte Client-Bibliothek (4.0/4.1) gelinkt ist, auf einen MySQL 5 Server zuzugreifen? Und ihr wundert euch, warum das nicht funktioniert? :roll:

werwolf
Posts: 23
Joined: 2002-06-16 22:11

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by werwolf » 2006-03-17 06:13

Roger Wilco wrote:
werwolf wrote:Und da es keine aenderungen am PHP gab lag es defintiv an mysql 5.
Ihr habt versucht mit einer PHP-Version, die gegen die alte Client-Bibliothek (4.0/4.1) gelinkt ist, auf einen MySQL 5 Server zuzugreifen? Und ihr wundert euch, warum das nicht funktioniert? :roll:
Das ist falsch, Wir mussten ja php aufgrund der libmysql reinstallieren.

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: Mysql Rennt aber Trotzdem socket fehler.

Post by flo » 2006-03-17 07:54

Die max_connections sind doch eh schon auf 900 - warum willst Du die auf 800 setzen?

Wenn die max_used_connections den laufenden Betrieb (=mindestens ein "geht nciht" repräsentieren, liegt das ja auch auf keinen Fall daran.

Aber ich bin trotzdem etwas ratlos - würde jetzt zunächst auch mal die Datenbank überpüfen und die Queries optimieren bzw. mehr Indices setzen. Kannst Du das auf bestimmte Queries eingrenzen?

flo.