Bagaimana Anda menghentikan MySQL pada instalasi Mac OS?


187

Saya menginstal MySQL melalui MacPorts . Apa perintah yang saya perlukan untuk menghentikan server (saya perlu menguji bagaimana aplikasi saya berperilaku ketika MySQL mati)?

Jawaban:


377

Ada beberapa kasus tergantung pada apakah Anda menginstal MySQL dengan penginstal biner resmi, menggunakan MacPorts , atau menggunakan Homebrew :

Homebrew

brew services start mysql
brew services stop mysql
brew services restart mysql

MacPorts

sudo port load mysql57-server
sudo port unload mysql57-server

Catatan: ini persisten setelah reboot.

Pemasang biner

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Terima kasih banyak - Saya sudah berhenti dan mulai perintah, tetapi tidak tahu tentang / coba coba kembali. Setelah menggunakan perintah stop, mulai tidak akan melakukan apa pun, seperti yang akan dimulai dari panel Preferensi Sistem MySQL.
Ross Henderson

4
Dalam kasus saya itu sedikit berbeda, karena nomor versi mysql ditambahkan dalam file plist. Itu seperti itu: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl memuat -w
/Library/LaunchDaemons/org.macports.mysql5.plist

1
Dan bagi saya, /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky

10
Dan untuk homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas

2
Jika Anda memiliki Layanan Homebrew yang diinstal, Anda dapat menggunakan brew services stop mysqldan brew services start mysql. (Juga restart, dan runyang dimulai hanya untuk sesi saat ini.)
medmunds

138

Bagi mereka yang menggunakan homebrew untuk menginstal MySQL gunakan perintah berikut di bawah ini untuk memulai, menghentikan, atau me-restart MySQL

Awal pembuatan bir

/usr/local/bin/mysql.server start

Brew restart

/usr/local/bin/mysql.server restart

Berhenti bir

/usr/local/bin/mysql.server stop

4
Bagi saya, direktori instal oleh homebrew adalah/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

Anda selalu dapat menggunakan perintah "mysqladmin shutdown"


1
Perintah di atas tidak bekerja untuk saya. Yang ini. Tidak yakin apa perbedaannya dalam pengaturan saya, tapi terima kasih.
Marco

2
Meskipun mungkin berhasil, jika Anda menggunakan MacPorts dan jalankan ini, launchctl tidak akan menyadari bahwa mysql telah berhenti dan akan mengeluh jika Anda mencoba memulainya (memuat). Jadi, gunakan launchctl lebih disukai.
lambshaanxy

1
Meskipun ini berfungsi untuk mematikan server, ini tidak akan melakukan apa pun untuk membantu Anda membawanya kembali ketika Anda ingin me-restart itu.
aroth

3
Ingatlah untuk menambahkan -p dan masukkan kata sandi root mysql Anda saat diminta. Pada pengaturan saya di mana mysql diinstal dengan MacPorts mysql restart, dan memuat ulang konfigurasi, yang merupakan target untuk tindakan saya.
Jesper Grann Laursen

sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownjika mysql Anda berasal dari MacPorts
Alain Tiemblo

51

Jika Anda menggunakan, homebrewAnda dapat menggunakan

brew services restart mysql
brew services start mysql
brew services stop mysql

untuk daftar layanan yang tersedia

brew services list

2
Ini bekerja untuk saya, bahkan setelah berinteraksi dengan launchctl secara langsung tidak. Terima kasih!
Lyndsy Simon

19

sudo /usr/local/mysql/support-files/mysql.server berhenti


2
+1 ini hanya satu yang berfungsi untuk saya --- Saya hanya menggunakan pemasang DMG dari Mysql. Terima kasih
Dolan Antenucci

15

sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

Anda juga dapat menggunakan mulai dan mulai ulang di sini. Saya menemukan ini dengan melihat isi /Library/LaunchDaemons/org.macports.mysql.plist.


1
Ini adalah bagaimana Anda seharusnya melakukannya .. Untuk MacPorts .. launchctlMetode ini TIDAK berfungsi, dan pada kenyataannya dapat menyebabkan masalah dengan PID / DB startup bitching dan moaning.
Alex Grey


11

Mencoba

sudo <path to mysql>/support-files/mysql.server start
sudo <path to mysql>/support-files/mysql.server stop

