부팅시 MySQL이 시작되지 않도록하려면 어떻게해야합니까?


10

OSX 10.9를 실행하는 2013 년 중반 MBA가 있습니다.

시작할 때마다 시작되는 프로세스는 mysqld입니다. 나는 그것이 내가 설치 한 MySQL의 이전 버전 ( AMPPS 를 통해 ) 에서 온 것이라고 생각합니다 . 그런 다음 MAMP Pro를 설치했는데 종종이 두 프로세스간에 충돌이 발생합니다. Mac을 종료하고 다시 시작할 때마다 mysqld(활동 모니터에서) 실행중인 프로세스를 찾아서 종료 한 다음 터미널 명령을 통해 MAMP를 시작해야합니다 ( /Application/MAMP/bin/startMysql.sh다른 곳에서는 작동하지 않습니다).

그래서 mysqld모든 시작에서 이것을 실행 하지 못하게하는 방법이 궁금합니다 .


당신이 실행할 수있는 ps무엇을 시작하는 부모 프로세스를 추적하고 참조 mysqld?
bmike

더 많은 정보를 가진 사람이 있는지 살펴 보겠습니다. 프로세스를 추적하고 터미널에서 종료하는 것이 가장 쉬운 방법은 아닙니다. Activity Monitor에서 동일한 정보를 얻을 수 있습니다-mysql을 선택한 다음 info를 선택한 다음 부모 프로세스를 찾으십시오.
bmike

1
수퍼 유저에서 가능한 투표 답변 : superuser.com/a/334622
마이키 TK

시작시 시작된 응용 프로그램을위한 것이기 때문에 이것이 도움이 될지 확실하지 않지만 시스템 환경 설정 >> 사용자 및 그룹 >> 로그인 요소를 살펴보십시오. 시작시 실행되는 앱을 찾을 수 있습니다.
FeliceM

시작시 MAMP 만 실행하는 것이 아니라 AMPPS인지 확인하십시오. 컴퓨터를 다시 시작하고 'ps -Awww | 터미널에 grep mysql '을 입력하십시오. 최소한 어느 실행 파일이 실행 중인지 알려줘야합니다.
MJ Walsh

답변:


10

터미널을 열고 다음을 수행하십시오.

sudo launchctl list | grep -i mysql

launchctl remove xxx.xxx.mysql

"xxx.xxx"는 첫 번째 명령의 출력에 포함됩니다 (예 : "org.macports.mysql"). "sudo"명령의 비밀번호는 자신의 사용자 계정 비밀번호입니다.

사실, sudo는 "목록"할 필요는 없지만 이미 첫 번째 명령에 대해 sudo 암호를 제공했기 때문에 세션 메모리에 잠시 동안 저장되며 권한이있는 두 번째 명령에는 필요하지 않습니다. 그렇지 않으면 첫 번째 명령에서 sudo를 건너 뛰고 두 번째 명령에서 사용하십시오. 고양이를 껍질을 벗기는 방법에는 여러 가지가 있습니다.


2
sudo launchctl list | grep -i mysql결과가 없습니다. 어느 쪽도하지 않는다 sudo launchctl list | grep -i mysqld i.imgur.com/WZ5EVjw.png
자키 아지즈

AMPPS 관리자 패널을 사용하여 AMPPS MySQL 데몬을 비활성화 할 수 있습니다. 또는 다른 프레임 워크가 설치되어 있으므로 AMPPS를 완전히 제거하십시오.
user64759

AMPPS를 제거 했는데도 여전히이 문제가 있습니다.
Zaki Aziz

3

이전에 설치된 MySQL 버전이 SUN / Oracle 사이트의 MySQL Community Downloads 페이지에서 시작된 launchd경우 mysqld프로세스 시작과 관련이 없을 수 있습니다. 어떤 이유로 MySQL과 함께 배포 된 시작 스크립트는 더 이상 사용되지 않는 "시작 항목" 기술을 사용하여 부팅시 프로세스를 시작합니다. 사실 현재 바이너리 배포판 (5.6.15)조차도 mysqldStartupItems를 사용하여 OS X (?!)에서 서버를 시작합니다.

충돌하는 버전의 MySQL을 시작하는 시작 스크립트는 대부분에 있습니다 /Library/StartupItems/MYSQLCOM/MYSQLCOM. 부팅시 해당 시작 항목은 파일을 검사 /etc/hostconfig하여 "MYSQLCOM"변수의 설정이 "-YES-"로 설정되어 있는지 확인합니다. 그렇다면 시작 스크립트가 시작 mysqld됩니다.

