【问题标题】:lumen/laravel cannot get firebird databaselumen/laravel 无法获取 firebird 数据库
【发布时间】:2020-12-14 02:09:45
【问题描述】:

我得到了将 lumen 与 firebird 数据库连接的项目。 我可以连接php文件。在 connectFDB.php 中。 当我设置 .env 和 config/database.php 但不工作时

ps。我安装了这个 https://packagist.org/packages/harrygulliford/laravel-firebird

ps。 lumen5 laravel7 firebird3.0

connectFDB.php 它可以为我工作并获取数据。

<?php

$database = "/var/lib/firebird/3.0/data/employee.fdb";
$username ="user";
$password = "pass";

$conn = ibase_connect($database, $username, $password);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

echo "Connected to the database<br>";

$sql = "SELECT * FROM EMPLOYEE;";
echo $sql."sql<br>";

$result = ibase_query($conn, $sql) or die(ibase_errmsg());
echo $result."result<br>";


while ($row = ibase_fetch_assoc($result)) {
    echo $row["ID"]." ".$row["NAME"]."<br>";
}

ibase_close($conn);

?>

bootstrap/app.php

我注册了 $app->register(\Firebird\FirebirdServiceProvider::class);

<?php

require_once __DIR__.'/../vendor/autoload.php';
(new 
Laravel\Lumen\Bootstrap\LoadEnvironmentVariables(dirname(__DIR__)))->bootstrap();
date_default_timezone_set(env('APP_TIMEZONE', 'UTC'));


$app = new Laravel\Lumen\Application(dirname(__DIR__));
$app->withFacades();
$app->withEloquent();


$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class);

$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class);


$app->configure('app');
$app->middleware([
   'cors' => App\Http\Middleware\CorsMiddleware::class,
]);


$app->register(App\Providers\AuthServiceProvider::class);
$app->register(\Firebird\FirebirdServiceProvider::class);


$app->router->group(['namespace' => 'App\Http\Controllers',], function 
($router) {
     require __DIR__.'/../routes/web.php';
});

return $app;

config/database.php

<?php

return array(

    'default' => 'mysql',

    'connections' => array(

        //for connect database
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'port'      => env('DB_PORT', 3306),
            'database'  => env('DB_DATABASE', 'orisma_hr'),
            'username'  => env('DB_USERNAME', 'user'),
            'password'  => env('DB_PASSWORD', 'pass'),
        ),

        //for connect firebird
        'firebird' => array(
            'driver'    => 'firebird',
            'host'      => env('DB_FIREBIRD_HOST', ''),
            'database'  => env('DB_FIREBIRD_DATABASE', '/var/lib/firebird/3.0/data/employee.fdb'),
            'username'  => env('DB_FIREBIRD_USERNAME', 'user'),
            'password'  => env('DB_FIREBIRD_PASSWORD', 'pass'),
            'charset'   => env('DB_FIREBIRD_CHARSET', 'UTF8'),
        ),
    ),
);

.env

APP_NAME=Lumen
APP_ENV=local
APP_KEY=907d908ee0936ea8091fc878f9968c1d

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=orisma_hr
DB_USERNAME=user
DB_PASSWORD=pass

DB_FIREBIRD_HOST=
DB_FIREBIRD_DATABASE=/var/lib/firebird/3.0/data/employee.fdb
DB_FIREBIRD_USERNAME=user
DB_FIREBIRD_PASSWORD=pass
DB_FIREBIRD_CHARSET=UTF8

【问题讨论】:

  • 为什么DB_FIREBIRD_HOST 是空的?你有任何错误吗?
  • 使用 FBProfiler.sf.net 或任何其他 TraceAPI 客户端,连接到您的服务器并查看它是否接收到来自您的程序的任何连接请求,如果收到,它们是否成功
  • 只是下次的提示:确保在发布一些代码之前删除登录凭据。这样您就可以保护您的帐户和/或服务器。
  • @MarkRotteveel 我不知道他们是空的,但它可以在 connectFDB.php 中工作
  • 看到'default' =&gt; 'mysql',DB_CONNECTION=mysql 我认为您的程序甚至不会尝试寻找Firebird。看来您的程序配置为使用 MYSQL 而不是任何其他服务器

标签: php laravel firebird lumen


【解决方案1】:

我有工作了

1.chown firebird.firebird /tmp/firebird/fb_init 2.chmod 777 /tmp/firebird/fb_init

3.编辑.env

DB_FIREBIRD_HOST=localhost
DB_FIREBIRD_USERNAME=sysdba
DB_FIREBIRD_PASSWORD=masterkey(or passwordto set when install firebird)

可以在 /etc/firebird/3.0/SYSDBA.password 中看到用户密码

4.edit config/database.php

'host'      => env('DB_FIREBIRD_HOST', 'localhost'),
            'username'  => env('DB_FIREBIRD_USERNAME', 'sysdba'),
            'password'  => env('DB_FIREBIRD_PASSWORD', 'masterkey')(or passwordto set when install firebird)

【讨论】:

  • 使用 chown 777 允许所有用户访问 Firebird 数据库,从安全角度来看,这可能不是一个好主意。
猜你喜欢
  • 1970-01-01
  • 2018-04-11
  • 2020-12-28
  • 2021-07-02
  • 2019-04-17
  • 2019-08-27
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
相关资源
最近更新 更多