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

1

Eu estava trabalhando em uma resposta para essa 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.pid e mysqld.sock arquivos apesar de seus caminhos serem explicitamente definidos em my.cnf da seguinte forma:

[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?

    
por JakeGould 01.10.2015 / 19:04

1 resposta

4

Embora os locais para mysqld.pid e mysqld.sock estejam definidos no my.cnf de meu servidor, o diretório não existe, então esses arquivos nunca são criados. Isso consertará isso:

Primeiro, crie o diretório mysqld/ em /var/run/ da seguinte forma:

sudo mkdir -p /var/run/mysqld/

Em seguida, crie um arquivo mysqld.pid com touch :

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

Em seguida, crie um arquivo mysqld.sock com touch :

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

Agora altere as propriedades do diretório e dos arquivos para mysql:mysql da seguinte forma:

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

E reinicie o MySQL desta forma para obter esses arquivos definidos e criados:

sudo service mysql restart

Quando tudo isso for feito, o MySQL poderá criar os arquivos mysqld.pid e mysqld.sock conforme o esperado.

    
por 01.10.2015 / 19:06