Warning: Can't connect to MySQL server on 'localhost' (111)

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Warning: Can't connect to MySQL server on 'localhost' (111)

Postby firstofficer » 10. June 2006 09:30

hallo,

versuche schon seit längerem joomla cms auf einem server zum laufen zu bringen. die daten sind am virt. host www.lokh.at und die db ist schon gedumpt. will ich von www.lokh.at/index11.php auf mysql zugreifen, bekomme ich folgende fehlermeldung:
Warning: Can't connect to MySQL server on 'localhost' (111) in /www/htdocs/lokh/web/index11.php on line 47

habe einen mysql user mit % angelegt, mit allen privileges...funkt einfach nicht.

ich bekomme von diesem vhost einfach keine verbindung zu mysql (auch mit root nicht) --> am localhost (ssh shell) kann ich auf die db ganz normal zugreifen.

an was kann das liegen?? bitte, bitte, bitte helft mir...

das ist meine my.cnf:

Code: Select all
# Example mysql config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# a important part and systems up to 128M very MySQL is used together with
# other programs (like a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/lib/mysql) or
# ~/.my.cnf to set user-specific options.
#
# One can in this file use all long options that the program supports.
# If you want to know which options a program support, run the program
# with --help option.

# The following options will be passed to all MySQL clients
[client]
#password   = your_password
port      = 3306
socket      = /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
skip-networking

# Replication Master Server (default)
# binary logging is required for replication
# log-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id   = 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
#    the syntax is:
#
#    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
#    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
#    where you replace <host>, <user>, <password> by quoted strings and
#    <port> by the master's port number (3306 by default).
#
#    Example:
#
#    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
#    MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
#    start replication for the first time (even unsuccessfully, for example
#    if you mistyped the password in master-password and the slave fails to
#    connect), the slave will create a master.info file, and any later
#    change in this file to the variables' values below will be ignored and
#    overridden by the content of the master.info file, unless you shutdown
#    the slave server, delete master.info and restart the slaver server.
#    For that reason, you may want to leave the lines below untouched
#    (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id       = 2
#
# The replication master for this slave - required
#master-host     =   <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user     =   <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password =   <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port     =  <port>
#
# binary logging - not required for slaves, but recommended
#log-bin

# Point the following paths to different dedicated disks
#tmpdir      = /tmp/      
#log-update    = /path-to-dedicated-directory/hostname

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

# The safe_mysqld script
[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


:!:
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 12:10

ich bekomme von diesem vhost einfach keine verbindung zu mysql (auch mit root nicht) --> am localhost (ssh shell) kann ich auf die db ganz normal zugreifen.

Was meinst du hier mit "VHost" und was mit "localhost"?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

distribution

Postby zschendh » 10. June 2006 12:18

Hallo,

host "Any" oder "% " reicht da nicht, es muss schon explizit "localhost" fuer den entsprechenden user eingetragen sein.

was fuer eine Distri verwendest Du ?

Gruß
H.Richard
Lord of Kerry :wink:
zschendh
 
Posts: 9
Joined: 09. June 2006 11:18

Postby firstofficer » 10. June 2006 12:53

mit vhost meine ich virtueller host....also einfach das jeweilige verzeichnis auf dem server, in dem die cms daten liegen...

habe nun beim mysql user von % auf localhost umgestellt...funkt aber auch nicht..hmmpf

PS: wie kann ich feststellen welche distribution läuft, ist leider nicht mein eigener server?
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 13:43

Ach so, du meinst einen VHost im Apache...
Vom Apache aus ist aber der MySQL-Server doch auch nur der Localhost. Kannst ja mal "127.0.0.1" nehmen oder den richtigen Hostnamen.

Bei der Meldung fällt aber auf, das der wohl über TCP auf den Server zugreifem will und nicht über den Socket? Der "my.cnf" nach kann aber TCP nicht gehen, da das "networking" vom MySQL abgeschaltet ist.


(BTW:
Wenn du Shell-Zugriff als Root hast, ist es doch /dein/ Server. Und wenn du bei dieser Konstellation nicht dein OS herausfinden kannst, solltest du evtl. den Server kündigen und normalen Webspace nehmen? Zuhause kannst du dann ja in Ruhe das Administrieren eines Linux-Servers üben...)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby firstofficer » 10. June 2006 14:30

auch wenn ich skip networking auskommentiere und direkt über das port 3306 gehe, gibts folgende fehlermeldung: Warning: Lost connection to MySQL server during query...

PS: bin leider kein unix profi...habt nachsicht mit mir;-)
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 14:49

am localhost (ssh shell) kann ich auf die db ganz normal zugreifen.

mach mal ein:
Code: Select all
echo '\s\q' | ./mysql -u root -pdeinpasswort| grep 'Connection:'


- "./mysql" halt ersetzen durch das wie du es sonst aufrufst
- "deinpasswort" natürlich auch ersetzen

Was kommt?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby firstofficer » 10. June 2006 16:08

kommt folgendes: Connection: Localhost via UNIX socket
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 16:42

Fine. dann musst deinem PHP nur noch beibringen, auch diesen Socket zu benutzen.

Mit:
Code: Select all
echo '\s\q' | ./mysql -u root -pdeinpassword | grep 'UNIX socket:'

erfährst du wo der Socket ist.

in phpinfo() siehst du welchen Socket (und ob) PHP benutzt:
Code: Select all
./php -i | grep mysql.default_socket

diiesen Eintrag musst du dann halt gegebenenfalls in der "php.ini" anpassen. "mysql.default_host" und "mysql.default_port" lässt du in der "php.ini" leer.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby firstofficer » 10. June 2006 17:04

also da bekomme ich:
Code: Select all
UNIX socket:            /var/lib/mysql/mysql.sock


nach dem der default socket eintrag in der php.ini leer war, hab ich nun obigen pfad hinzugefügt, sodass nun nach php -i | grep mysql.default_socket rauskommt:

Code: Select all
mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock

hab den apache neu gestartet...funkt leider noch immer nicht....bekomme wieder die fehlermeldung: Can't connect to MySQL server on localhost....
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 17:19

Ein phpinfo(), über den Browser aufgerufen, zeigt dir jetzt auch den richtigen Socket an? Host und Port sind jeweils leer?

Wie sieht den ein minimal! Script aus das nicht tut?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby firstofficer » 10. June 2006 17:29

das ist mein skriptchen
Code: Select all
phpinfo();
 mysql_connect("localhost",
  "xxx","xxx") or die
  ("Keine Verbindung moeglich".mysql_error());
  mysql_select_db("cms") or die
  ("Die Datenbank existiert nicht");


die phpinfo im browser aufgerufen...http://www.lokh.at/index11.php...zeigt bei mysql.socket, no value an obwohl ichs ja grad in die php.ini geschrieben habe und apache neugestartet hab??
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 17:32

Dann benutzt dein CLI eine andere Ini als das Modul. Oben in phpinfo() steht welche Ini gerade benutzt wird.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby firstofficer » 10. June 2006 17:45

die php.ini die phpinfo anzeigt soll unter dem pfad usr/local/lib zu finden sein..das verzeichnis ist aber leer??!?!?
firstofficer
 
Posts: 9
Joined: 10. June 2006 09:03

Postby Wiedmann » 10. June 2006 18:06

Dann benutzt dein PHP-Modul keine Ini (da keine da ist) und du siehst dort nur den Pfad, wo PHP diese sucht.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Next

Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 19 guests