MySQL 5.7 ไม่มีไดเรกทอรีลงชื่อเข้าใช้ด้วย HOME = /


16

ฉันขอโทษถ้าคำถามนี้ถูกถามไปแล้วแต่ฉันไม่สามารถหาวิธีแก้ไขปัญหานี้ (อาจจะเล็ก):

ฉันเพิ่งติดตั้ง mysql-server 5.7 ใหม่บนเซิร์ฟเวอร์ 14.04 ทุกครั้งที่บริการ MySQL เริ่มต้นฉันได้รับข้อผิดพลาดนี้:

root@xxx:/etc/mysql# service mysql restart
 * Stopping MySQL Community Server 5.7.11
...
 * MySQL Community Server 5.7.11 is stopped
 * Re-starting MySQL Community Server 5.7.11
No directory, logging in with HOME=/
..
 * MySQL Community Server 5.7.11 is started

นั่นหมายความว่าอย่างไร? ฉันต้องตั้งค่าโฮมไดเรกทอรีเป็นผู้ใช้ "mysql" หรือไม่? (และถ้าเป็นเช่นนั้นตัวเลือกที่ดีที่สุดคืออะไร / home / mysql ??) ตอนนี้ก็ถึง / nonexistent:

mysql:x:110:106:MySQL Server,,,:/nonexistent:/bin/false

แต่ฉันมีเครื่องอื่นที่มี / ไม่มีอยู่เหมือนเดิมและไม่แสดงข้อผิดพลาดใด ๆ ...


1
/ var / log / mysql ;-) ดู: askubuntu.com/questions/539440/…
Rinzwind

ตกลงในกรณีของฉันมันเริ่มต้นและดูเหมือนว่าจะทำงานได้ดีมันก็แสดงให้เห็นเพียงแค่การแจ้งให้ทราบ
the_nuts

คำตอบ:


31

มีปัญหาเดียวกันเพื่อกำจัดข้อผิดพลาดนี้ฉันทำต่อไปนี้

  1. หยุดบริการ MySQL:

    sudo service mysql stop

  2. เปลี่ยนโฮมไดเร็กตอรี่ของ mysql จากไม่มีอยู่ไปเป็นไดเร็กตอรี่ดั้งเดิมที่ควรจะเป็น:

    sudo usermod -d /var/lib/mysql/ mysql

ตอนนี้เริ่มเซิร์ฟเวอร์ mysql อีกครั้งด้วย:

sudo service mysql start

ข้อความแสดงข้อผิดพลาดได้หายไป ยังไม่ทราบสาเหตุที่เกิดขึ้นนี้


1
มันอาจจะเป็นงานแก้ไข แต่ฉันจะไม่เห็นด้วยกับเรื่องนี้ / home / สำหรับผู้ใช้ ไม่ใช่สำหรับการสร้างสถานที่สำหรับผู้ใช้ที่ต้องการความปลอดภัย / การอนุญาต / อะไรก็ตาม คนที่บอก / home / MySQL และการสร้างผู้ใช้ MySQL จริงควรจะตำหนิอย่างจริงจัง
Rinzwind

/ var / lib o / var / log? อย่างไรก็ตามไดเรกทอรีดังกล่าวดูเหมือนจะไม่ได้รับการเติมข้อมูลใด ๆ
the_nuts

2
ใช่นี่เป็นวิธีแก้ปัญหาให้ฉันทราบเมื่อคุณพบวิธีแก้ปัญหา
Abdul Hayee

1
ตามที่โพสต์นี้ , Red Hat มีชุด MySQL /var/lib/mysqlไดเรกทอรีบ้าน ดังนั้นดูเหมือนว่าจะเป็นเช่นนี้ ....
ostrokach

2
สำหรับสิ่งที่คุ้มค่าฉันได้รับข้อผิดพลาดนี้เมื่อฉันเรียกใช้ mysql ใน Windows WSL ข้อผิดพลาดหยุดเกิดขึ้นหลังจากที่ฉันออกจาก mysqld.exe บน Windows พอร์ต 3306 ถูกอ้างสิทธิ์โดยกระบวนการ Windows
Azeirah

0

ฉันจะ furtrher แนะนำทางออกถาวรถ้ามันมักจะเรียกใช้จาก dir เดียวกับที่ฉันคิดว่ามันควรจะทำไมไม่แก้ไขผู้ใช้ mysql ใน / etc / passwd:

mysql:x:106:111:MySQL Server,,,:/var/lib/mysql/:/bin/false
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.