
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.pid
arquivos, mysqld.sock
apesar de seus caminhos terem sido explicitamente definidos my.cnf
assim:
[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.pid
e mysqld.sock
estejam 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.pid
arquivo com touch
:
sudo touch /var/run/mysqld/mysqld.pid
Em seguida, crie um mysqld.sock
arquivo com touch
:
sudo touch /var/run/mysqld/mysqld.sock
Agora, altere a propriedade do diretório e dos arquivos para mysql:mysql
assim:
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.pid
e mysqld.sock
conforme o esperado.