【问题标题】:Codeigniter SSH Connection to remote MySQL DBCodeigniter SSH 连接到远程 MySQL 数据库
【发布时间】:2016-10-29 00:00:17
【问题描述】:

我正在尝试使用 Codeigniter 远程连接到我们的实时数据库。但是我收到一个错误:

消息:mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'10.54.9.20' (using password: YES)

Database.php 配置文件:

$db['default'] = array(
'dsn'   => '',
'hostname' => 'xx.xx.xxx.xxx',
'username' => 'username',
'password' => 'password',
'database' => 'database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE, //tried changing this to TRUE
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

我在本地主机中使用数据库没有问题,但是在使用远程配置时出现错误。

需要帮助。谢谢大家!

【问题讨论】:

  • 你可能需要一些 GRANTS
  • 嗨,德鲁,是的,正如 1000111 在他的评论中所说的那样。但我不确定在哪里运行这个命令。我尝试通过 SSH 访问服务器,但 GRANT 未被识别为命令。它说:如果 'grant' 不是错字,您可以使用 command-not-found 来查找包含它的包......等等。
  • 被问了无数次,也得到了回答!很高兴你成功了。

标签: php mysql codeigniter mysqli ssh


【解决方案1】:

不允许用户名、主机和密码的组合连接到服务器。验证服务器上的权限表(如果需要,重新加载授权)以及您正在连接到正确的服务器。

【讨论】:

  • 好吧,告诉他怎么做。你现在上钩了:p
  • 谢谢。但是,我该怎么做呢?这对我来说有点复杂,特别是对于带有 SSH 身份验证的远程数据库。
  • 我可以使用密码和用户名使用 SSH 通过终端远程访问服务器(服务器的用户和密码与数据库相同,因为我能够使用相同的信息连接 MySQLyog) .
【解决方案2】:

从 localhost 登录并运行以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YOUR_PASSWORD' WITH GRANT OPTION;

FLUSH PRIVILEGES;

现在尝试远程访问。

【讨论】:

  • 我应该通过终端访问服务器吗?还是通过代码?
  • 我尝试通过 SSH 访问服务器,授权未被识别为有效命令。我不知道在哪里做这件事。对不起。
  • 您没有root 用户访问权限吗?
  • 是的,我有。我能够使用 root 访问使用 SSH 通过终端登录。当我尝试运行命令时,它显示“如果 'grant' 不是拼写错误,您可以使用 command-not-found 来查找包含它的包......等等。”
  • SELECT * FROM mysql.user WHERE User='root'。看看你有没有grant 权限
猜你喜欢
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2011-12-27
  • 2013-08-14
  • 2020-05-05
相关资源
最近更新 更多