2015-05-12 14 views
10

Ich versuche, dbd mit mysql als Authentifizierung mit Apache 2.4 zu verwenden.Apache dbd Interner Fehler: AH00629: Ich kann keine Verbindung zu mysql herstellen

Wenn Apache startet, ich habe diesen Fehler:

[Tue May 12 13:07:18.789021 2015] [mpm_event:notice] [pid 10625:tid 140410697815936] AH00489: Apache/2.4.10 (Debian) configured -- resuming normal operations 
[Tue May 12 13:07:18.789118 2015] [core:notice] [pid 10625:tid 140410697815936] AH00094: Command line: '/usr/sbin/apache2' 
[Tue May 12 13:07:18.789469 2015] [dbd:error] [pid 10628:tid 140410697815936] (20014)Internal error: AH00629: Can't connect to mysql: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 
[Tue May 12 13:07:18.789560 2015] [dbd:error] [pid 10628:tid 140410697815936] (20014)Internal error: AH00633: failed to initialise 
[Tue May 12 13:07:18.790282 2015] [dbd:error] [pid 10629:tid 140410697815936] (20014)Internal error: AH00629: Can't connect to mysql: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 
[Tue May 12 13:07:18.790441 2015] [dbd:error] [pid 10629:tid 140410697815936] (20014)Internal error: AH00633: failed to initialise 
[Tue May 12 13:07:18.792481 2015] [dbd:crit] [pid 10628:tid 140410697815936] (20014)Internal error: AH00636: child init failed! 
[Tue May 12 13:07:18.792595 2015] [dbd:crit] [pid 10629:tid 140410697815936] (20014)Internal error: AH00636: child init failed! 

dbd_mysql.conf:

DBDriver mysql 
DBDParams "host=192.168.1.2 port=3306 user=MY_USERNAME pass=MY_PASSWORD dbname=MY_DATABASE" 
DBDMin 2 
DBDKeep 4 
DBDMax 10 
DBDExptime 300 
DBDPersist On 

000-default.conf

[...] 
DBDParams "dbname=DATABASENAME" 
<IfModule authnz_ldap_module> 
    <Directory /var/www/test/> 
     AuthName "Authentication" 
     AuthType Basic 
     AuthBasicProvider dbd 
     AuthDBDUserPWQuery "SELECT SHA2(password, 256) AS password FROM users WHERE username = %s" 
     require valid-user 
    </Directory> 
</IfModule> 
[...] 

Wenn ich das Passwort ändern zu setzen eine ungültige, ich erhielt die Ausnahme

Internal error: AH00629: Can't connect to mysql: Access denied for user... 

Debian 7.8 Apache: 2.4.10 libapr1: 1.5.1-3 (ich versuchte zu degradieren, aber ich kann nicht)

Hinweis: Der Server haben keine php noch PHP und MySQL (libphpmysql

bearbeiten installiert ist):

my.cnf (Client-Teil)

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

Edit (2):

Ich versuchte auch

odbc.ini die "odbc" für MySQL zu verwenden:

dbd_mysql.conf

DBDriver odbc 
DBDParams "datasource=MYSERVER_MYSQL_MYDATABASE" 
DBDMin 1 
DBDKeep 1 
DBDMax 10 
DBDExptime 300 

/etc/odbc.ini (i bearbeitet die Config empfindlich zu entfernen Daten)

[MYSERVER_MYSQL_MYDATABASE] 
Driver=/usr/local/lib/libmyodbc5a.so 
Description=MYSERVER_MYSQL_MYDATABASE 
SERVER=192.168.1.2 
PORT= 
USER=MY_USER 
Password=MY_PASSWORD 
Database=MY_DATABASE 
OPTION=3 
SOCKET= 

Wenn ich verwenden:

# isql MYSERVER_MYSQL_MYDATABASE 
+---------------------------------------+ 
| Connected!       | 
|          | 
| sql-statement       | 
| help [tablename]      | 
| quit         | 
|          | 
+---------------------------------------+ 

Es funktioniert perfekt .. aber auf der Apache error.log:

