Szukaj


drukuj pdf Polish
Serwer MySQL: problemy i rozwiązania

Na serwerach dedykowanych jest zainstalowany domyślnie serwer MySQL: http://www.mysql.org

Nieistniejące pliki /etc/my.cnf

Zawartość pliku już istnieje. Wprowadz do niego swoje zmienne. Aby utworzyć plik my.cnf, połącz się w root, po czym wykonaj następującą operację:

# cat > /etc/my.cnf
[mysqld]
set-variable = connect_timeout=20
set-variable = max_connections=100
skip-networking
set-variable = long_query_time=4
log-slow-queries = /var/log/mysql/slow-query.log

[safe_mysqld]
err-log = /var/log/mysql/info.log
ctrl-d (pour quitter)
# chmod 600 /etc/my.cnf


Błędy

  • Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Wykonaj kolejno:
- dodaj nastepujący wers w sekcji [mojsqld] /etc/my.cnf

socket=/var/lib/mysql/mysql.sock


- skonfiguruj w /usr/local/lib/php.ini zmienną mysql.default_socket :

mysql.default_socket = "/var/lib/mysql/mysql.sock"


- uruchom ponownie MySQL i Apache

# /etc/init.d/mysql stop
Killing mysqld with pid 25540
# /etc/init.d/mysql start
# Starting mysqld daemon with databases from /var/lib/mysql

#
# /etc/init.d/httpd restart
Arret de httpd : [OK]
Demarrage de httpd: [OK]


  • User xxxxxxx has already more than 'max_user_connections' active connections

Przyczyny i możliwe rozwiązania:

- nie zamykasz połączeń z serwerem MySQL. MySQL musi czekać na timeout, aby zwolnić połączenie. Wstaw do kodu polecenia zamknięcie połączenia.

- połączenie z MySQL zajmuje zbyt dużo czasu. Otwieraj połączenie z serwerem MySQL wyłącznie w sytuacji, gdy istnieje taka potrzeba, wykonuj dane operacje i natychmiast zamykaj połączenia. Aby gromadzić dane po dostępie do bazy, wykorzystuj zmienne. Im krótszy czas połączeń, tym więcej połączeń na sekundę możesz wykonać na serwerze MySQL.

- Twoje połączenia zbytnio obciążają serwer. Sprawdz dane skrypty i koncepcję budowy strony.

Forum dyskusyjne

http://forum.ovh.pl/