我开始了一个新的博客项目来尝试Laravel。我按照https://laracasts.com/series/laravel-from-scratch-2017/episodes/1?autoplay=true的教程。我改变了.env文件
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
到
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=
然后输入
php artisan migrate
并收到错误
Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)
at /home/morilon/php_proj/blog/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 this exception a
662| // lot more helpful to the developer instead of just the database'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")
/home/morilon/php_proj/blog/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=blog", "root", "", [])
/home/morilon/php_proj/blog/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
Please use the argument -v to see more details.
这是什么意思could not find driver (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations) ?
安装PHP后,我用这些命令重新安装了MySQL:
pkg --get-selections | grep mysql
sudo apt-get remove --purge [everything that came up]
sudo apt-get autoremove && sudo apt-get autoclean
sudo apt-get install mysql-server
- 更新 -
之后
sudo apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml
错误更改
Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)
答案 0 :(得分:2)
您还需要安装PHP-MySQL驱动程序:
sudo apt install php-mysql
答案 1 :(得分:0)
最后一个错误是因为我没有在文件config/database.php and .env.
答案 2 :(得分:0)
我在SQLite数据库中遇到了同样的问题。
我必须安装php-sqlite3才能工作。
sudo apt-get install php-sqlite3
然后执行您的迁移命令
php artisan migrate
希望这对使用sqlite的人有所帮助。