오라클의 pfile과 같다고 생각하였다.
1. my.cnf 파일 없다면 데이터 베이스는 올라올까?
테스트 결과 my.cnf가 없어도 디비는 올라왔다.
오라클에서는 pfile 또는 spfile이 반드시 존재해야하는 반면에 mysql에는 my.cnf이 없어도 작동 되는 것을 확인하였다.
다만 my.cnf에서 설정된 시스템 변경 값이 디폴트로 바뀌는 것도 함께 확인을 하였다.
그런데 테스트로는 올라온것을 확인하였으나, 무조건 my.cnf 파일이 있어야 된다는 의견도 있어서 다소 헷갈리는 부분이다.
2. my.cnf 파일은 어디에 존재하는가?
my.cnf가 찾을수 없을 때 아래 명령어로 파일을 찾아 나갈수 있다.
find / -name 'my.cnf' 로 파일의 위치를 찾을수가 있다.
다만 여기서 실제 적용되고 있는 파일인지 그게 좀 헷갈린다. 파일 내용을 변경하고 적용해보지 않는 이상은 모르는게 아닌가?
데이터베이스 안에서 찾을 수 있는 방법이 있지 않을까 했지만, 없는 것 같다.
그래서 최선의 방법으로 아래 명령어로 따라가서 찾아봐야할 것 같다.
$ mysql --help | grep -A 1 'Default options' |
결과값을 보면 여러 경로가 나오는데 이것은 우선순위로 my.cnf 를 참조한다고 한다.
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
필자의 my.cnf 경로는 /usr/local/etc/my.cnf 에 존재하였다.
3. my.cnf 경로를 변경해 줄 수는 없는 것인가?
그리고 궁금한 것 중 또 하나는 my.cnf 값을 우선순위 경로로 읽고 있다면, 이 우선순위 경로외에 다른 경로에서 불러 올 수 있는 방법은 있지 않을까 라는 의문이 생겼다.
이것은 아래와 같이 설정에서 바꿔줄 수 있다고 한다.
우선 우리가 mysql을 실행시킬때 사용하는 mysql.server 을 vi 열어 보면 된다.
$ which mysql.server /usr/local/bin/mysql.server |
$ vi /usr/local/bin/mysql.server
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & $bindir/mysqld_safe --defaults-extra-file=/usr/local/etc/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & |
mysqld_safe 바로 뒤에 위치에 해야한다
이렇게 설정하면 저 파일외에 다른 쪽 my.cnf 파일은 읽어 올수가 없다고 한다. 라고 알고있었지만,
default경로에 my.cnf 파일이 있다면 이 파일부터 읽게 된다.
'MySQL' 카테고리의 다른 글
컬럼명을 명령어 또는 공통변수(?)로 사용하게 된다면 (0) | 2023.04.17 |
---|---|
스토리지 엔진 (0) | 2022.10.21 |
1406, Data too long for column 과 STRICT_TRANS_TABLES (0) | 2022.09.28 |
transaction이 완벽하지 않은듯하다? (0) | 2022.09.28 |
시스템 환경설정 확인 방법의 차이? (0) | 2022.09.28 |