URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3403
[ Назад ]

Исходное сообщение
"PHP не соединяется с MySQL"

Отправлено rotor , 22-Июн-05 22:16 
На OpenBSD 3.7 крутится Apache, MySQL и PHP,последние два- никак не хотят дружить! для проверки используется простой скрипт:
  <?
     mysql_connect("localhost");
     mysql_select_db("test");
  ?>
после его запуска, в еррорлоге апача нахожу следующее:
mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock'
mysql_select_db(): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock'
mysql_select_db(): A link to the server could not be established
путь к сокету- /var/run/mysql/mysql.sock , для проверки, на /var/run/mysql поставил права 777, не помогло...
MySQL запускался так: /usr/local/bin/mysqld_safe --user=_mysql. Захожу: mysql -u root - ВСЁ РАБОТАЕТ! в php.ini был прописан localhost, port=3306,
user=root... это так же не возымело результата!
Если у кого есть идеи по этому поводу- делитесь, буду пробовать!

Содержание

Сообщения в этом обсуждении
"PHP не соединяется с MySQL"
Отправлено GD , 26-Июн-05 14:33 
>На OpenBSD 3.7 крутится Apache, MySQL и PHP,последние два- никак не хотят
>дружить! для проверки используется простой скрипт:
>  <?
>     mysql_connect("localhost");
>     mysql_select_db("test");
>  ?>
>после его запуска, в еррорлоге апача нахожу следующее:
>mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock'
>mysql_select_db(): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock'
>mysql_select_db(): A link to the server could not be established
>путь к сокету- /var/run/mysql/mysql.sock , для проверки, на /var/run/mysql поставил права 777,
>не помогло...
>MySQL запускался так: /usr/local/bin/mysqld_safe --user=_mysql. Захожу: mysql -u root - ВСЁ РАБОТАЕТ!
>в php.ini был прописан localhost, port=3306,
>user=root... это так же не возымело результата!
>Если у кого есть идеи по этому поводу- делитесь, буду пробовать!


покажи следующее:

ls -la /var/run/mysql
grep mysql /usr/local/etc/php.ini

путь до php.ini возможно наврал,
проверь что рисуется в phpinfo()


"PHP не соединяется с MySQL"
Отправлено rotor , 01-Июл-05 01:33 
ls -la /var/run/mysql

total 4
drwx--x--x  2 _mysql  _mysql  512 Jul  1 01:29 .
drwxr-xr-x  3 root    wheel   512 Jun 26 16:01 ..
srwxrwxrwx  1 _mysql  _mysql    0 Jul  1 01:29 mysql.sock


grep mysql /usr/local/etc/php.ini:

mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
; Default port number for mysql_connect().  If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
mysql.default_port = 3306
mysql.default_socket = /var/run/mysql/mysql.sock
; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host = localhost
; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user = root
; Default password for mysql_connect() (doesn't apply in safe mode).
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = On
extension=mysql.so

phpinnfo()

mysql
MySQL Support                enabled
Active Persistent Links      0
Active Links                  0
Client API version       4.0.23
MYSQL_MODULE_TYPE      external
MYSQL_SOCKET         /var/run/mysql/mysql.sock
MYSQL_INCLUDE        -I/usr/local/include/mysql
MYSQL_LIBS        -L/usr/local/lib -lmysqlclient

Directive            Local Value           Master Value
mysql.allow_persistent        On                       On
mysql.connect_timeout        60                       60
mysql.default_host     localhost             localhost
mysql.default_password      no value             no value
mysql.default_port        3306              3306
mysql.default_socket  /var/run/mysql/mysql.sock    /var/run/mysql/mysql.sock
mysql.default_user       root                       root
mysql.max_links             Unlimited            Unlimited
mysql.max_persistent     Unlimited            Unlimited
mysql.trace_mode        On                       On


"PHP не соединяется с MySQL"
Отправлено GD , 01-Июл-05 13:07 
[skip]

mysql_connect('localhost', 'root');


"PHP не соединяется с MySQL"
Отправлено rotor , 01-Июл-05 14:58 
не понял что значит [skip]...
выдаёт всё ту же ошибку:

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /htdocs/index.php on line 9

насколько я понимаю- всё дело в сокете... хотя он и создаётся там где надо...
и как мне кажется всё это связано с тем, что по умолчанию в OpenBSD что-то не так как мне надо... уже яндекс весь изнасиловал, но ничего похожего не нашйл... только одна ссылка на статью по установке mysql в OpenBSD да и та дохлая.... (((
От безвыходности даже PostgreSQL поставил, да и с ним подобная фигня:

Warning: pg_pconnect(): Unable to connect to PostgreSQL server: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? in /htdocs/index.php on line 8

опять всё не так... и ни кде об этом ни слова...


"PHP не соединяется с MySQL"
Отправлено rotor , 01-Июл-05 15:54 
ещё забыл написать что, хотя, mysql.sock и создаётся, но имеет размер 0!
так и должно быть?

"PHP не соединяется с MySQL"
Отправлено GD , 01-Июл-05 17:19 
>ещё забыл написать что, хотя, mysql.sock и создаётся, но имеет размер 0!
>
>так и должно быть?

да, это сокет


"PHP не соединяется с MySQL"
Отправлено rotor , 01-Июл-05 17:33 
я имелл ввиду его размер, он не содержит не каких данных! Или важно только его наличае?

"PHP не соединяется с MySQL"
Отправлено GD , 01-Июл-05 17:47 
>я имелл ввиду его размер, он не содержит не каких данных! Или
>важно только его наличае?

это не файл, это сокет...
он данные не содержит


"PHP не соединяется с MySQL"
Отправлено rotor , 01-Июл-05 19:25 
ясно, спасиьо за разъяснения, а конкретно по этому случаю ты можешь что-нибудь посоветовать? а то я уже и не знаю что делать!!!
OpenBSD не хочется сносить... а придётся если не разберусь с этим.... или, может проще из исходников поставить?

"PHP не соединяется с MySQL"
Отправлено GD , 03-Июл-05 22:37 
>ясно, спасиьо за разъяснения, а конкретно по этому случаю ты можешь что-нибудь
>посоветовать? а то я уже и не знаю что делать!!!
>OpenBSD не хочется сносить... а придётся если не разберусь с этим.... или,
>может проще из исходников поставить?

хм...хм...
покажи
sockstat -l | grep mysql
ps -axwww | grep mysql


"PHP не соединяется с MySQL"
Отправлено rotor , 04-Июл-05 15:45 
ps -axwww | grep mysql

31738 p1- I       0:00.01 /bin/sh /usr/local/bin/mysqld_safe --user=_mysql
31721 p1- I       2:25.66 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/mysql --user=_mysql --pid-file=/var/mysql/gate.bor.net.pid --port=3306 --socket=/var/run/mysql/mysql.sock

а sockstat команды нет...


"PHP не соединяется с MySQL"
Отправлено kazuss , 06-Июл-05 17:00 
ln /var/run/mysql/mysql.sock /var/www/var/run/mysql

>ps -axwww | grep mysql
>
>31738 p1- I       0:00.01 /bin/sh /usr/local/bin/mysqld_safe
>--user=_mysql
>31721 p1- I       2:25.66 /usr/local/libexec/mysqld --basedir=/usr/local
>--datadir=/var/mysql --user=_mysql --pid-file=/var/mysql/gate.bor.net.pid --port=3306 --socket=/var/run/mysql/mysql.sock
>
>а sockstat команды нет...



"PHP не соединяется с MySQL"
Отправлено rotor , 07-Июл-05 12:15 
попробовал- ссылка создаётся, а проблема не исчезает! я уже в нескольких местах сталкивался с рекомендацией переноса сокета в /var/www/var/run/mysql, но при попытке это сделать, сервер MySQL вообще не запускается: ended from pid file.

"PHP не соединяется с MySQL"
Отправлено rotor , 29-Июл-05 22:18 
если у кого-то возникнет подобная проблема, то она решается просто, апач надо запустить httpd -u, огромное спасибо form!

"PHP не соединяется с MySQL"
Отправлено _Ale_ , 04-Авг-05 13:18 
>если у кого-то возникнет подобная проблема, то она решается просто, апач надо
>запустить httpd -u, огромное спасибо form!

Этим ты запускаешь апач не в chrot'e
Совет - оставь как есть, только  в конфигах поменяй с localhost на твой_IP - все будет ОК.