MySQL'in önyükleme sırasında başlamasını nasıl devre dışı bırakabilirim?


10

OSX 10.9 çalıştıran bir 2013 ortası MBA var.

Her başlangıçta başlayan süreç mysqld. ( AMPPS aracılığıyla) kurduğum MySQL'in eski bir versiyonundan geldiğine inanıyorum . Daha sonra MAMP Pro'yu yükledim ve genellikle bu iki işlem arasında çakışma yaşıyorum. Mac'imi her kapatıp yeniden mysqldbaşlattığımda , işlemin çalıştığını (etkinlik monitöründe) bulmalı, çıkmalı ve sonra MAMP'ı başlatmalıyım (terminal komutu aracılığıyla: /Application/MAMP/bin/startMysql.shbaşka bir yerden çalışmayacak).

Bu yüzden mysqldher başlangıçta bunun çalışmasını nasıl devre dışı bırakabileceğimi merak ediyorum .


psÜst süreci izlemek ve neyin başladığını görmek için koşabiliyor mysqldmusunuz?
bmike

Birisinin daha fazla hedeflenmiş bilgiye sahip olup olmadığını görelim. İşlemleri takip etmek ve terminalden öldürmek yazmak en kolay yöntem değildir. Aynı bilgileri Etkinlik Monitörü'nden alabilir - mysql'i seçin - sonra bilgi, sonra üst işlemi arayın.
bmike


Bunun başlangıçta başlatılan uygulamalar için olduğundan emin olup olmadığından emin değilsiniz, Ancak Sistem Tercihleri ​​>> Kullanıcılar ve Gruplar >> Giriş öğelerine bir göz atın. Başlangıçta başlatılan uygulamayı bulacaksınız.
FeliceM

AMPPS olduğundan ve başlangıçta sadece MAMP'ın çalıştığından emin misiniz? Bilgisayarı yeniden başlatın ve 'ps -Awww | grep mysql 'ifadesini kullanın. Bu, en azından hangi yürütülebilir dosyanın çalıştığını size bildirmelidir.
MJ Walsh

Yanıtlar:


10

Terminali açın, ardından:

sudo launchctl list | grep -i mysql

launchctl remove xxx.xxx.mysql

Burada "xxx.xxx" ilk komutun çıktısına dahil edilir, örneğin "org.macports.mysql". "Sudo" komutunun şifresi kendi kullanıcı hesabınızın şifresidir.

Doğru, sudo'nun "listelemesi" için gerekli değildir, ancak ilk komut için zaten bir sudo şifresi verdiğiniz için, oturum belleğinde kısa bir süre saklanır ve ikinci komut için (ayrıcalıklı değildir) gerekli değildir. Aksi takdirde, ilk komutta sudo'yu atlayın ve ikinci komutta kullanın. Bir kediyi ciltlemek için birden fazla yol vardır.


2
sudo launchctl list | grep -i mysqlsonuç vermez. Ayrıca sudo launchctl list | grep -i mysqld i.imgur.com/WZ5EVjw.png
Zaki Aziz

AMPPS MySQL arka plan programını devre dışı bırakmak için AMPPS Yönetici Panelini kullanabilirsiniz. Ya da daha iyisi, şimdi yüklü başka bir çerçeveniz olduğundan AMPPS'yi tamamen kaldırmanız yeterlidir.
user64759

AMPPS'yi kaldırdım ve hala bu sorunum var.
Zaki Aziz

3

Daha önce yüklenmiş olan MySQL sürümü SUN / Oracle sitesindeki MySQL Topluluk İndirmeleri sayfasından geliyorsa, launchdmysqld sürecin başlatılmasıyla ilgili değildir . Nedense, MySQL ile dağıtılan başlangıç ​​komut dosyası , önyükleme sırasında işlemleri başlatmak için kullanımdan kaldırılmış "Başlangıç ​​öğeleri" teknolojisini kullanır. Aslında, mevcut ikili dağıtım (5.6.15) bile mysqldsunucuyu OS X (?!) üzerinde başlatmak için StartupItems kullanır

MySQL'in çakışan sürümünü başlatan başlangıç ​​komut dosyası büyük olasılıkla adresinde bulunur /Library/StartupItems/MYSQLCOM/MYSQLCOM. Önyükleme zamanında, bu başlangıç ​​öğesi /etc/hostconfig"MYSQLCOM" değişkeni ayarının "-YES-" olarak ayarlanıp ayarlanmadığını belirlemek için adresindeki dosyayı inceler . Öyleyse, başlangıç ​​komut dosyası başlatılır mysqld.

