我一直在遵循 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
(有效)
我尝试过远程登录,成功了。我尝试过创建一个非 root 用户,以防某些东西保护 root,但同样失败了。除了 Vault 命令之外,其他一切都正常,但我找不到任何关于会导致此问题的 Vault 进一步配置的参考。
我是否遗漏了 Vault 方面的某些内容?
答案1
就我而言,它是 MySql 设置。
我所做的是在 my.cnf 中注释掉“skip_name_resolve”
重新启动 MySql,一切就绪!