Bagaimana cara me-restart MySQL

32

Saya menjalankan MySQL 5.1.54 dan menginstalnya di Ubuntu melalui terminal menggunakan perintah

sudo apt-get install mysql-server

Saya mengubah my.cnffile dan ingin berhenti kemudian mulai database. Saya sudah mencoba yang berikut ini

sudo /usr/bin/mysqld_safe stop

Pertanyaan saya adalah bagaimana saya tahu bahwa basis data dihentikan? Ketika saya menjalankan perintah di atas, diikuti oleh

sudo mysql -uuser -ppassword

Saya dapat masuk kembali ke database. Bukankah seharusnya itu memberitahu saya bahwa database tidak berjalan?

Ada saran? Terima kasih.

EDIT: Saya juga sudah mencoba

mysqladmin -uuser -ppassword shutdown

lalu

ps aux | grep mysql

Saya mendapatkan output berikut

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

Apakah output di atas berarti bahwa MySQL telah dimatikan? Jika saya menjalankan mysql -uuser -ppasswordsaya masih bisa login ke mysql.

Ada saran?

David
sumber

Jawaban:

64

Anda harus benar-benar menggunakan skrip init Sys-V yang terletak di /etc/init.d.

Mulai:

sudo /etc/init.d/mysql start

Berhenti:

sudo /etc/init.d/mysql stop

Mulai ulang / muat ulang konfigurasi:

sudo /etc/init.d/mysql restart

Periksa status proses:

sudo /etc/init.d/mysql status
cuek
sumber
1
Saya mencoba itu dan saya mendapatkan pesan kesalahan berikut 'Daripada memanggil skrip init melalui /etc/init.d, gunakan utilitas service (8), mis. Service mysql status'
David
3
@ David Ini adalah satu-satunya jawaban yang benar. servicehanyalah sebuah program kecil yang mencari skrip init.d yang tepat untuk Anda. Meskipun itu memberi Anda "pesan kesalahan", sudo /etc/init.d/mysql start/stopmasih melakukan tugasnya. Menggunakan servicehanyalah "cara baru" menggunakan skrip startup. Untuk menggunakan service, cukup jalankan ini di terminal: service mysql stopatau mulai.
BloodPhilia
@BloodPhilia, saya mencoba service mysql stopdan saya mendapatkan pesan berikut: 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")). Ada ide?
David
2
@ David Apakah Anda mencoba menggunakannya dengan sudo? Suka sudo service mysql stop?
BloodPhilia
1
@BloodPhilia. Saran Anda berhasil. Terima kasih atas klarifikasi.
David
13

Di mesin Ubuntu, Anda dapat me-restart mysql menggunakan kedua perintah:

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

 2. # service mysql restart
Gopinath
sumber
Di Debian juga. Tapi perintah pertama membuat semua milikku localhosttidak berfungsi. Mereka harus diganti 127.0.0.1. Yang terakhir tidak memiliki masalah itu.
MA-Maddin
3

Untuk mematikan mysql, jalankan:

mysqladmin -uuser -ppassword shutdown

di mana pengguna dan kata sandi adalah untuk pengguna dengan hak istimewa SHUTDOWN yang tepat

Untuk memeriksa apakah telah dimatikan:

ps aux | grep mysql

Jika ada proses (selain perintah 'grep') muncul, itu belum dimatikan.

DTest
sumber
Saya mengikuti instruksi Anda dan saya mendapatkan output. Saya telah mengedit pertanyaan saya menggunakan prosedur Anda. Saya dapat memberi tahu saya jika saya berada di jalur yang benar?
David
Saya pikir shutdown berhenti dan kemudian secara otomatis memulai mysql. Apakah ada perintah untuk menghentikan mysql secara permanen?
David
@Mengubah restart otomatis bukan perilaku shutdown mysqladmin. mungkin perilaku /etc/init.d/mysql ubuntu? Saya tidak yakin. Saya pikir jawaban @ gerryk adalah yang benar untuk sistem operasi Anda.
DTest
0

Anda dapat menggunakan perintah kill -9 "PID" untuk melakukan itu, MySQL Process ID (PID) yang bisa Anda jalankan menjalankan ps -a atau perintah teratas. Kemudian Anda dapat memulainya lagi dengan menelepon ./" proses utama ".

Diogo
sumber
Hai, saya baru di baris perintah dan MySQL. Bisakah Anda menunjukkan kepada saya apa yang harus saya ketik di terminal?
David
5
kill -9 agak kasar, karena tidak membiarkan proses membersihkan setelahnya.
gerryk
1
Saya tidak merekomendasikan melakukan ini. Bergantung pada apa yang dilakukan MySQL pada saat tiba-tiba berhenti, Anda mungkin memulai kembali ke beberapa database yang tidak bahagia.
Xenoactive
0

utilitas systemctl tersedia secara default dalam digunakan untuk mengelola layanan di kotak linux Anda. dapat digunakan untuk memulai, memulai kembali dan menghentikan layanan. Ada opsi lain yang bisa Anda gunakan. checkout systemctl?

systemctl stop mysql
systemctl start mysql
Shekhar
sumber
Harap tambahkan beberapa detail tentang mengapa ini bisa membantu. Jawaban yang tidak jelas tidak disarankan, yang kemungkinan mengarah pada downvote.
kdb