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)?

Laurie Young
sumber

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
mloughran
sumber
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
pamammer
sumber
4
Bagi saya, direktori instal oleh homebrew adalah/usr/local/Cellar/[email protected]/5.7.23/bin/
Moobie
68

Anda selalu dapat menggunakan perintah "mysqladmin shutdown"

Rimantas
sumber
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
Jan
sumber
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

Moesio
sumber
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.

katy lavallee
sumber
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

Zack
sumber
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

Duc Chi
sumber
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).

Steve
sumber
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).

John Montgomery
sumber
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
4

OSX terbaru (10.8) dan mysql 5.6, file tersebut berada di bawah Launch Daemons dan com.oracle.oss.mysql.mysqld.plist. Ini menyajikan opsi di bawah Opsi Sistem, biasanya bagian bawah daftar. Jadi pergi ke pengaturan sistem, klik pada Mysql, dan matikan dari kotak opsi. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
sumber
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
Allisone
sumber
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

pelawak
sumber
1

Di OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
sweetfa
sumber
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
Manuel_B
sumber
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.

Bartosz Blimke
sumber
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 / |

Jack Peng
sumber
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.
pria perunggu
sumber