작은숲:위키노트/PHP mysqli options
PHP에서 mysqli로 MySQL 데이터베이스 접속할 때 필요한 설정들을 .my.cnf와 같은 형식의 설정 파일에 저장해놓고 쓸 수 있다.
[client]
host = localhost
user = someone
password = simplepassword
database = sample
default-character-set = utf-8
이렇게 작성된 설정 파일은 PHP의 mysql_options() 함수를 써서 접속할 때 사용한다.
$sql = mysqli_init();
mysql_options(MYSQLI_READ_DEFAULT_FILE, '/path/to/my.cnf');
mysql_options(MYSQLI_READ_DEFAULT_GROUP, "client");
mysqli_real_connect($sql);
하지만 이 경우 password 지시자의 값을 제대로 읽어오지 못하는데 이건 버그라고 알려져 있으며 아직 수정되지 않은 상태이다. 따라서 PHP 소스에 MySQL 접속 비밀번호를 직접 쓰지 않고 설정 파일을 쓰려면 parse_ini_file() 함수를 쓴다.
$opts = parse_ini_file('/path/to/my.cnf');
$sql = mysqli_init();
mysqli_real_connect($sql, $opts['host'], $opts['user'], $opts['password'], $opts['database']);
참고
- (영어) 'password' parameter in my.cnf not honored even with mysqli_options()
- (영어) MySQL won't read password from configuration file
| PHP 7.0 | |
|---|---|
| PHP 5.6 | |
| PHP 5.5 | |
| 확장 기능 | |
| 활용 | |
| 소프트웨어 | |
| 설정과 문제 해결 | |
|---|---|
| 활용 | |