/etc/mysql/my.cnfが空になっているのはなぜですか?


15

my.cnfファイルを編集してリモートアクセスを許可し、最終的にはWindows Serverのソフトウェアを使用して、MySQL Serverのスケジュールされたバックアップを構成しようとしています。

私はこれらの指示に従っていました。ただし、/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が正しく指摘しているように、ファイルは空ではありません。それは、2つのかなり重要なディレクティブ、すなわち

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

これらの行は、追加の構成ファイル(この場合は.cnf)がリストされているディレクトリにあることを示しています。

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

2つのディレクトリの後者にはmysqld.cnfが含まれている必要があります。つまり、適切な構成ファイルは次のようになります。

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

2
どちらかが正しくない。途中で空のmy.confファイルを編集して、たとえばwait_timeout = 600に設定すると、サービスmysqlを開始できなくなります。
phil29416

これは質問に対する正確な答えです。
ラシタベナラガマ

6時間早く見つけられたらいいのに!
新人

@Blauhirnパスワードをここに記載する場合も同じです。これがないとサービスは開始しますが、明らかに[mysqld]の下でwait_timoutやpasswordのようにすべてが正しく解析されるわけではありません。
分hundje

5

ファイルは空ではありません。コメント#(先頭の行)とインポート文(先頭の行)が含まれます!。importステートメントは、他の構成も使用されることを意味します。

構成ファイルを編集すると、新しい構成行を追加することも意味します。


3

私のファイルは同じです。入れようとしているコマンドの上に正しいグループを追加する必要があります。そうしないと、サービスが開始されません。

追加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]グループに注意してください。


これはa **の痛みです。ほぼ2日間、リモート接続を機能させようとしています。リモート接続はすぐに有効にする必要があります。
マークアレクサ

なぜすべてのデータベースサーバーをそのままインターネットに公開するのですか?安全でないシステムが十分にありませんか?
A.シェルバウム


2

その場合、そのファイルはメインではなく、bind-adress、binlogなどに関するすべての情報が含まれます。しかし、それらが含まれる別のファイルがあります。これを試して:

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

それは私を助け、あなたを助けるはずです。


1

Ubuntu 16.04 / MySQL 5.7では、少なくともmy.cnfは実際には空です。これは、他の回答で言及されている/etc/mysql/mysql.conf.d内のmysql.cnfに戻るシンボリックリンクである別のファイルへのシンボリックリンクであるためです。上記のようにここで変更を行います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.