ทำไมฉันไม่สามารถหยุดบริการ MySQL บน Debian ได้


11

ฉันเพียงแค่พยายามที่จะปรับรุ่นจากเดเบียนบีบไม่เสถียรโดยการแทนที่ 'บีบ' กับ 'เสถียร' /etc/apt/sources.listใน การปรับรุ่นทำได้อย่างราบรื่นยกเว้น MySQL ซึ่งล้มเหลวเนื่องจากไม่สามารถหยุด MySQL ได้

/etc/init.d/mysql stopเพียงแค่คืนค่าว่าล้มเหลว แต่ถ้าฉันพยายามรับสถานะด้วย/etc/init.d/mysql statusจะทำให้ฉันมีข้อผิดพลาดนี้:

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 ทำงานได้ดีและฉันตรวจสอบการอนุญาตสำหรับ debian-sys-maint ใน phpmyadmin และได้รับอนุญาตให้ทำทุกอย่าง แต่เชื่อมต่อจากlocalhostเท่านั้น

คำตอบ:


6

ลองสิ่งนี้:

  1. sudo cat /etc/mysql/debian.cnfและมองหารหัสผ่านที่ปรากฏในทั้งสองส่วน[client]และ[mysql_upgrade]

  2. mysql -u root -p password เป็นรหัสผ่าน root ของ 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

นั่นคือการแก้ไขและนี่คือเหตุผลที่อยู่เบื้องหลังหากคุณสนใจ


ตามที่ระบุไว้ด้านล่างนี้ควรจะเป็นGRANT ALL PRIVILEGES ON *.*
เดฟ

2

การอัปเดตคำตอบ ในขั้นตอนที่ 3 ฉันต้องใช้

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

มีเครื่องหมายดอกจันในช่วงเวลาหลังจาก "เปิด" ทำงานกับ MySql 5.1


1

คู่มืออ้างอิง MySQL บอกว่าคุณสามารถทำได้:

  1. เข้าสู่ระบบของคุณในฐานะผู้ใช้ Unix ที่mysqldเซิร์ฟเวอร์ทำงานเป็น (ตัวอย่างเช่นmysql)
  2. ค้นหา.pidไฟล์ที่มี ID กระบวนการของเซิร์ฟเวอร์ ตำแหน่งและชื่อที่แน่นอนของไฟล์นี้ขึ้นอยู่กับการแจกจ่ายชื่อโฮสต์และการกำหนดค่าของคุณ สถานที่พบบ่อย/var/lib/mysql/, และ/var/run/mysqld/ /usr/local/mysql/data/โดยทั่วไปชื่อไฟล์จะมีนามสกุล.pidและขึ้นต้นด้วยmysqldชื่อโฮสต์หรือระบบของคุณ

คุณสามารถหยุดเซิร์ฟเวอร์ MySQL ได้โดยส่ง kill ปกติ (ไม่ใช่ kill -9) ไปยังกระบวนการ mysqld โดยใช้ชื่อพา ธ ของไฟล์. pid ในคำสั่งต่อไปนี้:

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

ส่วนนี้: cat /mysql-data-directory/host_name.pidส่งคืนเนื้อหาของไฟล์ซึ่งเป็นรหัสกระบวนการ

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