Busca


imprimir pdf

Servidor MySQL : Problemas e Soluções


Sobre os servidores dedicados, pré-instalamos um servidor MySQL
http://www.mysql.org

Ficheiros /etc/my.cnf inexistentes


O conteúdo do ficheiro que lhe é dado abaixo é genérico então poderá reeditar o ficheiro para mudar estas variáveis.

Para criar o ficheiro my.cnf, ligue-se em root e faça isto:

# 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 (para deixar)
# chmod 600 /etc/my.cnf


Erros


Can't connect to local MySQL server through socket '/tmp/mysql.sock'

Para fixar este problema eis as manipulações a fazer.

Num primeiro tempo devemos adicionar na secção [mysqld] de /etc/my.cnf esta linha:

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


Depois, devemos configurar a variável mysql.default_socket em /usr/local/lib/php.ini:

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


Após todas estas manipulações basta relançar os serviços 'MySQL' e '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
Arrêt de httpd : [OK]
Démarrage de httpd: [OK]


User xxxxxxx has already more than 'max_user_connections' active connections

Eis as causas possíveis e as soluções adoptar :

  • não fecha as ligações para o servidor MySQL. MySQL deve esperar o timeout para libertar uma ligação. A solução consiste em pôr no código as fechaduras da ligação.

  • a ligação para MySQL demora muito tempo. Muitas vezes é devido ao facto que você abre a ligação para MySQL no principio de uma pagina, ao meio da pagina põe os comandos (select, update), e ao fim uma fechadura. Isto funciona, mas se o visitante do seu site tem um má ligação, ele demorara a carregar a pagina e não libertará ligação MySQL rapidamente. A solução consiste em abrir uma ligação para o servidor MySQL unicamente se precisa e no momento em que precisa, fazer as operações necessárias e em seguida fechar a ligação. Pode utilizar as variáveis para armazenar os dados após um acesso a base. Quanto mais o tempo de uma ligação é curto, mais pode fazer pedidos por segundo sobre o servidor MySQL.


  • os seus pedidos são muito pesados e o servidor MySQL demora a executa-los. Deve rever alguns dos seus scripts e talvez a concepção do site.

Fóruns


forum.ovh.pt/showthread.php?s=&threadid=531::Migração Mysql 3.X vers 4.X