Toon posts:

Debian-server php -> connecten mysql werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Heb een tijdje gezocht op het forum, maar kom er niet helemaal uit.

Heb een server met Debian 2.2 erop. Daarop heb ik apache en php4 geinstalleerd (handmatig, omdat de packages van apache broken pakaches waren). Dit werkt allemaal goed.

Toen heb ik proftpd geinstalleerd. User aangemaakt voor de htdocs en werkt ook goed.

Toen heb ik met apt-get install mysql-server mysql-client mysql geinstalleerd. En toen dat was gedaan het root-wachtwoord aangepast.

Toen kon ik in de directory: /usr/local/bin met het commando
mysql -u root -p mysql inloggen op de mysql-server (met root-wachtwoord). Dus de mysql-server werkt ook.

Echter als ik op de webserver
PHP:
1
2
3
4
5
<?php
$link = mysql_connect("localhost",root,wachtwoord);
if (! $link)
die("Couldn't connect to MySQL");
?> 

uitvoer kan ik niet connecten met de mysql-databse.

Ik dacht dat ik dus php.ini moet aanpassen. Maar daarin staat mysql supported, no dll needed.
Dus wat moet ik nu nog aanpassen zodat ik via php mijn database kan benaderen

[ Voor 3% gewijzigd door Verwijderd op 07-07-2004 18:43 ]


Verwijderd

moet dat stukje met root en wachtwoord niet ook tussen aanhalingstekens?! :)

Verwijderd

Topicstarter
heb ik ook al geprobeerd. En de mysql-server staat aan, want ik kan wel in de prompt van debian connecten

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 06:43

Kettrick

Rantmeister!

kijk even met een phpinfo(); of je echt wel mysql support in je php hebt gebakken.

Verwijderd

ik weet dat je met het normaal compileren ook een bepaalde parameter mee moet geven,

ik heb het toen allemaal gedocumenteerd :))

[spam]
ingelogd zijn als root!


mysql

./configure --prefix=/opt/mysql --with-named-curses-libs=/lib/libncurses.so.5


make


make install


useradd mysql

passwd mysql

cd /opt/mysql

mkdir var

chown mysql var

chmod 700 var

su mysql

cd bin

./mysql_install_db

./mysqladmin -u root password 'nieuwe wachtwoord'

./mysqld_safe &


APACHE

./configure --enable-so --prefix=/opt/apache/

make

make install

php


./configure --with-apxs2=/opt/apache/bin/apxs --with-mysql --prefix=/opt/php


make

make install

cp php.ini-dist /opt/php/lib/php.ini

joe /opt/apache/conf/httpd.conf


toevoegen : AddType application/x-httpd-php .php .phtml
[/spam]

Verwijderd

Topicstarter
Mysql heb ik geinstalleerd met apt-get, niet handmatig.


mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49
MYSQL_MODULE_TYPE builtin
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE no value
MYSQL_LIBS no value

Directive Local Value Master Value
mysql.allow_persistent On On
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 no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off

Las iets over dat mysql wel naar de tcp poorten moet luisteren en dat hij dat normaal niet doet, kan dat het probleem zijn?

Joris

[ Voor 15% gewijzigd door Verwijderd op 07-07-2004 19:31 ]


  • imdos
  • Registratie: Maart 2000
  • Laatst online: 09:35

imdos

I use FreeNAS and Ubuntu

Je kan vast niet bij je mysql.sock check je permissies en de directory waar je mysql.sock zich bevind en of php / apache op de goede plek zoekt

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • Niek
  • Registratie: Februari 2001
  • Laatst online: 11-02 12:26

Niek

f.k.a. The_Surfer

code:
1
2
3
4
$ apt-cache show php4-mysql | grep Description
Description: MySQL module for php4
$ apt-get install php4-mysql
$ /etc/init.d/apache2 restart
Of anders toch maar de Debian packages van PHP4 en Apache installeren, werkt perfect hier :)

[ Voor 23% gewijzigd door Niek op 07-07-2004 18:56 ]

À vaincre sans péril, on triomphe sans gloire - Pierre Corneille


Verwijderd

Topicstarter
Normaal moet ie toch in

/var/lib/mysql staan?

Maar daar staat ie dus niet

Verwijderd

Topicstarter
The_Surfer schreef op 07 juli 2004 @ 18:54:
code:
1
2
3
4
$ apt-cache show php4-mysql | grep Description
Description: MySQL module for php4
$ apt-get install php4-mysql
$ /etc/init.d/apache2 restart
Of anders toch maar de Debian packages van PHP4 en Apache installeren, werkt perfect hier :)
Had ik vorige keer ook gedaan, maar waren nu dus broken packages voor al een paar dagen. Zal php4-mysql eens proberen, maar volgens mij had ik dat al gedaan, en ten wilde die ook php4 installeren, maar dat had ik dus al werkend, maar zal ff kijken wat ie zegt.

Ben nu php4-mysql aan het installeren, met php4-cgi en 2 lib.... packages (moest) zal zo ff kijken of ik dan wel kan connecten.

code:
1
 you are installing php4-mysql, but it is not enabled in your /etc/php4/cgi/php.ini
ff kijken of ik iets in die php.ini kan vinden. Maar waarom in de cgi directory.

Joris

[ Voor 21% gewijzigd door Verwijderd op 07-07-2004 19:09 ]


Verwijderd

Topicstarter
Wat is hier fout aan?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent).  -1 means no limit.
mysql.max_links = -1

; Default port number for mysql_connect().  If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
' at MYSQL_PORT.
mysql.default_port =

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =

; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo cfg_get_var("mysql.default_password")
; and reveal this password!  And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =

[mSQL]
; Allow or prevent persistent links.
msql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
msql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
msql.max_links = -1

[ Voor 28% gewijzigd door Verwijderd op 07-07-2004 19:28 ]


  • imdos
  • Registratie: Maart 2000
  • Laatst online: 09:35

imdos

I use FreeNAS and Ubuntu

Verwijderd schreef op 07 juli 2004 @ 18:51:
MYSQL_SOCKET /tmp/mysql.sock
Joris
Daar staat ie 8)7

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


Verwijderd

Topicstarter
Hoi,

Dat is dus het probleem. In /tmp staat geen Mysql.sock. In /tmp staat helemaal niks. Hoe kan ik dat aanpassen. In de /etc/php4/cgi/php.ini of in de /usr/local/lib/php.ini.

En hoe vind ik mijn mysql.sock 8)7

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Verwijderd schreef op 07 juli 2004 @ 18:42:
PHP:
1
2
3
4
5
<?php
$link = mysql_connect("localhost",root,wachtwoord);
if (! $link)
die("Couldn't connect to MySQL");
?> 

uitvoer kan ik niet connecten met de mysql-databse.
Maak er eerst eens dit van:

PHP:
1
2
3
4
5
<?php
$link = mysql_connect("localhost",root,wachtwoord);
if (! $link)
die("Couldn't connect to MySQL: " . mysql_error() );
?>


Zodat je een zinnige foutmelding terugkrijgt. Verder - deze hoef je niet per se via je webserver uit te voeren - gewoon op de commandline (php mysqltest.php of iets dergelijks) is al voldoende - geef de foutmelding dan even weer.

Verder - doe eens 'netstat -an | grep -i mysql' - als het goed is zal je een mysql.sock zien staan - probeer die eens op te geven in je mysql_connect ? Dus iets als:

PHP:
1
$db = mysql_connect(':/tmp/mysql.sock', 'user', 'pass')


(die ':' is goed ja :) )
Pagina: 1