저는 Vault 튜토리얼과 문서를 따라 MySQL을 설정했지만 큰 장벽에 부딪혔습니다.
선적 서류 비치:https://www.vaultproject.io/docs/secrets/databases/mysql-maria.html
mysql_secure_installation을 사용하여 CentOS 7에 MySQL(8 및 5.6 시도)을 설치하고 구성했지만 원격 로그인을 비활성화하지 않았습니다. Vault 서버와 MySQL이 동일한 서버에서 실행되고 있지만.
다음을 통해 로그인하면 mysql -u root -p
정상적으로 로그인됩니다. 하지만 이 명령을 실행하면:
plugin_name=mysql-database-plugin \
connection_url="{{username}}:{{password}}@tcp(127.0.0.1:3306)/" \
allowed_roles="mysqlrole" \
username="root" \
password="password-here"
실패합니다:
URL: PUT http://127.0.0.1:8200/v1/database/config/my-mysql-database
Code: 400. Errors:
* error creating database object: error verifying connection: Error 1045: Access denied for user 'root'@'localhost' (using password: YES)
나는 다음과 같은 것을 시도했습니다.
GRANT all privileges on *.* to 'root'@'%' identified by 'your-password'
mysql -u root -p -P 3306 -h 127.0.0.1
나는 (작동하는) 로그인 테스트를 시도했습니다.
원격으로 로그인을 시도했는데 작동했습니다. 루트를 보호하는 무언가가 작동하지 않는 경우를 대비해 루트가 아닌 사용자를 생성해 보았습니다. Vault 명령을 제외한 모든 것이 작동하지만 이 문제를 일으키는 Vault의 추가 구성에 대한 참조를 찾을 수 없습니다.
Vault 측에서 뭔가 빠졌나요?
답변1
제 경우에는 MySql 설정이었습니다.
내가 한 일은 my.cnf에서 'skip_name_resolve'를 주석 처리한 것입니다.
MySql을 다시 시작하면 됩니다!