gpt4 book ai didi

php - 在服务器上,我的应用程序正在寻找大写的表名而不是小写的

转载 作者:IT老高 更新时间:2023-10-29 00:14:55 28 4
gpt4 key购买 nike

我在本地 xampp 上有这张表,表名是 tags ,这在我的本地系统上运行良好,但是当我将此表上传到我的服务器时,我收到以下错误:

enter image description here

我在 peckinga_blog 表下的表如下:

enter image description here

如您所见,tags 就是其中之一,对于 tags 表,我的 laravel 应用程序中有以下迁移:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTagsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('Tags', function (Blueprint $table) {
$table->increments('id');
$table->mediumText('tag');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('Tags');
}
}

尽管我的数据库显然可用,但为什么我会收到此错误?我该怎么做才能让我的服务器查找数据库 tags 而不是 Tags

最佳答案

数据库和表名在 Windows 中不区分大小写,而在大多数 Unix 或 Linux 中则区分大小写。 MySQL 中的表名是文件系统条目,因此如果底层文件系统是大小写不敏感的。

虽然在应用迁移之后,它应该可以工作但是如果它不起作用并且您希望这两个语句(即表中的小写和大写名称)成功,您需要放置以下行

lower_case_table_names = 1

在你的/etc/my.cnf 或任何你保存 MySQL 配置的地方。

Doctrine 生成大写/CamelCase 表名,MySQL 将它们存储为小写!

或者

  1. 在从本地导出数据库之前,您可以执行以下步骤:

  2. 打开你的 MySQL 配置文件:[drive]\xampp\mysql\bin\my.ini

  3. 查找:# MySQL 服务器 [mysqld]

  4. 在其正下方添加:lower_case_table_names = 2

  5. 保存文件并重启MySQL服务

请务必将系统变量添加到配置文件的[mysqld]部分。

有关更多信息,您可以查看 MySQL Reference Link .

关于php - 在服务器上,我的应用程序正在寻找大写的表名而不是小写的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41967746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com