วิธีการรีสตาร์ท MySQL


32

ฉันใช้ MySQL 5.1.54 และติดตั้งบน Ubuntu ผ่านเทอร์มินัลโดยใช้คำสั่ง

sudo apt-get install mysql-server

ฉันเปลี่ยนmy.cnfไฟล์และต้องการหยุดและเริ่มฐานข้อมูล ฉันได้ลองทำสิ่งต่อไปนี้แล้ว

sudo /usr/bin/mysqld_safe stop

คำถามของฉันคือฉันจะรู้ได้อย่างไรว่าฐานข้อมูลหยุดทำงาน? เมื่อฉันเรียกใช้คำสั่งข้างต้นตามด้วย

sudo mysql -uuser -ppassword

ฉันสามารถเข้าสู่ระบบฐานข้อมูลได้ทันที ควรบอกฉันหรือไม่ว่าฐานข้อมูลไม่ทำงาน

ข้อเสนอแนะใด ๆ ขอขอบคุณ.

แก้ไข: ฉันได้ลองแล้ว

mysqladmin -uuser -ppassword shutdown

แล้ว

ps aux | grep mysql

ฉันได้รับผลลัพธ์ต่อไปนี้

david    12093  0.0  0.0   6052  1276 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
root     12267  0.0  0.0   6396  1436 pts/1    T    May10   0:00 sudo nano /etc/mysql/my.cnf
root     12269  0.0  0.0   6052  1388 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
mysql    15371  0.3  0.1  55344  9088 ?        Ssl  10:53   0:00 /usr/sbin/mysqld
david    15512  0.0  0.0   5304   864 pts/1    R+   10:54   0:00 grep --color=auto mysql

ผลลัพธ์ข้างต้นหมายความว่า MySQL ถูกปิดหรือไม่ ถ้าฉันเรียกใช้mysql -uuser -ppasswordฉันยังคงสามารถเข้าสู่ mysql

ข้อเสนอแนะใด ๆ

คำตอบ:


64

คุณควรใช้สคริปต์เริ่มต้น Sys-V /etc/init.dจริง ๆ

ราคาเริ่มต้น:

sudo /etc/init.d/mysql start

หยุด:

sudo /etc/init.d/mysql stop

รีสตาร์ท / โหลดการกำหนดค่าใหม่:

sudo /etc/init.d/mysql restart

ตรวจสอบสถานะการวิ่ง:

sudo /etc/init.d/mysql status

1
ฉันลองแล้วและฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ `แทนที่จะเรียกใช้สคริปต์เริ่มต้นผ่าน /etc/init.d ให้ใช้ยูทิลิตี้ service (8) เช่นสถานะการบริการ mysql '
David

3
@ David นี่เป็นคำตอบเดียวที่ถูกต้อง serviceเป็นเพียงโปรแกรมขนาดเล็กที่ค้นหาสคริปต์ init.d ที่เหมาะสมสำหรับคุณ แม้ว่าข้อความจะแสดงข้อความผิดพลาด "แต่มันก็sudo /etc/init.d/mysql start/stopยังทำงานอยู่ การใช้serviceเป็นเพียง "วิธีใหม่" ในการใช้สคริปต์เริ่มต้น หากต้องการใช้serviceเพียงดำเนินการบนเทอร์มินัล: service mysql stopหรือเริ่ม
BloodPhilia

@BloodPhilia ฉันพยายามservice mysql stopและฉันได้รับข้อความต่อไปนี้: Rejected send message, 1 matched rules; type="method_call", sender=":1.72" (uid=1000 pid=17673 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")). ความคิดใด ๆ
David

2
@ David คุณลองใช้กับ sudo แล้วหรือยัง ชอบsudo service mysql stopไหม
BloodPhilia

1
@BloodPhilia ข้อเสนอแนะที่คุณทำงาน ขอบคุณสำหรับคำชี้แจง
David

13

ในเครื่อง Ubuntu คุณสามารถเริ่ม mysql ใหม่ได้โดยใช้ทั้งสองคำสั่ง:

 1. sudo /etc/init.d/mysql restart

 2. # service mysql restart

บนเดเบียนเช่นกัน แต่คำสั่งแรกทำให้ทุกอย่างของฉันlocalhostไม่ทำงาน 127.0.0.1พวกเขาจะต้องถูกแทนที่ด้วย คนหลังไม่มีปัญหานั้น
MA-Maddin

3

เพื่อปิด mysql ให้เรียกใช้:

mysqladmin -uuser -ppassword shutdown

โดยที่ผู้ใช้และรหัสผ่านคือสำหรับผู้ใช้ที่มีสิทธิ์SHUTDOWNที่เหมาะสม

เพื่อตรวจสอบว่ามันถูกปิด:

ps aux | grep mysql

หากกระบวนการใด ๆ (นอกเหนือจากคำสั่ง 'grep') ปรากฏขึ้นแสดงว่าไม่ได้ปิดเครื่อง


ฉันทำตามคำแนะนำของคุณแล้วฉันจะได้ผลลัพธ์ ฉันได้แก้ไขคำถามโดยใช้ขั้นตอนของคุณ ฉันบอกได้ไหมว่าฉันกำลังทำอยู่ใช่ไหม?
David

ฉันคิดว่าการปิดระบบหยุดลงแล้วเริ่ม mysql โดยอัตโนมัติ มีคำสั่งให้หยุด mysql อย่างถาวรหรือไม่
David

@David การรีสตาร์ทอัตโนมัติไม่ใช่พฤติกรรมของการปิด mysqladmin อาจเป็นพฤติกรรม /etc/init.d/mysql ของ ubuntu หรือไม่ ฉันไม่แน่ใจ. ฉันคิดว่าคำตอบของ @ gerryk เป็นคำตอบที่ถูกต้องสำหรับระบบปฏิบัติการของคุณ
DTest

0

คุณสามารถใช้คำสั่ง kill -9 "PID" เพื่อทำเช่นนั้น MySQL Process ID (PID) คุณสามารถเรียกใช้ ps -a หรือคำสั่งด้านบน จากนั้นคุณสามารถเริ่มต้นใหม่อีกครั้งโดยโทร. /" กระบวนการหลัก "


สวัสดีฉันยังใหม่กับบรรทัดคำสั่งและ MySQL คุณสามารถแสดงให้ฉันเห็นสิ่งที่ฉันต้องพิมพ์ลงในเทอร์มินัลได้หรือไม่?
David

5
kill -9 นั้นหยาบคายนิดหน่อยเพราะมันไม่ยอมให้กระบวนการทำความสะอาดหลังจากตัวมันเอง
gerryk

1
ฉันไม่แนะนำให้ทำเช่นนี้ ขึ้นอยู่กับว่า MySQL กำลังทำอะไรในเวลาที่หยุดกะทันหันคุณอาจเริ่มต้นใหม่ไปยังฐานข้อมูลที่ไม่มีความสุข
Xenoactive

0

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

systemctl stop mysql
systemctl start mysql

โปรดเพิ่มรายละเอียดเกี่ยวกับสาเหตุที่จะช่วยได้ คำตอบที่ไม่มีคำอธิบายจะหมดกำลังใจซึ่งอาจนำไปสู่การ downvote
kdb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.