ทำไม /etc/mysql/my.cnf ว่างเปล่า


16

ฉันพยายามแก้ไขmy.cnfไฟล์เพื่ออนุญาตให้เข้าถึงจากระยะไกลและท้ายที่สุดใช้ซอฟต์แวร์จาก Windows Server ของฉันเพื่อกำหนดค่าการสำรองข้อมูลตามกำหนดเวลาสำหรับเซิร์ฟเวอร์ MySQL

ผมต่อไปนี้คำแนะนำเหล่านี้ อย่างไรก็ตาม/etc/mysql/my.cnfไฟล์ใน Ubuntu ของฉันมีเพียง:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

ไม่มีการกำหนดค่าใด ๆ ที่ฉันสามารถแก้ไขได้ ทำไมถึงเป็นเช่นนั้น


ทั้งหมดหมายความว่าเป็นไฟล์ที่อยู่ในสถานะเริ่มต้นในรูปแบบเดิมตั้งแต่การติดตั้ง
Sergiy Kolodyazhnyy

คำตอบ:


29

ประการแรกเนื่องจาก AB ชี้ให้เห็นอย่างถูกต้องไฟล์จะไม่ว่างเปล่า มันมีสองแนวทางที่ค่อนข้างสำคัญคือ

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

บรรทัดเหล่านี้บอกว่าสามารถพบไฟล์การกำหนดค่าเพิ่มเติม (.cnf ในกรณีนี้) ในไดเรกทอรีที่แสดงรายการ:

/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/

หลังของทั้งสองไดเรกทอรีควรมีmysqld.cnf กล่าวอีกนัยหนึ่งไฟล์กำหนดค่าที่เหมาะสมควรเป็น:

/etc/mysql/mysql.conf.d/mysqld.cnf

2
บางสิ่งไม่ถูกต้องเช่นกัน เมื่อฉันแก้ไขไฟล์ my.conf ครึ่งทางที่ว่างเปล่าและเช่นตั้งค่า wait_timeout = 600 mysql บริการจะไม่สามารถเริ่มต้นได้อีกต่อไป ..
phil294

นี่คือคำตอบที่แน่นอนสำหรับคำถาม
Lasitha Benaragama

หวังว่าฉันจะพบมัน 6 ชั่วโมงก่อนหน้านี้!
neophyte

@Blauhirn เหมือนกันที่นี่เมื่อฉันระบุรหัสผ่านที่นี่ หากไม่มีบริการนี้จะเริ่มต้น แต่เห็นได้ชัดภายใต้ [mysqld] ไม่ใช่ทุกอย่างที่ได้รับการแยกวิเคราะห์เช่น wait_timout และรหัสผ่าน
min hundje

5

ไฟล์ไม่ว่างเปล่า มันมีความคิดเห็น - บรรทัดที่มีคำนำหน้า#- และนำเข้าคำสั่ง - บรรทัดที่มีข้อความนำ!หน้า คำสั่งการนำเข้าหมายถึงการกำหนดค่าอื่น ๆ จะถูกใช้เช่นกัน

การแก้ไขไฟล์กำหนดค่ายังหมายถึงการเพิ่มบรรทัดการกำหนดค่าใหม่


4

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

ในการเพิ่มbind-addressคุณจะต้องเพิ่ม[mysqld]ข้างบน

หากคุณจำเป็นต้องตรวจสอบสิ่งที่กลุ่มที่มีคำสั่งอื่น ๆ ที่มีตัวอย่างmy.cnfไฟล์ที่นี่

หากคุณต้องการเปิดใช้งานการเชื่อมต่อระยะไกลจากอินเทอร์เฟซทั้งหมด (เช่น 0.0.0.0) ไฟล์ของคุณจะมีลักษณะดังนี้ด้านล่าง แต่ให้แน่ใจว่าคุณตั้งค่าไฟร์วอลล์ของคุณอย่างถูกต้องหากคุณ

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]    
bind-address = 0.0.0.0

บันทึกกลุ่ม [mysqld]


นี่คือความเจ็บปวดใน ** พยายามทำให้การเชื่อมต่อระยะไกลทำงานได้เกือบสองวันแล้ว การเชื่อมต่อระยะไกลควรเปิดใช้งานนอกกรอบ
Mark Alexa

ทำไมคุณต้องเปิดเผยเซิร์ฟเวอร์ฐานข้อมูลทุกเครื่องให้กับอินเทอร์เน็ตนอกกรอบ? มีระบบที่ไม่มีความปลอดภัยเพียงพอหรือไม่
A. Scherbaum


3

ในกรณีนั้นไฟล์นั้นไม่ใช่ไฟล์หลักที่ข้อมูลทั้งหมดเกี่ยวกับ bind-adress, binlogs และอื่น ๆ รวมอยู่ด้วย แต่มีไฟล์อื่นที่พวกเขารวมอยู่ ลองสิ่งนี้:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

มันช่วยฉันและมันควรช่วยคุณ


1

บน Ubuntu 16.04 / MySQL 5.7 อย่างน้อย my.cnf นั้นว่างเปล่าเพราะมันเป็น symlink ไปยังไฟล์อื่นซึ่ง symlink กลับไปที่ mysql.cnf ใน /etc/mysql/mysql.conf.d ที่กล่าวถึงในคำตอบอื่น ๆ ทำการเปลี่ยนแปลงของคุณที่นี่ดังกล่าวข้างต้น

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