Pergunta

Eu estou tentando fazer o simples ACL aplicação controlada tutorial no livro de receitas CakePHP. A idéia é:

Fazendo Databases

 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)
 );

Em seguida, execute o bolo cozer todos os comandos, isto é, quando eu tenho o problema:

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.

A minha configuração de banco de dados é assim:

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

Então, eu estou usando a última CakePHP Version (1.2.5), a última versão Mamp (1.7.2) rodando PHP v5 ... Alguém sabe qual é o problema?

Foi útil?

Solução

Você também pode obter em torno de usar o endereço localhost ip fazendo

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',
);

Isto é porque quando se utiliza um MYSQL localhost nomeado irá tentar ligar através de um socket local. Por specififying onde o soquete é via 'port' você alterar o caminho ele procura o arquivo de socket no. Ao usar 127.0.0.1 ou especificando um IP de qualquer tipo que você dizer ao MySQL para conectar via http, que não usa o soquete todos.

Outras dicas

Esta é a versão 2.x da configuração do banco de dados para localhost na 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 eu encontrei uma maneira de fazê-lo, pode ajudar as pessoas que têm o mesmo problema: i definir um host para 127.0.0.1 tão bolo pode se conectar a ele. Obrigado pela ajuda.

bolo não pode encontrar o socket.

tentar fazer um link simbólico de onde seu soquete é, para onde Bolo acha que deve ser:

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

Eu tive esse problema quando me mudei para CakePHP. Na minha versão atual MAMP 1.9.x eu simplesmente certificar-se de uso I 'Host' => '127.0.0.1' e 'Porto' => 8889 (a menos que você alterar a porta padrão do MySQL).

funciona perfeitamente para mim.

Estou ajudando um amigo a configurar isso no Windows.

Dentro de um EasyPHP encher toda a multa trabalho (conexão com o MySQL). Então Cakephp DOP utilização para se conectar ao banco de dados.

Quando o uso try BAKE para gerar a modelos raise: "Erro: conexão de banco de dados 'MySQL'. Estiver faltando, ou não pôde ser criado"

PHP na linha de comando try encontrar no interior php.ini de pasta do Windows para que não possam encontrar e obter a configuração padrão sem extensões DOP e MySQL.

Copiar dentro php.ini de janelas de pasta e asse animais vai funcionar bem!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top