Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql_connect():Няма такъв файл или директория

Да, не можете да се свържете по този начин!

@PLB и @jammypeach mysqli е след v4.1, той използва v3 :)Момчета прочетете спецификациите, ако искате наистина да помогнете!

Не можете да се свържете, защото вашият сокет файл е малко погрешен. Сега си спомням, че старият RH имаше този проблем преди. Вашият сокет вероятно е като /var/mysql/mysql.sock или /tmp/mysql.sock, но едно или повече приложения търсят другото.

Ако вашият е /tmp/mysql.sock, но не /var/mysql/mysql.sock, трябва:

cd /var 
mkdir mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock

Ако имате /var/mysql/mysql.sock, но нямате /tmp/mysql.sock, тогава:

cd /tmp
ln -s /var/mysql/mysql.sock mysql.sock

Ще ви трябват разрешения, за да направите промените. Просто sudo, ако е необходимо преди командите по-горе!

ДРУГО РЕШЕНИЕ (по-лесно):

Създайте файл и извикайте phpinfo(); Потърсете 'mysql.default_socket'; или 'pdo_mysql.default_socket';Отворете My.ini или My.cnf намерете стойността на сокета, напр. socket=/tmp/mysql.sockОтворете вашия файл php.ini (който също се намира на вашата страница phpinfo() като „Зареден конфигурационен файл“) и променете всички поява на неправилното местоположение на сокета на правилното местоположение на сокета от MySQL.

ДРУГО РЕШЕНИЕ (най-лесно):DSN за PDO:

mysql:unix_socket=/tmp/mysql.sock;dbname=...

mysql_connect:

$db = mysql_connect('localhost:/tmp/mysql.sock', ...

Системата ви е наистина страшна, когато става въпрос за сигурност, ако хоствате чувствителни данни, бих надстроил до най-новите версии.

---- АКТУАЛИЗИРАНЕ ----

Aaahhhh PHP 5.0 и MySQL 3.23 :)

PHP 5 има пакет mysql клиент, който не може да се свърже с MySQL база данни по-малка от версия 4.1. Започвайки с версия 4.1, MySQL използва нов начин за хеширане на пароли, който не е съвместим с бази данни преди 4.1. Сървърът, към който се свързва вашата конфигурация, е версия 3.23. Така че трябва да си вземете по-висока версия на MySQL. Съжалявам, но няма друго практично решение за вашия случай. Ако бях на твое място, щях да надстроя цялата система и да инсталирам най-новата версия на ОС, ако трябваше, щях да отида с Debian и най-новите стабилни версии на PHP и MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте ново приложение Ruby on Rails, използвайки MySQL вместо SQLite

  2. Заявка връща един допълнителен запис. Някакъв съвет как да го премахнете от резултатите от заявката?

  3. PHP база данни Невалиден аргумент, предоставен за foreach()

  4. MySQL заявка за общи приятели

  5. Грешка в Python MySQLdb - какво причинява това