2009-11-08 39 views
3

Ok, ce sera une longue question. J'essaie de mettre quelque chose en place sur mon compte universitaire. Nous avons un dossier public_html que nous pouvons utiliser comme espace web pour héberger tout ce que nous voulons là-bas. J'ai installé la pile Bitnami dans le dossier public_html (ce n'est probablement pas la meilleure idée en matière de sécurité, mais je vais seulement tester cette application pendant quelques jours et la retirer, donc je ne sais pas vraiment Je m'occupe de si longtemps que je peux le faire fonctionner rapidement) et le site que je veux héberger fonctionne bien et accessible via (http: // (uni adresse)/(mon nom de compte)/public_html/lampe/apache2/htdocs/. (etc ..) Cependant, certaines parties du code qui se connecte au databse me donne l'avertissement suivant:Impossible de se connecter à mysql en utilisant la pile de lampe Bitnami via php

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

Je me connecte à la base de données en utilisant le code suivant:

mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 

Où dbhost est 'localhost'. Comme il fait référence à /var/run/mysqld/mysqld.sock - cela signifie évidemment qu'il essaie de se connecter à la mauvaise chose puisque le mysql dans la pile de lampe que j'ai installé possède les éléments suivants dans son my.cnf:

[mysqladmin] 
user=root 

[mysqld] 
basedir=(my account folder)/public_html/lamp/mysql 
datadir=(my account folder)/public_html/lamp/mysql/data 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 
tmpdir=(my account folder)/public_html/lamp/mysql/tmp 

[mysqld_safe] 
mysqld=mysqld.bin 

[client] 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 

[manager] 
port=3306 
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock 
pid-file=(my account folder)/public_html/lamp/mysql/tmp/manager.pid 
default-mysqld-path=(my account folder)/public_html/lamp/mysql/bin/mysqld.bin 

Donc, ma question est, quelqu'un sait comment l'obtenir pour se connecter à la bonne prise? De plus, var/run/mysqld/mysqld.sock n'existe pas du tout et je n'ai évidemment pas la permission de le créer (pas que je vois à quoi cela sert mon but).

Cela me tourmentait depuis hier. Toute aide serait grandement appréciée.

À la votre!

Répondre

1

Vous pourriez avoir à spécifier le socket défini à l'aide my.cnf mysql_connect (vous devriez être en mesure de voir la expample fonctionnelle dans l'exemple n ° 3) au lieu de localhost en faisant CFG- $> point de dbhost au fichier socket

$CFG->dbhost = ':(my account folder)/public_html/lamp/mysql/tmp/mysql.sock'; 
$link = mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 

Voir si cela fonctionne!

Un autre mot de conseils, vous devez également vous assurer que le fichier socket est réellement créé par votre service MySQL à cet endroit « (mon dossier de compte) /public_html/lamp/mysql/tmp/mysql.sock »


Edit:

Nous avons juste besoin de confirmer que le chemin vers votre fichier de chaussette mysql était valide et que le fichier a été créé dont il semble avoir été. Pouvez-vous également confirmer que vous pouvez vous connecter manuellement au serveur mysql à partir de la ligne de commande, ce qui serait une autre bonne étape pour aider au diagnostic.

mysql --socket=<my account folder>/public_html/lamp/mysql/tmp/mysql.sock -u <username> -p 

Edit 2:

une confirmation rapide Juste que vous utilisez le chemin complet vers votre fichier lorsque vous substituez votre compte dossier dans les exemples ci-dessus.

par exemple.

/home/<username>/public_html/lamp/mysql/tmp/mysql.sock 
+0

Comment vérifier si le fichier est créé par mon service mysql? Je présume que c'est parce qu'il a été créé après l'installation de la pile de lampe bitnami. En outre, j'ai essayé l'exemple # 3. Il me donne le même avertissement et j'ai vérifié l'emplacement de mysql.sock et il est définitivement là et j'ai permis un accès complet à celui-ci. Merci encore – MikiRei

+0

Oui. J'ai essayé "/ home/" et le fichier de chemin d'accès complet au cas où il ne redirige pas correctement si j'ai utilisé "/ home/". – MikiRei

+0

Avez-vous réussi à vous connecter au serveur mysql via la ligne de commande? – houmam