php - 在种子 laravel 中没有正确地从环境变量中提取

标签 php mysql laravel

.env 中为用户设置了以下值:

APP_ENV=local
APP_KEY=base64:jkUuiJJr7k+TzJwOZUExhJ/Mdr4i3Jg=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my-database
DB_USERNAME=my_user
DB_PASSWORD=123

在远程服务器上运行seeds,报错如下:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) Seeded: SiteStringsTableSeeder ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) Seeded: FileGroupsTableSeeder ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) Seeded: AreasTableSeeder PHP Fatal error: Class 'Faker\Factory' not found in /var/www/laravel/bootstrap/cache/compiled.php on line 7885

class SiteStringsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // mysqldump --max_allowed_packet=1G --no-create-info=TRUE --user=root --default-character-set=utf8 "db_old" "sitestring" > db_old_sitestring.sql
        // mysql -uroot my_user < db_old_sitestring.sql
        $pass_if_pass =  env('DB_PASSWORD');
        $pass_if_pass =  $pass_if_pass ? ' -p'.$pass_if_pass.' ' : ' ';


        exec("mysql -u".env('DB_USERNAME', 'root').$pass_if_pass.
            env('DB_DATABASE', 'db')." < database/seeds/sitestrings_seed.sql");
    }
}

为什么是 root,除非在 .env 中指定另一个用户?预先感谢您的回复

最佳答案

始终仅从配置文件中引用您的.env 变量。为此,请转到您的配置文件 app.php 并添加在返回数组中的 .env 文件中定义的 .env 变量,如下所示

return [
    'db_username' => env('DB_USERNAME'),
    'db_password' => env('DB_PASSWORD'),
    'database' => env('DB_DATABASE'),
];

在您的应用程序代码中使用配置助手 config('app.db_username'); 获取 .env 变量 DB_USERNAME 的值。 通过这样做,配置缓存将正常工作。

关于php - 在种子 laravel 中没有正确地从环境变量中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593754/

相关文章:

php - 使用 PHP 的 cURL 多线程

php - 如何在单页 Web 应用程序中处理多个脚本

mysql - 用子字符串替换列的值(未知长度)

phpmyadmin 使用 mysql 连接访问

php - 调整mysql数据库查询以过滤列值

php - 将JavaScript数组数据插入MySQL数据库的问题

mysql - 在mysql中使用元组比较是否高效?

php - 分页之前的多维 groupBy 和 orderBy - Laravel 5

php - Laravel 验证双重嵌套

php - 如何在 Laravel SQL 原始查询中使用括号