ตัวแปร 'general_log_file' ไม่สามารถตั้งค่าเป็น '/var/lib/msyql/ubuntu.log' ได้


10

ผมเปลี่ยนค่าของ MySQL ของgeneral_log_fileตัวแปรเพื่ออะไรและตอนนี้ฉันพยายามที่จะเปลี่ยนกลับเป็นสิ่งที่มันเป็นมา /var/lib/mysql/ubuntu.logแต่เดิม แต่เมื่อฉัน:

SET GLOBAL general_log_file = '/var/lib/msyql/ubuntu.log';

ฉันได้รับข้อผิดพลาดนี้:

ข้อผิดพลาด 1231 (42000): ตัวแปร 'general_log_file' ไม่สามารถตั้งค่าเป็น '/var/lib/msyql/ubuntu.log' ได้

เกิดอะไรขึ้น?

คำตอบ:


22

ERROR 1231 (42000): Variable 'general_log_file' can't be set to the value of '/var/lib/msyql/ubuntu.log'

เกิดอะไรขึ้น?

คำตอบง่ายๆคือไฟล์นี้ไม่มีอยู่

คุณพิมพ์เร็วเกินไป /var/lib/mysql/ubuntu.logมีการพิมพ์ผิดในชื่อไฟล์คือมันควรจะเป็น


1
หากมีโฟลเดอร์อยู่มันอาจต้องมีการอนุญาตที่เหมาะสมสำหรับmysqlผู้ใช้ (หรือใครก็ตามที่เป็นเจ้าของmysqldกระบวนการ) เพื่อเขียนลงไป
mwfearnley

2

ฉันรู้ว่านี่เป็นคำตอบที่เก่ามาก แต่ในกรณีที่คนอื่นจะมองหาคำตอบที่นี่

ในกรณีของฉัน - ปัญหาอยู่ในการอนุญาตที่ไม่ถูกต้องในโฟลเดอร์ปลายทาง


2
ฉันจะยกเลิกคำตอบของคุณหากคุณสามารถระบุสิทธิ์ที่คุณมีได้แม่นยำยิ่งขึ้นและสิ่งที่คุณพบว่าคุณต้องการ (และนั่นไม่ใช่777)
MadHatter

1
ฉันได้รับอนุญาตให้รูทเพื่อเขียนลงในไดเรกทอรีนั้นเท่านั้น หมายความว่าผู้ใช้ mysql ไม่ได้รับอนุญาตให้เขียนลงไป จากที่นี่ - คุณมีหลายตัวเลือกในการแก้ไขปัญหานี้ เพิ่ม 777 สิทธิ์ (เหมือนที่ฉันทำ) หรือสร้างไดเรกทอรีสำหรับผู้ใช้ mysql เพื่อเขียน
ทาทา

777สิทธิ์เป็นความคิดที่แย่มาก ๆ
MadHatter

1
ในกรณีของฉัน - มันไม่ใช่ความคิดที่ไม่ดีเลยเพราะนี่คือโฟลเดอร์ "ขยะ" ที่ฉันต้องการเขียนลงไปจากที่ใดก็ได้ ฉันไม่ได้ตั้งค่าไฟล์ที่จะเขียนไปยัง /var/lib/mysql/ubuntu.log เหมือนในคำถามนั่นคือสาเหตุที่ฉันไม่ได้เพิ่มความคิด 777 ในตอนแรก เพียงสังเกตว่าแม้ว่าจะมีโฟลเดอร์อยู่ แต่ก็คุ้มค่าที่จะตรวจสอบว่ามีสิทธิ์ที่ถูกต้อง
ทาทา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.