Temat: Problem z mysql i php

Witam
Zainstalowałem cały zestaw LAMP na  TP-Link TL-WR1043ND. Jednak mam problem z MySQL. Aplikacja napisane w PHP daje błąd:
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp' (146) połączenie z skryptu przed PDO.
Phpmyadmin nie chcę ruszyć ale jako powód daje:
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
W obydwu wpadka nie mam pojęcie o co chodzi.

2

Odp: Problem z mysql i php

Jak mysql skonfigurowałeś? Przez socket czy przez adres ip? I w końcu: czy uruchomiłeś mysqld i ten socket w końcu zrobił w /tmp?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Problem z mysql i php

Robiłem według tego: http://eko.one.pl/?p=openwrt-lamp.
Zmieniłem tylko katalogi/mnt/sda1/mysql na /db/mysql i /mnt/sda1/tmp /db/tmp bo mam extroota. Ustawiłem też hasło roota.

4

Odp: Problem z mysql i php

Czyli w ogóle mysql nie skonfigurowałeś. Zobacz konfigurację, zobacz gdzie jest socket robiony.

Domyślnie w konfigu jest to /var/run/mysqld.sock, a Twoja magiczna aplikacja oczekuje że będzie to /tmp...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez portals 2012-08-09 10:59:02)

Odp: Problem z mysql i php

Konfiguracja mysql ograniczyła się do hasła roota.
Przy starcie php dostaję:
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/pdo-mysql.so' - File not found in Unknown on line 0
mimo tego że:
root@OpenWrt:/www1$ opkg install php5-mod-pdo-mysql
Package php5-mod-pdo-mysql (5.3.6-3.3) installed in root is up to date.
w /etc/php.ini znalazłem pdo_mysql.default_socket= i mysql.default_socket i dodałem po=/var/run/mysqld.sock.
Jednak dalej:
Połączenie nie mogło zostać utworzone: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp' (146)
w php łączę się tak:

try
   {
      $db_pdo = new PDO('mysql:host=localhost;dbname=app2', 'app2', '****', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
      $db_pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   }

6

Odp: Problem z mysql i php

libmysqlclient masz zainstalowany?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Problem z mysql i php

Tak

8

Odp: Problem z mysql i php

zrób strings /usr/lib/php/pdo-mysql.so | grep lib

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez portals 2012-08-09 11:22:46)

Odp: Problem z mysql i php

strings: /usr/lib/php/pdo-mysql.so: No such file or directory
ale jest plik o podobnej nazwie /pdo_mysql.so
root@OpenWrt:/usr/lib/php$  strings /usr/lib/php/pdo_mysql.so | grep lib
libmysqlclient.so.16
libz.so
libcrypt.so.0
libnsl.so.0
libm.so.0
libuClibc++.so.0
libgcc_s.so.1
libc.so.0
libmysqlclient_16
A stored procedure returning result sets of different size was called. This is not supported by libmysql
/home/jow/devel/openwrt/10.03.1/ar71xx/build_dir/target-mips_r2_uClibc-0.9.30.1/php-5.3.6/ext/pdo_mysql/mysql_driver.c
/home/jow/devel/openwrt/10.03.1/ar71xx/build_dir/target-mips_r2_uClibc-0.9.30.1/php-5.3.6/ext/pdo_mysql/mysql_statement.c

W configu jest pdo-mysql.so a plik nazywa się pdo_mysql.so. Zmieniałem i teraz jest:
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'SQLite' already loaded in Unknown on line 0
PHP 5.3.6 (cgi-fcgi) (built: Nov 14 2011 18:19:04)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
ale nadal:
Połączenie nie mogło zostać utworzone: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp' (146)

10

Odp: Problem z mysql i php

Zrób jeszcze ln -s /etc/my.cfg /etc/mysql/my.cfg

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11 (edytowany przez portals 2012-08-09 21:32:42)

Odp: Problem z mysql i php

root@OpenWrt:~$ ln -s /etc/my.cfg /etc/mysql/my.cfg
ln: /etc/mysql/my.cfg: No such file or directory
root@OpenWrt:~$ mkdir /etc/mysql/
root@OpenWrt:~$ ln -s /etc/my.cfg /etc/mysql/my.cfg
root@OpenWrt:~$ cd /www1/
root@OpenWrt:/www1$ php-cgi index.php
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'SQLite' already loaded in Unknown on line 0
Segmentation fault
root@OpenWrt:/www1$ php-cgi -v
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'SQLite' already loaded in Unknown on line 0
PHP 5.3.6 (cgi-fcgi) (built: Nov 14 2011 18:19:04)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
root@OpenWrt:/www1$ php-fcgi index.php
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'SQLite' already loaded in Unknown on line 0
X-Powered-By: PHP/5.3.6
Content-type: text/html


