【发布时间】: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