Eu tenho um MBA em meados de 2013 executando o OSX 10.9.
O processo iniciado em cada inicialização é mysqld
. Eu acredito que era de uma versão antiga do MySQL que eu tinha instalado (via AMPPS ). Eu instalei o MAMP Pro e geralmente tenho conflitos entre esses dois processos. Toda vez que eu desligo e reinicio o meu mac, tenho que encontrar o processo em mysqld
execução (no monitor de atividades), encerrá-lo e iniciar o MAMP (através do comando terminal: /Application/MAMP/bin/startMysql.sh
não funcionará em nenhum outro lugar).
Então, eu estou querendo saber como posso desativar isso mysqld
em cada inicialização.
ps
para rastrear o processo pai e ver o que está iniciandomysqld
?Respostas:
Abra o terminal e, em seguida:
Onde "xxx.xxx" está incluído na saída do primeiro comando, por exemplo "org.macports.mysql". A senha do comando "sudo" é a senha da sua própria conta de usuário.
É verdade que o sudo não é necessário para "listar", mas como você já forneceu uma senha do sudo para o primeiro comando, ela é armazenada por um breve período na memória da sessão e não é necessária para o segundo comando (que é privilegiado). Caso contrário, basta pular o sudo no primeiro comando e usá-lo no segundo. Existem várias maneiras de esfolar um gato.
fonte
sudo launchctl list | grep -i mysql
não produz resultado. Nemsudo launchctl list | grep -i mysqld
i.imgur.com/WZ5EVjw.pngSe a versão do MySQL que foi instalada anteriormente se originou da página Downloads da Comunidade MySQL no site SUN / Oracle, é provável que isso
launchd
não esteja envolvido na inicialização domysqld
processo. Por alguma razão, o script de inicialização que é distribuído com o MySQL usa a tecnologia "Itens de inicialização" descontinuada para iniciar processos na inicialização. De fato, mesmo a distribuição binária atual (5.6.15)mysqld
usa StartupItems para iniciar o servidor no OS X (?!)O script de inicialização que está lançando a versão conflitante do MySQL provavelmente está localizado em
/Library/StartupItems/MYSQLCOM/MYSQLCOM
. No momento da inicialização, esse item de inicialização examinará o arquivo em/etc/hostconfig
para determinar se a configuração da variável "MYSQLCOM" está definida como "-YES-". Nesse caso, o script de inicialização será iniciadomysqld
.Deve ser possível desativar a inicialização do MySQL, modificando a linha
/etc/hostconfig
especificadaMYSQLCOM=-YES-
por dizerMYSQLCOM=-NO-
(que deve desativar o processo de inicialização na próxima inicialização).Você pode encerrar a instância atualmente em execução
mysqld
executando o comando:Para desativar permanentemente a inicialização do processo errado
mysqld
, deve ser possível primeiro parar o daemon usando o comando acima e, em seguida, remover o item de inicialização do MySQL usando o seguinte comando:Nota: você também pode ter o Painel de Preferências do MySQL instalado em
/Library/PreferencePanes/MySQL.prefpane
ou~/Library/PreferencePanes/MySQL.prefpane
... Esse painel de preferências também pode ser removido para 'limpar' partes da instalação antiga do MySQL.fonte
sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop
não produza nada: i.imgur.com/ukHtW5x.pngO seguinte funcionou para mim com o mysql
8.0.12
instalado usando o Homebrew nomacOS Mojave 10.14.1
:fonte
Pode ser mais fácil renomear o mysqld (ou movê-lo / fazer backup / excluí-lo) e, em seguida, reinicie e procure a mensagem de erro do item de inicialização que estava tentando iniciar o programa que não está mais disponível.
As outras respostas parecem cobrir a questão de procurar Agentes de Lançamento e Daemons de Lançamento, além de rastrear o PID, que geralmente não funciona para os daemons, pois eles geralmente têm um PID pai de 1.
Além disso, como o mysql não é enviado com o Mavericks, você deve acompanhar o pacote de instalação selecionado ou usar
mdfind mysqld
para localizar o pacote que trouxe esse banco de dados para o seu Mac e, em seguida, localize as instruções de desinstalação / desativação desse pacote do mysql. Você também deve procurar nas preferências do sistema, caso tenha instalado um controle lá para iniciar o software.fonte
mdfind mysqld
não mostra nenhum arquivo MySQL relacionado ao AMPPS, apenas arquivos relacionados ao MAMP (e alguns outros dos programas MySQL que eu instalei como o MySQL Workbench) #Comece descobrindo qual é o processo pai que iniciou o mysql. No Terminal, execute um
ps
comando para descobrir qual é o processo; você pode usar-j
ou-l
para listar a identificação principalppid
. Então, isso mostrará a você:A primeira coluna é seu ID do usuário, a segunda é a identificação do processo, a terceira é a identificação principal.
Se o ID pai for 1, ele será iniciado pelo daemon de inicialização raiz, o que provavelmente significa que é proveniente de um dos LaunchDaemons ou StartupItems. Se for proveniente de um processo que não seja 1, mas que seja um processo launchd, provavelmente será o LaunchAgents ou estará nos itens de login do sistema.
Portanto, o processo 1 é iniciado pela inicialização do sistema e qualquer coisa com o processo pai de 1 vem dos daemons do sistema. Tudo (neste caso) com um processo pai de 257 está sendo iniciado a partir de um dos LaunchAgents ou LoginItems.
Lembre-se de que o nome do daemon de inicialização ou item de inicialização não tem necessariamente 'mysql' no título - ele pode ter sido executado por um programa ou item de login diferente (portanto, simplesmente não é possível procurá-lo pelo nome) . Depois de encontrar o que o lançou, você poderá descobrir de onde veio.
fonte