sudo用户没有正确的mysql权限

时间:2016-08-12 18:42:28

标签: mysql wordpress ssh deployment capistrano3

我正在尝试使用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
mysql -u sudousername -p

并收到以下错误...

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

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

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

  1. 向sudousername授予适当的权限,以便它可以在数据库上执行所需的操作
  2. 传递第二个用户名并使用Capistrano传递给DB用户(当我为Wordpress设置数据库时,我使用phpmyadmin创建了一个用户)。这里的想法是,当Capistrano已经在SSH中并试图在数据库上执行功能时,它将使用其他用户名和密码。
  3. 我已经找了几个小时的解决方案,但我是服务器n00b并且找不到任何东西(并且可能不确定我在寻找什么)。

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

1 个答案:

答案 0 :(得分:0)

我已经弄清楚问题是什么。 wp-deploy使用我的sudo用户凭据来SSH并执行一些shell命令。其中一个尝试使用我没有安装的WP Cli工具。一旦我安装了WP Cli工具,脚本SSH就会运行wp db export并以正确的数据库用户身份运行。感谢@JuanTomas帮助我缩小范围。

对于那些遇到相同问题的人,我还必须授予我的数据库用户对" LOCK TABLES'的权限。此外,如果您使用的是Wordpress 4.4+,则需要最低0.2 Cl的WP Cli版本,否则会出现兼容性问题。使用wp --info查看您的版本。