คุณจะหยุด MySQL บน Mac OS ได้อย่างไร


187

ผมติดตั้ง MySQL ผ่านMacPorts คำสั่งที่ฉันต้องหยุดเซิร์ฟเวอร์คืออะไร (ฉันต้องทดสอบว่าแอปพลิเคชันของฉันทำงานเมื่อ MySQL ตาย)?

คำตอบ:


377

มีหลายกรณีขึ้นอยู่กับว่าคุณติดตั้งMySQLด้วยตัวติดตั้งไบนารีอย่างเป็นทางการใช้MacPortsหรือใช้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

หมายเหตุ: นี่เป็นแบบถาวรหลังจากรีบูต

ตัวติดตั้งไบนารี

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

ขอบคุณตัน - ฉันมีคำสั่งหยุดและเริ่ม แต่ไม่รู้เกี่ยวกับ / คิดเกี่ยวกับการลองรีสตาร์ท หลังจากใช้คำสั่งหยุดการเริ่มต้นจะไม่ทำอะไรเช่นเดียวกับที่เริ่มจากแผงการตั้งค่าระบบ MySQL
Ross Henderson

4
ในกรณีของฉันมันแตกต่างกันเล็กน้อยเนื่องจากมีการเพิ่มหมายเลขเวอร์ชัน mysql ในไฟล์ plist มันเป็นเช่นนั้น: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk

1
และสำหรับฉัน /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky

10
และสำหรับ homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas

2
หากคุณมีบริการ Homebrewติดตั้งคุณสามารถใช้และbrew services stop mysql brew services start mysql( restartและrunจะเริ่มในเซสชันปัจจุบันเท่านั้น)
medmunds

138

สำหรับผู้ที่ใช้ homebrew เพื่อติดตั้ง MySQL ให้ใช้คำสั่งด้านล่างเพื่อเริ่มหยุดหรือรีสตาร์ท MySQL

เบียร์เริ่มต้น

/usr/local/bin/mysql.server start

เบียร์เริ่มใหม่

/usr/local/bin/mysql.server restart

เบียร์หยุด

/usr/local/bin/mysql.server stop

4
สำหรับฉันไดเรกทอรีการติดตั้งโดย homebrew คือ/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

คุณสามารถใช้คำสั่ง "mysqladmin shutdown" ได้ตลอดเวลา


1
คำสั่งข้างต้นไม่ได้ผลสำหรับฉัน สิ่งนี้ทำ ไม่แน่ใจว่าความแตกต่างในการตั้งค่าของฉันคืออะไร แต่ขอบคุณ
Marco

2
แม้ว่ามันอาจใช้งานได้หากคุณใช้ MacPorts และเปิดใช้งาน launchctl จะไม่ทราบว่า mysql หยุดทำงานและจะบ่นว่าคุณพยายามเริ่มต้น (โหลด) การใช้ launchctl จึงเป็นที่นิยมกว่า
lambshaanxy

1
แม้ว่าจะใช้งานได้ดีกับการปิดเซิร์ฟเวอร์ แต่ก็จะไม่ทำอะไรเลยเพื่อช่วยให้คุณสามารถสำรองข้อมูลได้เมื่อคุณต้องการรีสตาร์ท
aroth

3
อย่าลืมเพิ่ม -p และป้อนรหัสผ่าน root ของคุณ mysql เมื่อได้รับแจ้ง ที่ติดตั้งของฉันที่ mysql ติดตั้งกับ MacPorts mysql เริ่มต้นใหม่และโหลด config ซึ่งเป็นเป้าหมายสำหรับการกระทำของฉัน
Jesper Grann Laursen

sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownหาก mysql ของคุณมาจาก MacPorts
Alain Tiemblo

51

หากคุณกำลังใช้homebrewคุณสามารถใช้

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

สำหรับรายการบริการที่มี

brew services list

2
สิ่งนี้ได้ผลสำหรับฉันแม้หลังจากมีปฏิสัมพันธ์กับ launchctl โดยตรงก็ไม่ได้ ขอบคุณ!
Lyndsy Simon

19

sudo /usr/local/mysql/support-files/mysql.server หยุด


2
+1 นี่เป็นเพียงอันเดียวที่ใช้ได้สำหรับฉัน --- ฉันเพิ่งใช้ตัวติดตั้ง DMG จาก Mysql ขอบคุณ
Dolan Antenucci

15

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

คุณยังสามารถใช้การเริ่มและรีสตาร์ทได้ที่นี่ ฉันพบสิ่งนี้โดยดูที่เนื้อหาของ /Library/LaunchDaemons/org.macports.mysql.plist


1
นี่คือวิธีที่คุณควรจะทำ .. สำหรับ MacPorts .. launchctlวิธีนี้ใช้ไม่ได้และในความเป็นจริงอาจทำให้เกิดปัญหากับการเริ่มทำงาน PID / DB การเริ่มและการส่งเสียงครวญคราง
Alex Grey


11

ลอง

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

ลองอีกครั้ง:

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

