php Laravel帆船:找不到驱动程序(SQL:在table_type = '基本表格'的情况下显示完整表格)--- Mac

xiozqbni  于 2023-01-12  发布在  PHP
关注(0)|答案(3)|浏览(69)

我最近刚刚更换了我的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}
>>>
tf7tbtn2

tf7tbtn21#

其实很简单,只要在artisan前面加上sail就行了。
通过使用sail,您将使用容器,并且DB_HOST设置为未在主机上定义的内部主机mysql

sail artisan migrate

## instead of: php artisan migrate

此外,所有其他常用命令都有效:

  • sail artisan migrate
  • sail php --version
  • sail composer require some/lib
  • sail npm run prod

如果没有shell别名设置,则应该使用./vendor/bin/sail

eni9jsuy

eni9jsuy2#

我有同样的问题使用新的Mac(苹果M1最大),这是我如何解决它.

// docker-compose.yml file

I commented out this line and it worked.

services:
  mariadb:
    # MYSQL_ROOT_HOST: "%"

运行迁移时,在.env文件中修改指向www.example.com的变量DB_HOST127.0.0.1,迁移完成后,放回服务名DB_HOST=mariadb。在我的示例中,我使用的是mariadb。
希望这能有所帮助。

uplii1fm

uplii1fm3#

在Ubuntu 20.04上,转到终端,然后键入:

sudo apt update

sudo apt install php8.1-mysql

记下您正在使用的PHP版本,并根据需要在命令中替换它。
希望对你有用。对我有用。

相关问题