[Thu May 14 09:07:51.323638 2015] [mpm_event:notice] [pid 1605:tid 140068309481344] AH00489: Apache/2.4.10 (Debian) configured -- resuming normal operations 
[Thu May 14 09:07:51.323725 2015] [core:notice] [pid 1605:tid 140068309481344] AH00094: Command line: '/usr/sbin/apache2' 
[Thu May 14 09:07:51 2015] [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Thu May 14 09:07:51.323827 2015] [dbd:error] [pid 1608:tid 140068309481344] (20014)Internal error: AH00629: Can't connect to odbc: [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Thu May 14 09:07:51.323870 2015] [dbd:error] [pid 1608:tid 140068309481344] (20014)Internal error: AH00633: failed to initialise 
[Thu May 14 09:07:51 2015] [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Thu May 14 09:07:51.324332 2015] [dbd:error] [pid 1609:tid 140068309481344] (20014)Internal error: AH00629: Can't connect to odbc: [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Thu May 14 09:07:51.324430 2015] [dbd:error] [pid 1609:tid 140068309481344] (20014)Internal error: AH00633: failed to initialise 
[Thu May 14 09:07:51.331767 2015] [dbd:crit] [pid 1608:tid 140068309481344] (20014)Internal error: AH00636: child init failed! 
[Thu May 14 09:07:51.331823 2015] [dbd:crit] [pid 1609:tid 140068309481344] (20014)Internal error: AH00636: child init failed! 

Edit (3):

fand ich, dass ich den Fahrer nicht registriert haben:

./myodbc-installer -d -a -n "MySQL ODBC 5.3 Driver" -t "DRIVER=/usr/local/lib/libmyodbc5a.so" 

Dann änderte die "dbd_mysql.conf" mit:

aber immer noch das gleiche Problem (error.log):

[Fri May 15 09:38:31.905733 2015] [core:notice] [pid 5215:tid 140452627486592] AH00094: Command line: '/usr/sbin/apache2' 
[Fri May 15 09:38:31 2015] [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Fri May 15 09:38:31.905842 2015] [dbd:error] [pid 5218:tid 140452627486592] (20014)Internal error: AH00629: Can't connect to odbc: [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Fri May 15 09:38:31.905888 2015] [dbd:error] [pid 5218:tid 140452627486592] (20014)Internal error: AH00633: failed to initialise 
[Fri May 15 09:38:31 2015] [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Fri May 15 09:38:31.906424 2015] [dbd:error] [pid 5219:tid 140452627486592] (20014)Internal error: AH00629: Can't connect to odbc: [dbd_odbc] Invalid DBD Parameters - open returned SQL_ERROR (-1) at /tmp/buildd/apr-util-1.5:1146 
[Fri May 15 09:38:31.906528 2015] [dbd:error] [pid 5219:tid 140452627486592] (20014)Internal error: AH00633: failed to initialise 
[Fri May 15 09:38:31.915211 2015] [dbd:crit] [pid 5218:tid 140452627486592] (20014)Internal error: AH00636: child init failed! 
[Fri May 15 09:38:31.915578 2015] [dbd:crit] [pid 5219:tid 140452627486592] (20014)Internal error: AH00636: child init failed! 
+0

Wird MySQL ausgeführt und/oder ist das der richtige Speicherort für die Socket-Datei? weil Apache versucht, die Socket-Datei zu verwenden, während Ihre Config versucht, es zu sagen, eine TCP-Verbindung zu verwenden. –

+0

Mysql-Server läuft auf einem anderen Server. Ich habe keine Socket-Datei gesetzt .. – Joshua

+0

Nun, Apache versucht, über den Socket zu verbinden, so etwas in Ihrer Konfiguration ist falsch. –

Antwort

4

DBDParams müssen mit Komma getrennt werden: DBDParams param1=value1[,param2=value2] http://httpd.apache.org/docs/2.4/mod/mod_dbd.html

+0

Ich änderte die ";" zu "," 'DBDParams" DRIVER = {MySQL ODBC 5.3 Treiber}, SERVER = 192.168.1.2, DATABASE = MY_DATABASE, UID = MY_USER, PWD = MY_PASSWORD "', immer noch der gleiche Fehler: 'Ungültige DBD Parameter - open zurückgegeben SQL_ERROR (-1) ' – Joshua

+0

Meine Antwort wird mit Ihrem ersten Fall mit' DBDriver mysql' helfen Im zweiten Fall scheint es, dass dbd kann nicht finden ODBC-Treiber mit dem Vornamen. –

+0

Danke, es funktioniert! Konfiguration: 'dbdriver mysql DBDParams "host = 192.168.1.2, user = my_user, pass = my_password, Dbname = MEINE_DB" DBDMin 1 DBDKeep 1 DBDMax 10 DBDExptime 300 DBDPersist On' – Joshua

0

in meinem.conf versuchen

[client] 
protocol=tcp 

Die Referenz Connecting to the MySQL Server eine Erklärung, wie sieht die Standard-Verbindungsmethode zu überschreiben.

Die Referenz Using Option Files erklärt vage, welche Werte in der Datei my.conf platziert werden können. Im Wesentlichen kann ein Argument, das an den Befehl mysql in der Befehlszeile (dh --protocol) übergeben werden kann, ohne Bindestriche in der Optionsdatei angegeben werden.