Как мне заставить CakePHP испечь файл mysql.sock и распознать MySQL при использовании MAMP на Mac OSX? - PullRequest
3 голосов
/ 14 декабря 2008

Я сейчас читаю «Начало CakePHP: от новичка до профессионала» Дэвида Голдинга. В какой-то момент я должен использовать команду CLI «испечь торт», я получаю экран приветствия, но когда я пытаюсь испечь, например. В контроллере я получаю следующие сообщения об ошибках:

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

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

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

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

Я подозреваю, что сообщения об ошибках имеют отношение к php, пытающемуся получить доступ к неправильному mysql-сокету, а именно к osx mysql-socket по умолчанию - вместо того, который использует MAMP. Поэтому я изменяю свои конфигурации базы данных, чтобы подключаться к mysql-сокету UNIX (: /Applications/MAMP/tmp/mysql/mysql.sock):

class DATABASE_CONFIG {

    var $default = array(
        'driver' => 'mysql',
        'connect' => 'mysql_connect',
        'persistent' => false,
        'host' =>':/Applications/MAMP/tmp/mysql/mysql.sock', // UNIX MySQL-socket
        'login' => 'my_user',
        'password' => 'my_pass',
        'database' => 'blog',
        'prefix' => '',
    );

}

Но я получаю те же сообщения об ошибках с новым сокетом:

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

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

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

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

Кроме того, хотя я использую UNIX-сокет, который MAMP показывает на своем экране приветствия, CakePHP теряет соединение с базой данных при использовании этого сокета вместо localhost.

Любые идеи о том, как я могу заставить испечь работу?

- Редактировать 1 -

Спасибо, ребята, что помогли мне! :)

У меня проблема с выяснением, где в my.cnf редактировать, чтобы MySQL прослушивал TCP / IP-запрос. Единственный абзац, который я могу найти, где упоминается TCP / IP, следующий:

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
# 
#skip-networking

Это позволяет мне полностью отключить TCP / IP, что противоположно моему намерению. Я не знаю, как сделать то, что вы предлагаете, если бы вы могли быть более сложными, это было бы здорово. Я всего лишь n00b по этим вопросам: S

Рег. подключение к локальному сокету: я удалил начальное двоеточие в параметре хоста, тот же результат.

Ответы [ 11 ]

0 голосов
/ 14 декабря 2008

Да, была похожая проблема, я думаю, что указание на сокет: portno, как предположил Винко, может сработать - однако, если вы используете IP-адрес / localhost, все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...