【问题标题】:How to add custom mysql database in symfony如何在 symfony 中添加自定义 mysql 数据库
【发布时间】:2015-09-18 10:20:00
【问题描述】:

首先大家好!

我在 Symfony 1.4 网站上,但我对这个框架并不了解。

站点已经使用了 2 个数据库连接,在 databases.yml 中

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=localhost;dbname=my_db_name
      username: my_username
      password: ***
      charset: utf8
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8
        use_native_enum: true

# Base de test
test:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=localhost;dbname=my_other_db_name
      username: my_username
      password: ***
      charset: utf8
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8
        use_native_enum: true

我认为它有效,我从不使用基础测试,但我想它有效。 我需要使用另一个数据库,这次不是在本地主机中,而是来自另一台服务器。 我尝试了很多东西,我从 stackoverflow 帖子中学习。

我在我的模块中创建了一个配置文件夹,我将代码放入一个新的 databases.yml

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=mysql_host.bdb;dbname=mysql_db_name
      username: mysql_username
      password: ***
      charset: utf8
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8
        use_native_enum: true

我不知道如何访问这个数据库,似乎根本不起作用。 所以我直接尝试进入我的模板,这似乎是逻辑,因为我只需要将此数据库放入 1 个模板中,以响应表单。

$bd_nom_serveur='mysql_host.bdb';
$bd_login='mysql_user';
$bd_mot_de_passe='***';
$bd_nom_bd='mysql_db_name';

$base = mysqli_connect($bd_nom_serveur, $bd_login, $bd_mot_de_passe, $bd_nom_bd);

向我发送警告

警告:mysqli_connect(): (HY000/2005): /srv/d_/www/draft.site.com/apps/frontend/modules/FormContactSlot/templates 中的未知 MySQL 服务器主机 'mysql_host.bdb' (2) /sendMailCatalog.php 第 14 行

我也试过

$dsn = 'mysql:dbname=mysql_db_name;host=mysql_host.bdb';
$user = 'mysql_user';
$password = '***';

$dbh = new PDO($dsn, $user, $password);
$conn = Doctrine_Manager::connection($dbh);

发送错误信息

500 |内部服务器错误 | PDOException SQLSTATE[HY000] [2005] 未知的 MySQL 服务器主机 'mysql_host.bdb' (2)

我尝试使用和不使用 .bdb,但没有任何改变。 我不知道如何从 symfony 1.4 访问这个数据库

谁能帮帮我! 请记住,我对 Symfony 知之甚少,请温柔一点!

编辑:

我还尝试了另一个技巧。 我在 config/databases.yml 上的主数据库之后添加数据库

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=localhost;dbname=my_db_name
      username: my_username
      password: ***
      charset: utf8
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8
        use_native_enum: true
  client:
    class: sfDoctrineDatabase
    param:
      dsn:      mysql:host=host.bdb;dbname=dbname
      username: user
      password: ***
      charset: utf8
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8
        use_native_enum: true

这一次,每当我尝试访问我的网站时,我都会遇到错误。我也执行命令symfony doctrine:build-schema,但这给我发送了同样的错误未知的mysql服务器...... 我需要帮助,我必须从 symfony 访问我的 mysql 数据库,我别无选择。

【问题讨论】:

  • host.bdb 是主机名。您的 DNS 服务器必须将此解析为 IP 地址,而这不会发生。你是从哪里弄来的?
  • 所以你的意思是我对 dbname 使用了错误的值?我应该使用 IP 地址而不是数据库名称。我从我的经理 OVH 那里得到它。我有 4 个数据库,我需要访问一个。我有 1 个 IP 地址,但可以访问域,而不是数据库。我只能从 phpMyAdmin 访问它们,而且我猜只能使用 dbname/user/password。如果我需要一个 IP 地址,我不知道从哪里得到它。

标签: mysql sql doctrine symfony1 symfony-1.4


【解决方案1】:

我回应自己是因为我找到了解决方案:

没有解决办法。

我使用的是共享 OVH 解决方案,并且无法远程访问共享 OVH 数据库。所以我必须采取vps解决方案,那里有数据库的IP主机。

感谢 Marek 帮助我找到解决方案。 这是有效的查询。

$bd_nom_serveur='IP host';
$bd_login='mysql_user';
$bd_mot_de_passe='***';
$bd_nom_bd='mysql_db_name';

$base = mysqli_connect($bd_nom_serveur, $bd_login, $bd_mot_de_passe, $bd_nom_bd);

PDO 仍然无法正常工作。

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    相关资源
    最近更新 更多