首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在drush sql-sync上拒绝访问(远程用户和数据库用户不同)

在drush sql-sync上拒绝访问(远程用户和数据库用户不同)
EN

Stack Overflow用户
提问于 2016-02-09 16:15:17
回答 2查看 740关注 0票数 1

在Drush v8.0.3中,我正在执行以下操作:

代码语言:javascript
复制
sql-sync @project.local @project.desarrollo

并在流程结束时获取此错误(其他操作都正常):

代码语言:javascript
复制
ERROR 1045 (28000): Access denied for user 'myremotehostuser'@'localhost' (using password: YES)

我的别名文件包括以下内容:

代码语言:javascript
复制
$aliases['desarrollo'] = array (
  'root' => '/home/myremotehostuser/subdomains/project/',
  'uri' => 'http://project.myremotehost.com',
  'remote-user' => 'myremotehostuser',
  'remote-host' => 'myremotehost.com',
  'path-aliases' => array(
    '%dump-dir' => '/tmp',
  ),
  'source-command-specific' => array (
    'sql-sync' => array (
      'no-cache' => TRUE,
      'structure-tables-key' => 'common',
    ),
  ),
  'command-specific' => array (
    'sql-sync' => array (
      'sanitize' => TRUE,
      'no-ordered-dump' => TRUE,
      'structure-tables' => array(
        'common' => array('cache', 'cache_filter', 'cache_menu', 'cache_page', 'history', 'sessions', 'watchdog'),
      ),
    ),
  ),
);

和"desarrollo“返回的钻取状态:

代码语言:javascript
复制
Drupal version         :  7.41                                   
Site URI               :  http://project.myremotehost.com       
Database driver        :  mysql                                  
Database hostname      :  localhost                              
Database port          :                                         
Database username      :  databaseuser                         
Database name          :  databasename                      
PHP configuration      :  /usr/local/lib/php.ini                 
PHP OS                 :  Linux                                  
Drush script           :  /usr/local/bin/drush                   
Drush version          :  8.0.3                                  
Drush temp directory   :  /tmp                                   
Drush configuration    :                                         
Drush alias files      :                                         
Drupal root            :  /home/myremotehostuser/subdomains/project/ 
Drupal Settings File   :  sites/default/settings.php             
Site path              :  sites/default  

如您所见,“数据库所有者”( MySQL用户)与“远程主机”( CPanel用户)不一样。

建议使用Drush扫描两边的设置文件,以确定正确的配置,如果我没有错,您甚至不必添加$databases数组或v7后的db-url字符串。那么,为什么要用'myremotehostuser'@'localhost‘而不是’databaseuser‘@’localhost‘访问数据库呢?

在这种情况下,没有一个名为'myremotehostuser‘的数据库用户,我想我可以通过创建它并为'databasename’授予权限来解决这个问题,但是我几乎可以肯定,我在这里遗漏了一些非常愚蠢的东西,而且肯定有一个简单的解决方案。

编辑:

在同一服务器中尝试相同的别名文件(主机用户名和数据库用户名)仍然不同,但这一次在刚创建的帐户中似乎工作得很好。因此,我想问题是由一些CPanel/WHM配置问题引起的,而不是任何与钻取相关的问题。在结束这个问题之前,我会继续尝试几次。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-06 22:47:23

我也遇到过这个问题。事实证明,drush首先要查找文件~/.my.cnf,如果找到它,就会使用它进行连接。该文件包含用户名和密码。

代码语言:javascript
复制
[client]
user=myremotehostuser

一旦我暂时删除这个文件,drush就可以使用站点的settings.php成功地转储sql。

票数 0
EN

Stack Overflow用户

发布于 2016-02-26 08:47:50

在新帐户中重复rsync和sql-sync进程是没有问题的。此问题仅发生在此已创建的帐户中,包含多个数据库、用户和前缀。我无法完全访问这个帐户,所以我无法正确地测试它。

这个问题过于具体,很可能不值得单独提出问题,因为它几乎不可能复制。我会考虑它的“解决”,并将更新的情况下,我发现为什么它不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35296844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档