Question

Je suis en train de faire le Simple application contrôlée par Acl tutoriel dans le livre de cuisine de CakePHP. L'idée est:

Création de bases

 CREATE TABLE users (
 id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE,
 password CHAR(40) NOT NULL,
 group_id INT(11) NOT NULL,
 created DATETIME,
 modified DATETIME
 );


 CREATE TABLE groups (
 id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(100) NOT NULL,
 created DATETIME,
 modified DATETIME
 );


 CREATE TABLE posts (
 id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 user_id INT(11) NOT NULL,
 title VARCHAR(255) NOT NULL,
 body TEXT,
 created DATETIME,
 modified DATETIME
 );

 CREATE TABLE widgets (
 id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(100) NOT NULL,
 part_no VARCHAR(12),
 quantity INT(11)
 );

Lancez ensuite le gâteau cuire au four toute commande, c'est quand j'ai le problème:

Welcome to CakePHP v1.2.4.8284 Console
---------------------------------------------------------------
App : app
Path: /Applications/MAMP/htdocs/luis/app
---------------------------------------------------------------
---------------------------------------------------------------
Bake All
---------------------------------------------------------------

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (2) in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 374

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 379

Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 387

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /Applications/MAMP/htdocs/luis/cake/libs/model/datasources/dbo/dbo_mysql.php on line 411
Error: Your database does not have any tables.

Ma config de base de données est comme ceci:

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'port' => 8889,
    'login' => 'root',
    'password' => 'root',
    'database' => 'cake',
);

Alors je suis en utilisant la dernière version CakePHP (1.2.5), la dernière version Mamp (1.7.2) en cours d'exécution PHP v5 ... Quelqu'un sait quel est le problème?

Était-ce utile?

La solution

Vous pouvez également vous déplacer en utilisant l'adresse IP localhost en faisant

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'port' => 8889,
    'login' => 'root',
    'password' => 'root',
    'database' => 'cake',
    'port' => '/Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock',
);

En effet, lorsque vous utilisez un MYSQL localhost named essayer de se connecter via une prise locale. Par specififying où la prise est via « port » vous changez le chemin, il recherche le fichier socket en jeu. En utilisant 127.0.0.1 ou en spécifiant une adresse IP de toute sorte que vous dites MYSQL de se connecter via http, qui ne pas utiliser la prise à tous.

Autres conseils

Ceci est la version 2.x de la configuration de base de données pour localhost sur MAMP

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'USERNAME',
    'password' => 'PASSWORD',
    'database' => 'DATABASE',
    'encoding' => 'utf8',
    'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
);

Ok j'ai trouvé un moyen de le faire, il pourrait aider les gens qui ont le même problème: je mis un hôte à 127.0.0.1 si le gâteau peut s'y connecter. Merci pour l'aide.

gâteau ne peut pas trouver la prise.

essayer de faire un lien symbolique où votre prise est, à l'endroit où gâteau pense qu'il devrait être:

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

J'ai eu ce problème quand je me suis déplacé à CakePHP. Dans ma version actuelle MAMP 1.9.x Je fais simplement que je l'utilise 'Hôte' => '127.0.0.1' et 'Port' => 8889 (sauf si vous modifiez le port MySQL par défaut).

fonctionne parfaitement pour moi.

Je vais aider un ami à installer ce sous Windows.

Dans une étoffe EasyPHP tout amende de travail (connexion avec Mysql). Donc, CakePHP utiliser PDO pour se connecter à la base de données.

Lors de l'utilisation d'essayer CUIRE de générer les modèles soulèvent: « Erreur: connexion de base de données « Mysql » est manquante ou ne peuvent pas être créées ».

PHP en ligne de commande essayer php.ini trouver le dossier de Windows afin qu'ils ne peuvent trouver et obtenir la configuration par défaut sans les extensions AOP et Mysql.

Copie php.ini dossier de Windows et étoffes cuire au four fonctionne très bien!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top