Tại sao tôi không thể dừng dịch vụ MySQL trên Debian?


11

Tôi chỉ cố gắng nâng cấp từ bóp debian thành không ổn định bằng cách thay thế 'bóp' bằng 'không ổn định' /etc/apt/sources.list. Việc nâng cấp diễn ra suôn sẻ, ngoại trừ MySQL, đã thất bại vì không thể dừng MySQL.

/etc/init.d/mysql stopchỉ đơn giản trả về rằng nó đã thất bại, nhưng nếu tôi cố gắng để có được trạng thái với /etc/init.d/mysql statusnó thì tôi sẽ gặp lỗi này:

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

MySQL đang chạy tốt và tôi đã kiểm tra các quyền cho debian-sys-duy trì trong phpmyadmin và nó được phép làm mọi thứ, nhưng chỉ kết nối từ đó localhost.

Câu trả lời:


6

Thử đi:

  1. sudo cat /etc/mysql/debian.cnfvà tìm mật khẩu được liệt kê trong cả phần [client][mysql_upgrade]phần

  2. mysql -u root -p password là mật khẩu gốc của MySQL

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

Đó là cách khắc phục và đây là lý do đằng sau nó, nếu bạn quan tâm.


Như đã đề cập dưới đây, điều này nên làGRANT ALL PRIVILEGES ON *.*
Dave

2

Một bản cập nhật cho câu trả lời. Ở bước 3, tôi phải sử dụng

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

Có dấu hoa thị trong khoảng thời gian sau khi "BẬT". Đã làm việc cho MySql 5.1


1

Hướng dẫn tham khảo MySQL cho biết bạn có thể làm điều này:

  1. Đăng nhập vào hệ thống của bạn với tư cách là người dùng Unix mà mysqldmáy chủ chạy như (ví dụ mysql:).
  2. Xác định vị trí .pidtệp chứa ID tiến trình của máy chủ. Vị trí và tên chính xác của tệp này phụ thuộc vào phân phối, tên máy chủ và cấu hình của bạn. Địa điểm phổ biến là /var/lib/mysql/, /var/run/mysqld/, và /usr/local/mysql/data/. Nói chung, tên tệp có phần mở rộng .pidvà bắt đầu bằng mysqldhoặc tên máy chủ của hệ thống của bạn.

Bạn có thể dừng máy chủ MySQL bằng cách gửi lệnh kill bình thường (không phải kill -9) đến quy trình mysqld, sử dụng tên đường dẫn của tệp .pid trong lệnh sau:

    kill `cat /mysql-data-directory/host_name.pid`

Phần này: cat /mysql-data-directory/host_name.pidtrả về nội dung của tệp, đó là id quá trình.

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.