MySQL my.cnf 경로는 어디에 있습니까?


10

MySQL의 설치 디렉토리를 찾았습니다. /usr/local/mysql/

my.cnf서버 구성 위치를 알 수있는 경로는 어디에서 찾을 수 있습니까 ? /etc/my.cnf(아래 그림과 같이)를 만들려고했지만 아무런 영향을 미치지 않았습니다.

[mysqld]

#charset
collation_server=utf8_general_ci
character_set_server=utf8
default_character_set=utf8

사용중인 배포판에 대한 자세한 내용이 도움이 될 것입니다.
— Tim

debian / * buntu / rhel / cent는 패키지 설치에서 / usr / local을 사용하지 않을 것입니다. 그것은 느슨하거나 freebsd처럼 들립니다.
— Tim

답변:


20

당 이 문서 :

커맨드 라인 / 터미널에서이 명령을 실행하면 MySQL이 Linux / BSD / OS X 시스템에서 my.cnf 파일을 찾는 위치가 표시됩니다.

mysql --help | grep "Default options" -A 1 

이것은 다음과 같이 출력됩니다 :

Default options are read from the following files in the given order: 
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

이제에서 위의 출력을 사용하여 파일을 확인할 수 있습니다 /etc/my.cnf다음, /etc/mysql/my.cnf등등. 해당 위치 중 하나에 하나가 없으면 하나를 생성하고 MySQL이 사용한다는 것을 알 수 있습니다.


3

Linux 시스템에서는 'locate my.cnf'가 가장 빠른 솔루션입니다.

몇 가지의 my.cnf 파일이있는 경우, 모든 (예에서 가능성을 찾고 /etc, /etc/mysql, /opt/mysql/etc, 등), 다음 실행할 수 straceMySQL의 바이너리 시도가 구성 파일을 어디서 찾을 수 있는지 확인합니다,하지만 난 그 잔인한 생각합니까.


나는 -bash: locate: command not found... 시도 find / my.cnf했지만 아무것도 찾지 못했습니다.
— 웹넷

이것은 my.cnf 파일이 작성된 이후로 귀하의 locatedb가 업데이트되었다고 가정합니다. 일반적으로 이것은 cron을 통해 매일 수행됩니다. 수동으로 업데이트해야한다면 "updatedb"를 루트로 실행하십시오
— ckliborn

locate: command not found업데이트 된 문제가 아니며 패키지가 없습니다.
— Tim

"slocate"패키지를 설치하십시오.
— TheCompWiz

2

어둠 속에서 와일드 샷을 확인하십시오.

데이터베이스에 설치되어있는 경우 /usr/local/mysql, 다음을보고 시도 /etc/local에 대한my.cnf

당신이 있는지 확인하는 방법은 다음과 같습니다 my.cnf

이 쿼리를 실행 (<= 5.6.7)

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');

또는 (>= 5.6.8)성능 스키마로 이동했습니다.

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW GLOBAL VARIABLES LIKE 'innodb_log_file_size';

당신이 얻을 경우 :

기본값으로 실행 중이며 my.cnf선물 이 없을 수 있습니다 .

노트:

MySQL 5.7.6부터는 여기에 설명 된 테이블에서 사용 가능한 정보가 성능 스키마에서도 사용 가능합니다. INFORMATION_SCHEMA 테이블은 성능 스키마 테이블보다 더 이상 사용되지 않으며 향후 MySQL 릴리스에서 제거 될 예정입니다. INFORMATION_SCHEMA 테이블에서 성능 스키마 테이블로 마이그레이션하는 것에 대한 조언은 25.20 절.“성능 스키마 시스템 및 상태 변수 테이블로 마이그레이션”에서 참조하십시오.


-bash: updatedb: command not found
— 웹넷

내 답변을 업데이트했습니다. 다시 시도하십시오 !!!
— RolandoMySQLDBA

/usr/bin/which: no updatedb in (/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/bin:/usr/local/apache2/bin:/usr/local/firefox:/usr/local/mysql/bin:/usr/games:/usr/local/fetter/bin)
— 웹넷

1

MySQL을 어떤 플랫폼에 어떻게 설치 했습니까?

unixoid OS에서 무차별 대입 방법 :

find / -name my.cnf -print

나는 그것을 설치하지 않았다, 그것은 몇 년 된 기계에있다. 그것은 켜져있다Linux mars 2.6.5-7.147-bigsmp #1 SMP Thu Jan 27 09:19:29 UTC 2005 i686 i686 i386 GNU/Linux
— Webnet

1

strace -fe open /etc/init.d/mysql start 2>&1|grep my.cnf 파일을 여는 데 사용 된 시스템 호출을 표시해야합니다.


1

cnf가 생성 한 파일이 다른 파일로 대체 된 것 같습니다. 아래 기본 순서를 확인하십시오.

에서

mysqld --verbose --help

기본 옵션은 주어진 순서대로 다음 파일에서 읽습니다. /etc/my.cnf ~ / .my.cnf /etc/my.cnf


1

cnf 파일을 읽지 않으려면 어떻게합니까?

변경 이후 mysqld를 다시 시작 했습니까?

새 db를 작성하려고 시도하고 해당 값을 보셨습니까?


0

실행하고 찾을 수 있도록 locate 및 updatedb를 설치하려면 ..

페도라를 사용하여 centos는 루트로 실행됩니다.

yum install mlocate

Ubuntu run을 실행중인 경우 :

sudo apt-get install mlocate

설치를 완료 한 후 업데이트 된 Fedora (루트로)를 실행하십시오.

$updatedb 

우분투 :

sudo updatedb

그런 다음 위에 나열된 것처럼 locate 명령을 실행할 수 있습니다. 다시 my.cnf는 일반적으로 / etc에 있습니다. mysql이 설치되어 있습니까? 위의 명령을 수행하여 설치하고 mlocate를 mysqld 행운으로 대체하십시오!

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