Я сейчас читаю «Начало 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
Рег. подключение к локальному сокету: я удалил начальное двоеточие в параметре хоста, тот же результат.