Coba lagi:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop<br>
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Namun, saya menemukan bahwa opsi kedua hanya berfungsi (OS X 10.6, MySQL 5.1.50) jika .plist telah dimuat dengan:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PS: Saya juga menemukan bahwa saya perlu membongkar .plist untuk mendapatkan instalasi MAMP -MySQL yang tidak terkait untuk memulai / berhenti dengan benar. Setelah menjalankan menjalankan ini, MAMP-MySQL dimulai dengan baik:

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist


7

Di mac osx yosemite 10.10 saya. Perintah ini berhasil:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist

Anda dapat menemukan file mysql Anda di folder / Library / LaunchDaemons / untuk dijalankan


2
Ini satu-satunya cara yang berhasil bagi saya. Untuk metode lain, mysqldproses restart segera setelah berhenti.
Rockallite

Ini adalah satu-satunya cara yang bekerja untuk saya juga. Saya beralih dari homebrew ke DMG yang disediakan MySQL dan saya pikir mungkin versi buatannya masih berjalan walaupun saya mencopotnya.
Sam Critchley

5

Menggunakan:

sudo mysqladmin shutdown --user=*user* --password=*password*

Seseorang mungkin bisa lolos dengan tidak menggunakan sudo . The pengguna bisa menjadi root misalnya (yaitu, MySQL root user).


4

Nah, jika semuanya gagal, Anda bisa saja mengambil pendekatan yang kejam dan mematikan proses menjalankan MySQL secara manual.

Itu adalah,

ps -Af

untuk mendaftar semua proses, kemudian lakukan " kill <pid>" di mana <pid>id proses dari daemon MySQL (mysqld).


ya .. ini yang terbaik dan universal untuk skrip. Apakah Anda pikir ada kemungkinan korupsi data? atau masalah lain?
user425720

1
Ini memiliki potensi korupsi data.
Dan Sandland

Tetapi sebagai upaya terakhir, ini memadai.
Dan Sandland


2

Bagi saya ini bekerja dengan "mysql5"

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

2

Dalam kasus saya, itu terus restart segera setelah saya membunuh proses menggunakan PID. Juga brew stopperintah tidak berfungsi karena saya menginstal tanpa menggunakan homebrew. Kemudian saya pergi ke preferensi sistem mac dan kami telah menginstal MySQL di sana. Buka saja dan hentikan server MySQL dan Anda selesai. Di sini, di tangkapan layar, Anda dapat menemukan MySQL di bagian bawah preferensi sistem.masukkan deskripsi gambar di sini


1

Di OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist

0

Saya menginstal mysql5 dan mysql55 di atas macports. Bagi saya file yang disebutkan di sini terletak di tempat-tempat berikut:

(mysql55-server) /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

(mysql5) /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist

Jadi berhentilah untuk karya-karya ini seperti ini:

server mysql55:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

mysql5:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 

Anda dapat memeriksa apakah layanan masih berjalan dengan:

ps ax | grep mysql

Selanjutnya Anda dapat memeriksa file log dalam kasus saya di sini:

server mysql55

sudo tail -n 100 /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.err
...
130213 08:56:41 mysqld_safe mysqld from pid file /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.pid ended

mysql5:

sudo tail -n 100 /opt/local/var/db/mysql5/<MyName>-MacBook-Pro.local.err
...
130213 09:23:57  mysqld ended

0

Jika Anda menginstal paket MySQL 5 dengan MacPorts:

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql.plist 

Atau

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist 

jika Anda menginstal mysql5-develpaket.


1
Ini akan menghentikannya dari mulai ketika Anda reboot, yang bukan apa yang diminta poster itu.
Matthew Schinckel

0

mysql> tampilkan variabel tempat variable_name seperti '% dir%';

| datadir | / opt / local / var / db / mysql5 / |


0

Setelah mencoba semua baris perintah itu, dan itu tidak berfungsi. Saya harus melakukan hal-hal berikut:

mv /usr/local/Cellar/mysql/5.7.16/bin/mysqld /usr/local/Cellar/mysql/5.7.16/bin/mysqld.bak
mysql.server stop

Dengan cara ini, proses mysqld hilang. tetapi /var/log/system.log memiliki banyak sampah:

Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql[78049]): Service exited with abnormal code: 1
Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.