/etc/mysql/my.cnf가 비어있는 이유는 무엇입니까?


16

my.cnf원격 액세스를 허용하고 궁극적으로 Windows Server의 소프트웨어를 사용하여 MySQL Server에 대한 예약 백업을 구성하기 위해 파일 을 편집하려고합니다 .

나는 이 지시를 따르고 있었다 . 그러나 /etc/mysql/my.cnf내 우분투 파일은 다음과 같습니다.

#
# 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
어느 쪽도 옳지 않은 것. half-empty my.conf 파일을 편집하고 예를 들어 wait_timeout = 600을 설정하면 mysql 서비스를 더 이상 시작할 수 없습니다.
phil294

이것은 질문에 대한 정확한 답변입니다.
Lasitha Benaragama

6 시간 전에 찾을 수 있으면 좋겠다!
neophyte

@Blauhirn 여기에 암호를 지정할 때와 같습니다. 그것이 없으면 서비스가 시작되지만 분명히 [mysqld]에서 모든 것이 wait_timout 및 password와 같이 올바르게 구문 분석되는 것은 아닙니다.
min hundje

5

파일이 비어 있지 않습니다. 여기에는 주석이 포함 된 행 #과 가져 오기 명령문 이 포함 된 행이 포함 !됩니다. import 문은 다른 구성도 사용됨을 의미합니다.

구성 파일을 편집한다는 것은 새로운 구성 라인을 추가하는 것을 의미합니다.


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

이 경우 해당 파일은 바인드 주소, binlog 등에 대한 모든 정보가 포함 된 기본 파일이 아닙니다. 그러나 여기에는 다른 파일이 포함되어 있습니다. 이 시도:

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

그것은 나를 도왔고 당신을 도울 것입니다.


1

우분투 16.04 / MySQL 5.7에서 적어도 my.cnf는 다른 답변에 언급 된 /etc/mysql/mysql.conf.d의 mysql.cnf로 다시 연결되는 다른 파일에 대한 심볼릭 링크이므로 실제로 비어 있습니다. 위에서 언급 한대로 여기에서 변경하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.