에서 라인을 수정하여 MySQL을 시작을 비활성화 할 수 있어야 /etc/hostconfig함을 지정 MYSQLCOM=-YES-MYSQLCOM=-NO-(다음 부팅시 시작 프로세스를 비활성화해야하는 참조).

mysqld다음 명령을 수행하여 현재 실행중인 인스턴스를 종료 할 수 있습니다 .

sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop

잘못된 mysqld 프로세스 의 시작을 영구적으로 비활성화하려면 먼저 위 명령을 사용하여 데몬을 중지 한 후 다음 명령을 사용하여 MySQL 시작 항목을 제거해야합니다.

sudo rm -rf /Library/StartupItems/MYSQLCOM

참고 : /Library/PreferencePanes/MySQL.prefpane또는 MySQL 환경 설정 창을 설치 하거나 ~/Library/PreferencePanes/MySQL.prefpane...이 환경 설정 창을 제거하여 이전 MySQL 설치 부분을 '정리'할 수도 있습니다.


불행히도 MySQL과 관련된 / etc / hostconfig 파일에는 아무것도 없습니다. i.imgur.com/3C2jxPZ.png
Zaki Aziz

그리고 sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop아무것도 생산하지 마십시오
Zaki Aziz

3

다음은 8.0.12Homebrew를 사용하여 설치된 mysql에서 나를 위해 일했습니다 macOS Mojave 10.14.1.

rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

그것은 mybrew가 설치된 homebrew에서 만났습니다. 감사.
Almas Dusal

1

mysqld의 이름을 바꾸거나 (이동 / 백업 / 삭제), 더 이상 사용할 수없는 프로그램을 시작하려는 시작 항목에 대한 오류 메시지를 다시 찾아서 찾아 보는 것이 더 쉬울 수 있습니다.

다른 답변은 Launch Agent 및 Launch Daemon을 찾는 방법과 일반적으로 데몬이 일반적으로 부모 PID가 1이므로 데몬에서 작동하지 않는 PID 추적을 다루는 것 같습니다.

또한 mysql은 Mavericks와 함께 제공되지 않으므로 선택한 설치 패키지를 추적하거나 mdfind mysqld해당 데이터베이스를 Mac으로 가져온 패키지를 찾은 다음 해당 mysql 패키지에 대한 제거 / 비활성화 지침을 찾을 수 있습니다. 소프트웨어를 시작하기 위해 시스템에 컨트롤을 설치 한 경우 시스템 환경 설정을 살펴보아야합니다.


mdfind mysqldAMPPS 관련 MySQL 파일을 표시하지 않고 MAMP 관련 파일 (및 MySQL Workbench와 같이 설치 한 MySQL 프로그램 중 일부)
Zaki Aziz

1

mysql을 시작한 상위 프로세스가 무엇인지 찾아서 시작하십시오. 터미널에서 ps명령을 실행 하여 프로세스가 무엇인지 찾으십시오. 당신은 사용할 수 있습니다 -j또는 -l부모 ID를 나열합니다 ppid. 그래서 이것은 당신에게 보여줄 것입니다 :

$ ps -axjc | grep mysql

첫 번째 열은 사용자 ID이고 두 번째 열은 프로세스 ID이며 세 번째 열은 부모 ID입니다.

부모 ID가 1이면 루트 시작 데몬에 의해 시작된 것입니다. 이는 LaunchDaemons 또는 StartupItems 중 하나에서 온 것일 수 있습니다. 1이 아닌 프로세스에서 시작된 프로세스 인 경우 LaunchAgents이거나 시스템 로그인 항목에있을 수 있습니다.

root                1     0     1      0    0 Ss     ??    4:49.10 launchd
alblue            257     1   257      0    0 Ss     ??    0:16.29 launchd
_spotlight        415     1   415      0    0 Ss     ??    0:00.94 launchd

따라서 프로세스 1은 시스템 시작에 의해 시작되며 상위 프로세스 1의 모든 것은 시스템 데몬에서 나옵니다. 부모 프로세스가 257 인 항목 (이 경우)은 LaunchAgents 또는 LoginItem 중 하나에서 시작됩니다.

시작 데몬 또는 시작 항목의 이름에는 제목에 반드시 'mysql'이있을 필요는 없습니다. 다른 프로그램이나 로그인 항목에 의해 실행될 수 있습니다 (따라서 이름으로 검색하면 찾을 수 없음) . 당신이 그것을 시작한 것을 발견하면, 당신은 그것이 어디서 왔는지 알아낼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.