อย่างไรก็ตามฉันพบว่าตัวเลือกที่สองใช้งานได้เท่านั้น (OS X 10.6, MySQL 5.1.50) หากโหลด .plist ด้วย:

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

PS: ฉันยังพบว่าฉันต้องการยกเลิกการโหลด. plist เพื่อรับการติดตั้งที่ไม่เกี่ยวข้องของMAMP -MySQL เพื่อเริ่ม / หยุดอย่างถูกต้อง หลังจากเปิดใช้งานแล้ว MAMP-MySQL ก็เริ่มต้นได้ดี

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


7

ใน mac osx ของฉันโยเซมิตี 10.10 คำสั่งนี้ใช้งานได้:

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

คุณสามารถค้นหาไฟล์ mysql ของคุณในโฟลเดอร์ / Library / LaunchDaemons / เพื่อเรียกใช้


2
นี่เป็นวิธีเดียวที่เหมาะกับฉัน สำหรับวิธีอื่นใดmysqldกระบวนการจะรีสตาร์ททันทีหลังจากหยุด
Rockallite

นี่เป็นวิธีเดียวที่ได้ผลสำหรับฉันเช่นกัน ฉันเปลี่ยนจาก homebrew เป็น DMG ที่ให้โดย MySQL และฉันคิดว่ารุ่นชงอาจยังคงทำงานอยู่แม้ว่าฉันจะถอนการติดตั้งก็ตาม
Sam Critchley

5

ใช้:

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

หนึ่งอาจจะได้รับไปด้วยไม่ได้ใช้sudo ผู้ใช้อาจจะมีรากตัวอย่างเช่น (นั่นคือผู้ใช้รากของ MySQL)


4

ถ้าทุกอย่างล้มเหลวคุณก็สามารถใช้วิธีที่โหดเหี้ยมและฆ่ากระบวนการที่ใช้ MySQL ด้วยตนเอง

นั่นคือ,

ps -Af

เพื่อแสดงรายการกระบวนการทั้งหมดจากนั้นทำ " kill <pid>" โดยที่<pid>id กระบวนการของ MySQL daemon (mysqld)


ใช่ .. อันนี้ดีที่สุดและเป็นสากลสำหรับการเขียนสคริปต์ คุณคิดว่ามีความเป็นไปได้ที่ข้อมูลจะเสียหายหรือไม่? หรือปัญหาอื่น ๆ
user425720

1
สิ่งนี้มีโอกาสเกิดความเสียหายของข้อมูล
Dan Sandland

แต่เป็นความพยายามครั้งสุดท้ายนี่ก็เพียงพอแล้ว
Dan Sandland

4

OSX ล่าสุด (10.8) และ mysql 5.6, ไฟล์อยู่ภายใต้ Launch Daemons และเป็น com.oracle.oss.mysql.mysqld.plist มันแสดงตัวเลือกภายใต้ตัวเลือกของระบบโดยปกติด้านล่างของรายการ เพื่อไปที่การตั้งค่าระบบคลิกที่ Mysql และปิดจากกล่องตัวเลือก https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html


2

สำหรับฉันมันใช้งานได้กับ "mysql5"

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

2

ในกรณีของฉันมันจะทำการรีสตาร์ททันทีที่ฉันฆ่ากระบวนการโดยใช้ PID นอกจากนี้ยังมีbrew stopคำสั่งไม่ได้ทำงานตามที่ผมติดตั้งโดยไม่ต้องใช้ Homebrew จากนั้นฉันไปที่การตั้งค่าระบบ mac และเราติดตั้ง MySQL ไว้ที่นั่น เพียงแค่เปิดและหยุดเซิร์ฟเวอร์ MySQL เท่านี้ก็เรียบร้อย ที่นี่ในหน้าจอคุณจะพบ MySQL ที่ด้านล่างของการตั้งค่าระบบป้อนคำอธิบายรูปภาพที่นี่



0

ฉันติดตั้ง mysql5 และ mysql55 ผ่าน macports สำหรับฉันไฟล์ที่กล่าวถึงที่นี่จะอยู่ที่สถานที่ดังต่อไปนี้:

(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

ดังนั้นการหยุดงานเหล่านี้เช่นนี้:

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 

คุณสามารถตรวจสอบว่าบริการยังทำงานอยู่หรือไม่:

ps ax | grep mysql

เพิ่มเติมคุณสามารถตรวจสอบไฟล์บันทึกในกรณีของฉันที่นี่:

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

หากคุณติดตั้งแพ็คเกจ MySQL 5 ด้วย MacPorts:

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

หรือ

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

ถ้าคุณติดตั้งmysql5-develแพคเกจ


1
นี่จะเป็นการหยุดไม่ให้เริ่มเมื่อคุณรีบูทซึ่งไม่ใช่สิ่งที่ผู้ขอถาม
Matthew Schinckel


0

หลังจากลองใช้บรรทัดคำสั่งทั้งหมดแล้ว แต่ก็ไม่ทำงานฉันต้องทำสิ่งต่อไปนี้:

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

วิธีนี้ใช้ได้ผลกระบวนการ mysqld หายไป แต่ /var/log/system.log มีขยะจำนวนมาก:

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.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.