Warum ist /etc/mysql/my.cnf LEER?


15

Ich versuche, die my.cnfDatei zu bearbeiten, um den Remotezugriff zu ermöglichen, und verwende schließlich Software von meinem Windows Server, um die geplante Sicherung für MySQL Server zu konfigurieren.

Ich habe diese Anweisungen befolgt . Die /etc/mysql/my.cnfDatei auf meinem Ubuntu hat jedoch nur:

#
# 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/

Es enthält keine Konfiguration, die ich bearbeiten kann. Warum ist es so?


Alles, was es bedeutet, ist, dass die Datei nur im Standardzustand ist, in der ursprünglichen Form seit der Installation
Sergiy Kolodyazhnyy

Antworten:


29

Erstens ist die Datei, wie AB zu Recht betont, nicht leer. Es hat zwei ziemlich wichtige Richtlinien, nämlich

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

Diese Zeilen besagen , dass sich zusätzliche Konfigurationsdateien (in diesem Fall .cnf) in den folgenden Verzeichnissen befinden:

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

Das letztere der beiden Verzeichnisse sollte mysqld.cnf enthalten . Mit anderen Worten sollte die entsprechende Konfigurationsdatei sein:

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

2
Irgendetwas stimmt so oder so nicht. Wenn ich die halb leere my.conf-Datei bearbeite und zB wait_timeout = 600 einstelle, kann der Dienst mysql nicht mehr gestartet werden.
phil294

Dies ist die genaue Antwort auf die Frage.
Lasitha Benaragama

Ich wünschte, ich könnte es 6 Stunden früher finden!
Neophyt

@Blauhirn Gleiche hier, wenn ich hier ein Passwort sage. Ohne es startet der Dienst, aber anscheinend wird unter [mysqld] nicht alles richtig analysiert, wie wait_timout und password.
min hundje

5

Die Datei ist nicht leer. Es enthält Kommentare - die Zeilen mit einem führenden #- und Importanweisungen - die Zeilen mit einem führenden !. Eine import-Anweisung bedeutet, dass auch andere Konfigurationen verwendet werden.

Das Bearbeiten einer Konfigurationsdatei bedeutet auch das Hinzufügen neuer Konfigurationszeilen.


3

Meine Akte ist die selbe. Sie müssen die richtige Gruppe über dem Befehl hinzufügen, den Sie eingeben möchten, sonst startet der Dienst nicht.

Um hinzuzufügen bind-address, müssen Sie [mysqld]darüber hinzufügen .

Wenn Sie überprüfen müssen , was die Gruppen für die anderen Befehle sind, gibt es ein Beispiel - my.cnfDatei hier .

Wenn Sie Remoteverbindungen von allen Schnittstellen (z. B. 0.0.0.0) aktivieren möchten, sieht Ihre Datei wie folgt aus. Stellen Sie jedoch sicher, dass Sie die Firewall ordnungsgemäß eingerichtet haben.

#
# 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

Beachten Sie die Gruppe [mysqld].


Das ist so ein Schmerz in einem **. Ich habe seit fast zwei Tagen versucht, Remoteverbindungen herzustellen. Remote-Verbindungen sollten sofort aktiviert werden.
Mark Alexa

Warum sollten Sie jeden Datenbankserver sofort dem Internet aussetzen? Gibt es nicht genug ungesicherte Systeme?
A. Scherbaum


2

In diesem Fall ist diese Datei nicht die Hauptdatei, in der alle Informationen zu Bindeadresse, Binlogs usw. enthalten sind. Es gibt jedoch eine andere Datei, in der sie enthalten sind. Versuche dies:

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

Es hat mir geholfen, und es sollte dir helfen.


1

Unter Ubuntu 16.04 / MySQL 5.7 ist mindestens my.cnf leer, da es sich um einen Symlink zu einer anderen Datei handelt, die auf mysql.cnf in /etc/mysql/mysql.conf.d verweist, das in anderen Antworten erwähnt wurde. Nehmen Sie Ihre Änderungen hier wie oben beschrieben vor.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.