Por que “mysqld.pid” e “mysqld.sock” estão faltando em meu sistema mesmo que os valores estejam definidos em “my.cnf?”

Por que “mysqld.pid” e “mysqld.sock” estão faltando em meu sistema mesmo que os valores estejam definidos em “my.cnf?”

eu estava trabalhandouma resposta para esta pergunta—em um dos meus servidores de desenvolvimento Ubuntu 12.04.5 — e percebi que a instalação do MySQL não estava criando mysqld.pidarquivos, mysqld.sockapesar de seus caminhos terem sido explicitamente definidos my.cnfassim:

[mysqld]
# 
# * Basic Settings
# 
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

Por que isso aconteceria e o que pode ser feito para resolver o problema?

Responder1

Mesmo que os locais para mysqld.pide mysqld.sockestejam definidos no meu servidor my.cnf, o diretório não existe, portanto esses arquivos nunca são criados. Isso resolverá isso:

Primeiro, crie o mysqld/diretório /var/run/assim:

sudo mkdir -p /var/run/mysqld/

Em seguida, crie um mysqld.pidarquivo com touch:

sudo touch /var/run/mysqld/mysqld.pid

Em seguida, crie um mysqld.sockarquivo com touch:

sudo touch /var/run/mysqld/mysqld.sock

Agora, altere a propriedade do diretório e dos arquivos para mysql:mysqlassim:

sudo chown mysql:mysql -R /var/run/mysqld

Finalmente, as permissões nesses arquivos devem ser:

chmod 755 /var/run/mysqld
chmod 777 /var/run/mysqld/mysqld.sock
chmod 660 /var/run/mysqld/mysqld.pid

E reinicie o MySQL assim para configurar e criar esses arquivos:

sudo service mysql restart

Quando tudo estiver pronto, o MySQL será capaz de criar os arquivos mysqld.pide mysqld.sockconforme o esperado.

informação relacionada