相关疑难解决方法(0)

SchrödingersMySQL表:存在,但它没有

我遇到了最奇怪的错误.

有时,在创建或更改表时,我会收到"表已存在"错误.但是,DROP TABLE返回'#1051 - unknown table'.所以我得到了一张我无法创作的桌子,不能放弃.

当我尝试删除数据库时,mysqld崩溃了.有时,创建另一个具有不同名称的数据库会有所帮助,有时则不会.

我使用一个包含约50个表的数据库,所有数据都是InnoDB.不同的表发生此问题.

我在Windows,Fedora和Ubuntu,MySQL 5.1和5.5上体验过这一点.使用PDO,PHPMyAdmin或命令行时的行为相同.我使用MySQL Workbench来管理我的架构 - 我看到了一些相关的错误(背景和内容),但是没有一个与我相关.

不,这不是一个观点,它是一张桌子.所有名称都是小写的.

我尝试了所有我可以谷歌 - 冲洗表,将.frm文件从db移动到db,读取mysql日志,没有任何帮助,但重新安装整个该死的东西.

"显示表格"没有显示任何内容,"描述"表说"表格不存在",没有.frm文件,但"创建表格"仍然以错误结束("创建表格如果不存在"也是如此)删除数据库崩溃了mysql

相关但无益的问题:

编辑:

mysql> use askyou;
Database changed

mysql> show tables;
Empty set (0.00 sec)

mysql> create table users_has_friends (id int primary key);
ERROR 1050 (42S01): Table '`askyou`.`users_has_friends`' already exists

mysql> drop table users_has_friends;
ERROR 1051 (42S02): Unknown table 'users_has_friends'
Run Code Online (Sandbox Code Playgroud)

等等,都是一样的:表不存在,但不能创建;

mysql> drop database askyou;
ERROR 2013 (HY000): Lost connection to MySQL server during query
Run Code Online (Sandbox Code Playgroud)

名称发生变化,这不是我遇到问题的唯一表/数据库

mysql

118
推荐指数
4
解决办法
4万
查看次数

CREATE TABLE如果NOT EXISTS失败,表已经存在

我有以下代码:

$db_host = 'localhost';
$db_port = '3306';
$db_username = 'root';
$db_password = 'root';
$db_primaryDatabase = 'dsl_ams';

// Connect to the database, using the predefined database variables in /assets/repository/mysql.php
$dbConnection = new mysqli($db_host, $db_username, $db_password, $db_primaryDatabase);

// If there are errors (if the no# of errors is > 1), print out the error and cancel loading the page via exit();
if (mysqli_connect_errno()) {
    printf("Could not connect to MySQL databse: %s\n", mysqli_connect_error());
    exit();
}

$queryCreateUsersTable = "CREATE TABLE IF NOT EXISTS `USERS` …
Run Code Online (Sandbox Code Playgroud)

php mysql sql mysqli

16
推荐指数
2
解决办法
8万
查看次数

无法改变表,表'xxx /#sql-ib265'已经存在

我在数据库xxx中有一个mysql表y,我尝试在使用之前更改压缩类型


    alter table y row_format=compressed key_block_size=8

过程停止了一半.我在mysql lib目录中删除了临时文件'#sql-ib265.frm和#sql-ib265'并重新启动了服务器.但是现在,当我再次尝试更改表y(使用上面的相同命令)时,我收到错误.


    ERROR 1050 (42S01) at line 1: Table 'xxx/#sql-ib265' already exists

我不能删除表'xxx /#sql-ib265',因为它无法找到.我该怎么办?

编辑方案:

I ended up dropping the old database and recreate the database.

mysql

5
推荐指数
1
解决办法
8376
查看次数

标签 统计

mysql ×3

mysqli ×1

php ×1

sql ×1