我最近刚刚更换了我的MacBook。我设置了我正在工作的前一个项目。不幸的是,我遇到了这个错误。
could not find driver (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
708▕ // If an exception occurs when attempting to run a query, we'll format the error
709▕ // message to include the bindings with SQL, which will make this exception a
710▕ // lot more helpful to the developer instead of just the database's errors.
711▕ catch (Exception $e) {
➜ 712▕ throw new QueryException(
713▕ $query, $this->prepareBindings($bindings), $e
714▕ );
715▕ }
716▕ }
我使用的是laravel/sail,因此所有服务都在docker-compose.yml
上定义。
通过命令$ sail up -d
,所有服务均正常运行,没有任何错误。
我甚至可以使用TablePlus应用程序连接到MySQL服务。
是否有我可能遗漏的新配置?
我尝试使用tinker
检查DB连接,下面是输出(未发现连接错误)。
>>> DB::connection();
=> Illuminate\Database\MySqlConnection {#525}
>>>
3条答案
按热度按时间tf7tbtn21#
其实很简单,只要在
artisan
前面加上sail
就行了。通过使用sail,您将使用容器,并且DB_HOST设置为未在主机上定义的内部主机
mysql
。此外,所有其他常用命令都有效:
sail artisan migrate
sail php --version
sail composer require some/lib
sail npm run prod
如果没有shell别名设置,则应该使用
./vendor/bin/sail
。eni9jsuy2#
我有同样的问题使用新的Mac(苹果M1最大),这是我如何解决它.
运行迁移时,在.env文件中修改指向www.example.com的变量DB_HOST127.0.0.1,迁移完成后,放回服务名DB_HOST=mariadb。在我的示例中,我使用的是mariadb。
希望这能有所帮助。
uplii1fm3#
在Ubuntu 20.04上,转到终端,然后键入:
记下您正在使用的PHP版本,并根据需要在命令中替换它。
希望对你有用。对我有用。