繁体   English   中英

sudo用户没有正确的mysql权限

[英]sudo user doesn't have correct mysql permissions

我正在尝试使用wp-deploy(利用Capistrano)将Wordpress网站部署到Digital Ocean Droplet。 我想我已经正确配置了所有内容,但是当我尝试运行...

bundle exec cap staging db:pull

...我得到一个错误

SSHKit::Runner::ExecuteError: Exception while executing as sudousername@xxx.xxx.xxx.xxx: wp exit status: 127 

(用户名和IP的更改当然是为了保护隐私)。 所以我SSH到我的Droplet中,尝试使用

mysql -u sudousername -p

并得到以下错误...

ERROR 1045 (28000): Access denied for user 'sudousername'@'localhost' (using password: YES)

我认为这是因为sudousername属于sudo组,并且该组没有管理数据库的权限?

我希望找到以下两种解决方案之一:

  1. 向sudousername授予适当的权限,以便它可以在数据库上执行所需的操作
  2. 为数据库用户传递第二个用户名并与Capistrano传递(为Wordpress设置数据库时,我使用phpmyadmin创建了一个用户)。 这里的想法是,当Capistrano已经通过SSH登录并尝试在数据库上执行功能时,它将使用其他用户名和密码。

我已经寻找了几个小时的解决方案,但我是服务器n00b,却找不到任何东西(可能不确定我在寻找什么)。

有人能帮忙吗? 提前致谢!

我已经弄清楚了问题所在。 wp-deploy正在使用我的sudo用户凭据来SSH并执行一些shell命令。 其中之一是尝试使用我未安装的WP Cli工具。 一旦我安装了WP Cli工具,脚本就通过SSH进入并运行了wp db export ,并且以正确的DB用户身份执行了该操作。 感谢@JuanTomas帮助我缩小了范围。

对于那些存在相同问题的人,我还必须授予数据库用户“锁定表”的权限。此外,如果您使用的是Wordpress 4.4+,则需要的WP Cli版本至少为0.24,否则将存在兼容性问题。使用wp --info以检查您使用的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM