【问题标题】:laravel mysql database migrate:install errorlaravel mysql 数据库迁移:安装错误
【发布时间】:2013-08-05 13:46:35
【问题描述】:

在浏览了一些基本的 laravel 代码之后,我尝试了迁移。以下是我的 app\config\databast.php 文件 -

 return array(

        'fetch' => PDO::FETCH_CLASS,

        'default' => 'mysql',

    'connections' => array(

            'sqlite' => array(
                'driver'   => 'sqlite',
                'database' => __DIR__.'/../database/production.sqlite',
                'prefix'   => '',
            ),

            'mysql' => array(
                'driver'    => 'mysql',
                'host'      => 'myproject',
                'database'  => 'myproj',
                'username'  => 'root',
                'password'  => '',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ),

            'pgsql' => array(
                'driver'   => 'pgsql',
                'host'     => 'myproject',
                'database' => 'myproj',
                'username' => 'root',
                'password' => '',
                'charset'  => 'utf8',
                'prefix'   => '',
                'schema'   => 'public',
            ),

            'sqlsrv' => array(
                'driver'   => 'sqlsrv',
                'host'     => 'myproject',
                'database' => 'database',
                'username' => 'root',
                'password' => '',
                'prefix'   => '',
            ),

        ),

        'migrations' => 'migrations',

        'redis' => array(

            'cluster' => true,

            'default' => array(
                'host'     => '127.0.0.2',
                'port'     => 6379,
                'database' => 0,
            ),

        ),

    );

如您所见,默认为 mysql 数据库。然后在命令提示符下我尝试了这个。

php artisan migrate:make users 

输出是 -

created migration: 2013_08_05_110148_users
Generating optimized class loader

然后我尝试了这个

php artisan migrate:install

但我得到了这样的错误

您可以看到它显示“不允许主机 medismoCRM 连接到此服务器”。 medismoCRM 是我在 mysql 服务器中完成的另一个项目。所以我检查了主机文件。主机文件中的行是这样的 -

127.0.0.1       localhost
127.0.0.1       medismoCRM
127.0.0.2       myproject

所以 medismoCRM 和当前项目 myproject 都具有不同的 IP。然后我还检查了 apache 中的 httpd-vhosts.conf 文件。我也有 2 个像这样的不同主机 -

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Zend/Apache2/htdocs/laravel-master/public/"
    ServerName myproject
    <Directory "C:/Program Files/Zend/Apache2/htdocs/laravel-master/public/">
        Options Indexes FollowSymLinks
        AllowOverride all
        # onlineoffline tag - don't remove
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.2
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Zend/Apache2/htdocs/medismoCRM/"
    ServerName medismoCRM
    <Directory "C:/Program Files/Zend/Apache2/htdocs/medismoCRM/">
        Options Indexes FollowSymLinks
        AllowOverride all
        # onlineoffline tag - don't remove
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

所以当我尝试 php artisan migrate:install 时,谁能告诉我为什么命令提示符出现该错误?

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    app/config/app.php 中,确保设置'url' =&gt; 'http://myproject'

    【讨论】:

      【解决方案2】:

      你还在phpinfo()中安装了PDO吗?

      创建文件phpinfo.php并放入文件&lt;?php phpinfo(); ?&gt;

      图片示例:http://www.trirand.net/documentation/php/images/pdo_mysql.PNG

      确保在php.ini 上加载了 PDO 驱动程序,检查 PDO 行 extension=php_pdo_mysql_libmysql.dll 如果没有关于 PDO 扩展,驱动程序 PDO 将不会加载。

      检查 PDO 连接:

      <?php
      try {
          $dbh = new PDO('mysql:host=localhost;dbname=myproj', 'root', '');
          foreach($dbh->query('SELECT * from users') as $row) {
              print_r($row);
          }
          $dbh = null;
      } catch (PDOException $e) {
          print "Error!: " . $e->getMessage() . "<br/>";
          die();
      }
      ?>
      

      在新文件上创建并检查您的 PDO 与数据库是否真的有效。

      【讨论】:

      • 是的,我检查了这个。并启用 PDO。并且该扩展程序也已启用。
      • 你写 app\config\databast.php 而不是 app\config\database.php。 database.php 中的文件名是否正确?
      • 抱歉,这里只是输入错误。在代码中其编写正确。顺便说一句,我认为在迁移过程中任何地方都不需要这条路径。
      • 你可以用这个代码检查&lt;?php print_r(PDO::getAvailableDrivers()); ?&gt;
      • 将主机设置为:'host' =&gt; 'localhost',
      猜你喜欢
      • 2020-08-16
      • 1970-01-01
      • 2018-10-01
      • 2015-03-02
      • 2019-04-25
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多