Połączenie nie mogło zostać utworzone: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp' (146)

12

Odp: Problem z mysql i php

Czemu klient uparcie chce się łączyć przez /tmp?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez portals 2012-08-09 21:42:00)

Odp: Problem z mysql i php

Wykorzystałem przykładowy kod bez pdo i nie ma problemów. Problem tylko z PDO.
Przypisywanie kodu bez PDO raczej odpada.

14

Odp: Problem z mysql i php

Myślałem, że juz wiecej problemów nie będzie a jednak...
Mam dokładnie taki sam problem jak autor tematu, podczas instalacji nextcloud/owncloud wywala błąd:

SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp' (146

konfiguracja my.cnf

[client]
port            = 3306
socket          = /var/run/mysqld.sock

[mysqld]
user            = root
socket          = /var/run/mysqld.sock
port            = 3306
basedir         = /usr

zrobiłem dowiązanie z /tmp/mysqld.sock do /var/run/mysqld.sock ale nie pomogło.
libmysqlclient  zainnstalowany


Gdy zamiast localhost wpiszę 127.0.0.1 to wywala błąd "Błąd wewnętrzny serwera" jednakże pomimo włączenia logów w php.ini to w /var/log/ nie ma żadnych logów.

15

Odp: Problem z mysql i php

1. wpisuj 127.0.0.1 właśnie
2. zrób dowolną stronę testową: https://eko.one.pl/?p=openwrt-lamp#sprawdzeniedziaania i zobacz czy działa. Jak nie - problemu szukaj w instalacji serwera lub php.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Problem z mysql i php

2. Taka stronę testową zrobiłem na samym początku i działa.
    Jednakże też wyswietla tam MYSQLI_SOCKET  /tmp  czyli gdzies musi byc ten tmp zaszyty

17

Odp: Problem z mysql i php

A jaką wersję mysql masz? Bo jak 5.1 to się nie warto męczyć. Nowy owncloud wymaga mysql 5.6.

18

Odp: Problem z mysql i php

No wyświetla ten socket w /tmp bo mysql potrafi gadać własnie albo po uniksowym sockecie albo po tcp. A ty masz ustawić 127.0.0.1 i nie bawić się w sockety.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19 (edytowany przez kidler 2017-08-03 17:49:35)

Odp: Problem z mysql i php

ok faktycznie po 127.0.0.1 zaczęło instalować i potem się wykrzaczyło. z logów wynika

Specified key was too long; max key length is 1000 bytes

co z tym można zrobić?

po doinstalowaniu sqllite i zmianie na sqlite podczas instalacji zainstalowało się aczkolwiek same błędy w logach http://wklej.to/Yb8sX

20 (edytowany przez steel_rat 2017-08-03 18:03:00)

Odp: Problem z mysql i php

kidler napisał/a:

ok faktycznie po 127.0.0.1 zaczęło instalować i potem się wykrzaczyło. z logów wynika

Specified key was too long; max key length is 1000 bytes

co z tym można zrobić?

po doinstalowaniu sqllite zainstalowało się aczkolwiek same błędy w logach http://wklej.to/Yb8sX

ten problem rozwiązuje mysql w wersji wyższej niż 5.1 (np 5.6), bądź instalacja pgSQL (postgresql). Na mysql 5.1.x prawidłowo działa tylko owncloud do wersji 8.0.x

21

Odp: Problem z mysql i php

fakt nie zwróciłem uwagi że to aż takie stare mysql... szkoda tylko że wersja 8 nie wspiera php 7.1 które mam na routerze. chyba pozostaje tylko pobawic sie w postqresql

22 (edytowany przez steel_rat 2017-08-03 22:29:37)

Odp: Problem z mysql i php

Ja zkompilowalem sobie php5  do lede. Chciałem przejść na PHP 7 ale okazało sie, ze jest jakiś problem dla roundcuba oraz rainloopa (obydwa pozwalają przeglądać pocztę przez www), który nie pozwala pobrać listy wiadomość. Na PHP 5 nie ma tego problemu....

23

Odp: Problem z mysql i php

jakos prosto to się kompiluje? jakiś tutorial?

24

Odp: Problem z mysql i php

Kompilacja jest zawsze taka sama: http://eko.one.pl/?p=openwrt-kompilacja

z tym że musiał byś sam przenieść pakiety z php5 ze starszych wydań do gałęzi lede.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25

Odp: Problem z mysql i php

Jeszcze jedna rzecz. Najnowszy Owncloud na wnr3200 + nginx + PHP 5 + pgsql działa poprawnie. Natomiast najnowszy Nextcloud już nie. Wyskakuje intetnal error i koniec. Nie udało mi się ustalić dlaczego.