Cách khởi động lại MySQL


32

Tôi đang chạy MySQL 5.1.54 và cài đặt nó trên Ubuntu thông qua thiết bị đầu cuối bằng lệnh

sudo apt-get install mysql-server

Tôi đã thay đổi my.cnftập tin và muốn dừng lại và sau đó bắt đầu cơ sở dữ liệu. Tôi đã thử như sau

sudo /usr/bin/mysqld_safe stop

Câu hỏi của tôi là làm thế nào để tôi biết rằng cơ sở dữ liệu bị dừng lại? Khi tôi chạy lệnh trên, theo sau là

sudo mysql -uuser -ppassword

Tôi có thể đăng nhập lại vào cơ sở dữ liệu. Không nên nói với tôi rằng cơ sở dữ liệu không chạy?

Bất kỳ đề xuất? Cảm ơn bạn.

EDIT: Tôi cũng đã thử

mysqladmin -uuser -ppassword shutdown

và sau đó

ps aux | grep mysql

Tôi nhận được đầu ra sau

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

Liệu đầu ra trên có nghĩa là MySQL đã bị đóng cửa? Nếu tôi chạy mysql -uuser -ppasswordtôi vẫn có thể đăng nhập vào mysql.

Bất kỳ đề xuất?

Câu trả lời:


64

Bạn thực sự nên sử dụng các tập lệnh init Sys-V nằm trong /etc/init.d.

Khởi đầu:

sudo /etc/init.d/mysql start

Dừng lại:

sudo /etc/init.d/mysql stop

Khởi động lại / tải lại cấu hình:

sudo /etc/init.d/mysql restart

Kiểm tra trạng thái chạy:

sudo /etc/init.d/mysql status

1
Tôi đã thử điều đó và tôi nhận được thông báo lỗi sau 'Thay vì gọi các tập lệnh init thông qua /etc/init.d, hãy sử dụng tiện ích dịch vụ (8), ví dụ: trạng thái dịch vụ mysql'
David

3
@David Đây là câu trả lời đúng duy nhất. servicechỉ là một chương trình nhỏ tìm kiếm tập lệnh init.d phù hợp với bạn. Mặc dù nó ném cho bạn "thông báo lỗi", sudo /etc/init.d/mysql start/stopvẫn hoàn thành công việc của nó. Sử dụng servicechỉ là "cách mới" của việc sử dụng các tập lệnh khởi động. Để sử dụng service, chỉ cần thực hiện điều này trên thiết bị đầu cuối: service mysql stophoặc bắt đầu.
BloodPhilia

@BloodPhilia, tôi đã thử service mysql stopvà tôi nhận được thông báo sau : 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")). Có ý kiến ​​gì không?
David

2
@David Bạn đã thử sử dụng nó với sudo chưa? Thích sudo service mysql stop?
BloodPhilia

1
@BloodPhilia. Bạn đề nghị làm việc. Cảm ơn bạn đã làm rõ.
David

13

Trong các máy Ubuntu, bạn có thể khởi động lại mysql bằng cả hai lệnh:

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

 2. # service mysql restart

Trên Debian cũng vậy. Nhưng lệnh đầu tiên làm cho tất cả của tôi localhostkhông hoạt động. Họ sẽ cần phải được thay thế bởi 127.0.0.1. Cái thứ hai không có vấn đề đó.
MA-Maddin

3

Để tắt mysql, hãy chạy:

mysqladmin -uuser -ppassword shutdown

nơi người dùng và mật khẩu dành cho người dùng có đặc quyền SHUTDOWN thích hợp

Để kiểm tra xem nó đã bị tắt chưa:

ps aux | grep mysql

Nếu bất kỳ quy trình nào (ngoài lệnh 'grep') xuất hiện, nó đã không được tắt.


Tôi đã làm theo hướng dẫn của bạn và tôi nhận được một đầu ra. Tôi đã chỉnh sửa câu hỏi của mình bằng thủ tục của bạn. Tôi có thể cho tôi biết nếu tôi đang đi đúng hướng?
David

Tôi nghĩ tắt máy rồi tự động khởi động mysql. Có một lệnh để vĩnh viễn dừng mysql?
David

@David khởi động lại tự động không phải là hành vi tắt máy mysqladmin. có lẽ hành vi /etc/init.d/mysql của ubfox? Tôi không chắc. Tôi nghĩ câu trả lời của @ gerryk là câu trả lời đúng cho hệ điều hành của bạn.
DTest

0

Bạn có thể sử dụng lệnh kill -9 "PID" để thực hiện điều đó, ID tiến trình MySQL (PID) mà bạn có thể chạy các lệnh ps -a hoặc top. Sau đó, bạn có thể bắt đầu lại bằng cách gọi ./"main process ".


Xin chào, tôi mới sử dụng dòng lệnh và MySQL. Bạn có thể chỉ cho tôi chính xác những gì tôi cần nhập vào thiết bị đầu cuối?
David

5
giết -9 là một chút thô lỗ, vì nó không để cho một quá trình tự làm sạch sau đó.
gerryk

1
Tôi không khuyên bạn nên làm điều này. Tùy thuộc vào những gì MySQL đang làm vào thời điểm nó đột ngột dừng lại, bạn có thể khởi động lại một số cơ sở dữ liệu không vui.
Xenoactive

0

tiện ích systemctl có sẵn theo mặc định được sử dụng để quản lý các dịch vụ trong hộp linux của bạn. nó có thể được sử dụng để bắt đầu, khởi động lại và dừng dịch vụ. Có những lựa chọn khác bạn có thể sử dụng. kiểm tra systemctl?

systemctl stop mysql
systemctl start mysql

Vui lòng thêm một số chi tiết về lý do tại sao điều này sẽ giúp. Câu trả lời không giải thích được khuyến khích, điều này có thể dẫn đến downvote.
kdb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.