İçindeki satırı değiştirerek MySQL'in başlatılmasını devre dışı bırakmak mümkün olmalıdır /etc/hostconfig yani belirttiğinden MYSQLCOM=-YES-söylemek MYSQLCOM=-NO-(sonraki açılışta başlatma işlemini devre dışı olmalıdır).

Şu anda çalışan örneğini sonlandırabilirsiniz mysqld komutu uygulayarak :

sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop

Yanlış başlatma işlemini kalıcı olarak devre dışı bırakmak için mysqld işlemin , önce yukarıdaki komutu kullanarak artalan sürecini durdurmak ve sonra aşağıdaki komutu kullanarak MySQL başlangıç ​​öğesini kaldırmak mümkün olmalıdır:

sudo rm -rf /Library/StartupItems/MYSQLCOM

Not: Ayrıca MySQL Tercih Bölmesi'ni de yüklemiş olabilir /Library/PreferencePanes/MySQL.prefpaneveya ~/Library/PreferencePanes/MySQL.prefpane... Bu tercih bölmesi, eski MySQL kurulumunun 'temizleme' parçalarına da kaldırılabilir.


Ne yazık ki / etc / hostconfig dosyamda
Zaki Aziz

Ve sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stophiçbir şey vermez
Zaki Aziz

3

Aşağıdakiler benim için 8.0.12Homebrew kullanılarak kurulmuş mysql ile çalıştı macOS Mojave 10.14.1:

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

Homebrew yüklü mysql üzerinde bir araya geldi. Teşekkürler.
Almas Dusal

1

MySQL'i yeniden adlandırmak (veya taşımak / yedeklemek / silmek / silmek) ve daha sonra yeniden başlatılabilir ve artık kullanılabilir olmayan programı başlatmaya çalışan başlatma öğesinin hata iletisini arayabilirsiniz.

Diğer cevaplar, Launch Agents ve Launch Daemons'u aramanın yanı sıra genellikle 1 için ana PID'ye sahip olduklarından, genellikle daemons için çalışmayan PID'yi izlemeyi ele alıyor.

Ayrıca, mysql Mavericks ile birlikte gönderilmediğinden, seçtiğiniz yükleme paketini izleyebilmeniz veya mdfind mysqldbu veritabanını Mac'inize getiren paketi ve ardından bu mysql paketinin kaldırma / devre dışı bırakma talimatlarını bulabilmeniz gerekir. Yazılımı başlatmak için oraya bir kontrol yüklemişseniz sistem tercihlerine de bakmak istersiniz.


mdfind mysqldherhangi bir AMPPS ile ilgili MySQL dosyasını göstermez, sadece MAMP ile ilgili dosyaları gösterir (ve MySQL Workbench gibi yüklediğim MySQL programlarından birkaçı)
Zaki Aziz

1

MySQL'inizi başlatan ana işlemin ne olduğunu bularak başlayın. Terminal'den pssürecin ne olduğunu öğrenmek için bir komut çalıştırın ; üst kimliği listelemek için -jveya -ldüğmesini kullanabilirsiniz ppid. Bu size şunu gösterecektir:

$ ps -axjc | grep mysql

İlk sütun kullanıcı kimliğiniz, ikincisi işlem kimliği, üçüncüsü üst kimliktir.

Üst kimlik 1 ise, kök başlatma arka plan programı tarafından başlatılır, bu da muhtemelen LaunchDaemons veya StartupItems'in birinden geldiği anlamına gelir. 1 olmayan bir işlemden geliyorsa, ancak bu bir başlatma işlemi ise, muhtemelen LaunchAgent'lar veya sistem giriş öğelerinizdedir.

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

Böylece süreç 1 sistem başlangıcı tarafından başlatılır ve ana süreç 1 olan herhangi bir şey sistem artalan süreçlerinden gelir. Başlatma işlemi 257 olan herhangi bir şey (bu durumda) LaunchAgents veya LoginItems'in birinden başlatılır.

Başlatma arka plan programının veya başlangıç ​​öğesinin adının başlığında mutlaka 'mysql' bulunmadığını unutmayın - farklı bir program veya giriş öğesi tarafından çalıştırılmış olabilir (bu yüzden sadece ada göre aramak bulamayabilir) . Ne başlattığını bulduktan sonra, nereden geldiğini öğrenebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.