Не могу начать работу с MySQL в CakePHP - PullRequest
4 голосов
/ 06 марта 2012

Это мой первый раз, когда я устанавливаю фреймворк, и я совершенно не в себе.

Я нахожусь на OSX 10.7, и у меня есть загруженный фреймворк CakePHP в /Library/WebServer/Documents/cakephp, и я смог загрузить тестовую страницу и избавиться от некоторых ошибок и предупреждений. Прямо сейчас я пытаюсь решить эту проблему

  Warning (2): PDO::__construct() [pdo.--construct]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) [CORE/Cake/Model/Datasource/Database/Mysql.php, line 160]
  Cake is NOT able to connect to the database.
  Database connection "SQLSTATE[HY000] [2002] No such file or directory" is missing, or could not be created.

Я действительно не знаю, что здесь делать. Я установил MySQL. MySQL PDO устанавливается по умолчанию в OSX? или мне нужно установить это? Как я могу проверить, установлен ли он, если кажется, что это проблема.

UPDATE:

Драйвер PDO Mysql включен. Также phpinfo() для pro_mysql выглядит так:

 Directive                     Local Value               Master Value
 pdo_mysql.default_socket   /var/mysql/mysql.sock   /var/mysql/mysql.sock 

Однако каталог mysql не отображается в моей файловой системе. я должен создать это? или мне нужно где-то изменить этот путь?

UPDATE: Я думаю, проблема в том, что я на самом деле не настроил базу данных. как бы глупо с моей стороны не настраивать базу данных.

Полагаю, я сейчас попытаюсь это выяснить.

UPDATE:

В конечном итоге это решило то, что торт искал сокет Unix для базы данных в /var/mysql/mysql.sock, но mysql использовал сокет в /tmp/mysql.sock Я исправил это, создав символическую ссылку от /var/mysql/mysql.sock до /tmp/mysql.sock.

Ответы [ 2 ]

2 голосов
/ 06 марта 2012

Похоже, сам MySQL не установлен, но библиотеки PDO скомпилированы с вашим веб-сервером.Я не уверен, как проверить это в OSX, но вы можете попробовать проверить эту ссылку: http://www.sequelpro.com/docs/Install_MySQL_on_Mac_OS_X

РЕДАКТИРОВАТЬ

Войдите в MySQL (mysql -u root -p) и создайте базы данных:

create database cakephp

Затем создайте новое имя пользователя / пароль и предоставьте им доступ к этой базе данных.Допустим, вы хотите создать имя пользователя CakePHP и пароль CakePass:

GRANT ALL ON cakephp.* TO cakephp@localhost IDENTIFIED BY 'cakepass';
FLUSH PRIVILEGES;

И теперь ваш файл конфигурации database.php должен выглядеть следующим образом:

<?php
class DATABASE_CONFIG {
    public $default = array(
        'datasource'  => 'Database/Mysql',
        'persistent'  => false,
        'host'        => 'localhost',
        'login'       => 'cakephp',
        'password'    => 'cakepass',
        'database'    => 'cakephp',
        'prefix'      => ''
    );
}
0 голосов
/ 06 марта 2012

Нет, MySQL не поставляется с OSX, вам придется установить его.

Самое простое решение - использовать XAMPP вместо компиляции / установки MySQL самостоятельно.Он также поставляется с отдельным Apache и PHP, если вы не хотите связываться с родными версиями OSX.

...