当前位置 主页 > 网站技术 > 代码类 >

    laravel执行php artisan migrate报错的解决方法

    栏目:代码类 时间:2019-10-19 12:04

    报错一

    $ php artisan migrate
     
     Illuminate\Database\QueryException : could not find driver (SQL: select * fr
    om information_schema.tables where table_schema = dev_oms and table_name = migra
    tions)
     
     at D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection.
    php:664
     660|   // If an exception occurs when attempting to run a query, we'll
     format the error
     661|   // message to include the bindings with SQL, which will make th
    is exception a
     662|   // lot more helpful to the developer instead of just the databa
    se's errors.
     663|   catch (Exception $e) {
     > 664|    throw new QueryException(
     665|     $query, $this->prepareBindings($bindings), $e
     666|    );
     667|   }
     668|
     
     Exception trace:
     
     1 PDOException::("could not find driver")
      D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connectors
    \Connector.php:68
     
     2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=dev_oms", "root",
    "root", [])
      D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connectors
    \Connector.php:68
     
     Please use the argument -v to see more details.

    原因是php.ini 扩展"php_pdo_mysql.dll"没开启

    报错二

    $ php artisan migrate
    Migration table created successfully.
     
     Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access
     violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: a
    lter table `users` add unique `users_email_unique`(`email`))
     
     at D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection.
    php:664
     660|   // If an exception occurs when attempting to run a query, we'll
     format the error
     661|   // message to include the bindings with SQL, which will make th
    is exception a
     662|   // lot more helpful to the developer instead of just the databa
    se's errors.
     663|   catch (Exception $e) {
     > 664|    throw new QueryException(
     665|     $query, $this->prepareBindings($bindings), $e
     666|    );
     667|   }
     668|
     Exception trace:
     1 PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Sp
    ecified key was too long; max key length is 767 bytes")
      D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection
    .php:458
     2 PDOStatement::execute()
      D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection
    .php:458
     Please use the argument -v to see more details.

    数据库编码改为utf8mb4

    报错三

    $ php artisan migrate
    Migration table created successfully.
     
     Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access
     violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: a
    lter table `users` add unique `users_email_unique`(`email`))
     
     at D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection.
    php:664
     660|   // If an exception occurs when attempting to run a query, we'll
     format the error
     661|   // message to include the bindings with SQL, which will make th
    is exception a
     662|   // lot more helpful to the developer instead of just the databa
    se's errors.
     663|   catch (Exception $e) {
     > 664|    throw new QueryException(
     665|     $query, $this->prepareBindings($bindings), $e
     666|    );
     667|   }
     668|
     Exception trace:
     1 PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Sp
    ecified key was too long; max key length is 767 bytes")
      D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection
    .php:458
     2 PDOStatement::execute()
      D:\WWW\dev_oms\vendor\laravel\framework\src\Illuminate\Database\Connection
    .php:458
     Please use the argument -v to see more details.