The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Can't connect to local MySQL server through socket"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии
Изначальное сообщение [ Отслеживать ]

"Can't connect to local MySQL server through socket"  +/
Сообщение от dench email on 25-Апр-08, 13:35 
Сервер Fedora Core 6. Установлен и запущен Mysql
mysqladmin version
mysqladmin  Ver 8.41 Distrib 5.0.45, for pc-linux-gnu on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.45-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock

mysql -uroot
соединяется, работают запросы и все такое.
но вот из php соединиться не выходит:(

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) in /var/www/html/my.php on line 3

вроде как бы прав не хватает, но
[root@gw3 mysql]# ls -Z
srwxrwxrwx  mysql mysql user_u:object_r:mysqld_db_t:s0   mysql.sock

тут видна и метка от Selinux (user_u:object_r:mysqld_db_t:s0), вроде все правильно, поправьте пожалуйста, если тут другое должно быть. Чтобы отключить Selinux, потребуется перезагрузка сервера, а это крайне нежелательная вещь для данного сервера:(

вот что в лог записал
[root@gw3 mysql]# [root@gw3 data]# cat gw3.err
080425 14:32:37 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown

080425 14:32:37  InnoDB: Starting shutdown...
080425 14:32:40  InnoDB: Shutdown completed; log sequence number 0 43655
080425 14:32:40 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

080425 14:32:40  mysqld ended

080425 14:32:40  mysqld started
080425 14:32:41  InnoDB: Started; log sequence number 0 43655
080425 14:32:41 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.0.45-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)

socket и в my.cnf и в php.ini равен '/var/lib/mysql/mysql.sock'
Вроде все...

Я в тупике.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Can't connect to local MySQL server through socket"  +/
Сообщение от angra (ok) on 25-Апр-08, 15:49 
А файлик /var/lib/mysql/mysql.sock вообще доступен через php? Может selinux мешает, а может апач в чруте запущен. Также попробуйте соединится через tcp(127.0.0.1:3306), а не unix socket.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Can't connect to local MySQL server through socket"  +/
Сообщение от dench email on 28-Апр-08, 07:37 
>А файлик /var/lib/mysql/mysql.sock вообще доступен через php? Может selinux мешает, а может
>апач в чруте запущен. Также попробуйте соединится через tcp(127.0.0.1:3306), а не
>unix socket.

Gsnfkcz b xthtp 127.0.0.1:3306, то же самое - Can't connect to MySQL server on '127.0.0.1' (13)

походу придется сервак перезапускать:(

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Can't connect to local MySQL server through socket"  +/
Сообщение от dench email on 28-Апр-08, 08:41 
В общем, проблема решена углубленным изучением политик selinux. но все оказалось просто.
остановил mysql и apache
установил audit и checkpolicy
запускаю audit.
запускаю apache
выполняю команду
   grep http /var/log/audit/audit.log | audit2allow -M apache
в текущей директории будут три файла apache.mod, apache.pp, apache.te
В консоль вывалится подсказка, что нужно выполнить комунду
   semodule -i apache.pp
выполняем её.

те же действия выполняем и для mysql.
   1.запускаем mysql.
   2.grep mysql /var/log/audit/audit.log | audit2allow -M mysql
   3.semodule -i mysql.pp

перезапускаем apache и mysql (может и не надо, но я сделал), и все работает

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Can't connect to local MySQL server through socket "  +/
Сообщение от Zork email(??) on 31-Мрт-13, 01:34 
если, когда запускаеш с консоли php test.php все работает -- это точно selinux не пускает apache

лечение

setsebool httpd_can_network_connect_db 1


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема



Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру
Hosting by Ihor