标签: innodb

MYSQL 未启动(InnoDB:插件初始化因错误通用错误而中止)

我重新启动了服务器,因为它冻结了(可能是迄今为止我做过的最愚蠢的事情),然后出现了一些内部服务器错误。我很快发现mysql启动失败(service mysql status)。我阅读了 mysql 错误日志(Pastebin)并开始谷歌搜索。

我正在运行 Ubuntu 的最新版本,mysql Ver 14.14 Distrib 5.7.31,适用于 Linux (x86_64),使用 EditLine 包装器。我尝试过的:

  • 删除 /var/lib/mysql 中的 ib_logfile(备份后)
  • apt-get update (我真的不知道为什么) - 检查 my.cf 是否有错误

这是我的 /var/log/mysql/error.log

2020-08-07T15:43:06.094116Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-08-07T15:43:06.095903Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.31-0ubuntu0.18.04.1) starting as process 952 ...
2020-08-07T15:43:06.100450Z 0 [Note] InnoDB: PUNCH HOLE support available
2020-08-07T15:43:06.100482Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic …
Run Code Online (Sandbox Code Playgroud)

mysql innodb

3
推荐指数
1
解决办法
2万
查看次数

InnoDB:为文件 XXX.ibd 预分配 147456 字节失败,错误 2

我正在使用官方 MariadDB 10.7 docker 映像,Windows 10。如果今天开始出现此错误并不断重复,请尝试一切:

- mysqlcheck -Ar
- delete docker image with all the data
- chkdsk -F
- dump and restore of table
- change MariaDB version
- different PC configs (nvme -> SSD)
Run Code Online (Sandbox Code Playgroud)

innodb hyper-v mariadb docker wsl-2

3
推荐指数
1
解决办法
2729
查看次数

在MySQL中默认启用INNODB吗?

我正在开发一个我计划使用InnoDB的网络应用程序.但是我读到有时InnoDB默认情况下没有启用,需要更改mysql配置才能启用它......这是真的吗?由于我的网络应用程序将由客户自己安装在他们自己的网站空间,我需要确保我的应用程序尽可能兼容.如果默认情况下禁用InnoDB,那么我必须寻找解决方法.

mysql innodb

2
推荐指数
1
解决办法
1491
查看次数

为什么InnoDB会对COUNT(*)进行全面扫描?

在一个包含5百万行的表中,SELECT count(*) FROM table在MyISAM中会立即显示,但在InnoDB中需要几秒钟.

为什么这样?为什么他们不像MyISAM那样在InnoDB中优化计数?

谢谢.

mysql database performance innodb

2
推荐指数
2
解决办法
917
查看次数

您如何解释以下innotop输出?

我正在尝试使用InnoDB存储引擎优化运行MySQL的应用程序.

innotop在实时环境中运行时,我得到以下输出:

When   Load  QPS     Slow  QCacheHit  KCacheHit  BpsIn   BpsOut 
Now    0.00   87.80     0     41.21%    100.00%  11.51k  836.42k
Total  0.00  105.50   190     15.04%     99.34%  13.23k  692.85k
Run Code Online (Sandbox Code Playgroud)

When,Load,QPSSlow是自解释的.

可是你知道QCacheHit,KCacheHit,BpsInBpsOut?一般来说,那些被认为是"好"的价值观,我应该何时开始担心?

mysql database innodb

2
推荐指数
1
解决办法
4026
查看次数

MySQL InnoDB - 对交易感到困惑

我已经使用MySQL多年,但没有很多使用InnoDB引擎的经验.

我现在正在对它进行一些测试,因为我将要使用它并且根据我已经阅读的内容,如果THAT事务中的任何查询存在任何问题,则不应该允许任何"经历".

我的问题是,为什么,在下面的代码....当第三个查询显然有问题时,它仍然将前两个查询输入数据库吗?

$query = "BEGIN";
mysql_query($query);

$query = "INSERT INTO list_columns(lid,column_name) VALUES(8,'test')";
mysql_query($query);

$query = "INSERT INTO list_columns(lid,column_name) VALUES(8,'test')";
mysql_query($query);

$query = "INSERT INT list_columns(lid,column_name) VALUES(8,'test')";
mysql_query($query);

$query = "COMMIT";
mysql_query($query);
Run Code Online (Sandbox Code Playgroud)

编辑:我理解使用ROLLBACK&all .....但我认为交易的全部目的是如果交易中的任何查询都有任何问题,那么它们中的任何一个都将被执行......或者这只是在一个查询中有多个插入的情况,例如....如果其中一个插入存在问题,那么将不会插入任何插入?

php mysql innodb transactions

2
推荐指数
2
解决办法
3586
查看次数

MySQL:添加约束给出:ERROR 1452(23000):无法添加或更新子行?

我有以下内容:

mysql> show create table rc_profile_table \G;
*************************** 1. row ***************************
Table: rc_profile_table
Create Table: CREATE TABLE `rc_profile_table` (
`id` int(11) NOT NULL auto_increment,
`created_at` datetime default NULL,
`name` varchar(32) NOT NULL,
`surname` varchar(32) NOT NULL,
`password` varchar(128) NOT NULL,
`unique_code` varchar(16) NOT NULL,
`msisdn` varchar(32) NOT NULL,
`current_location` varchar(64) NOT NULL,
`profile_pic` varchar(255) default NULL,
`email` varchar(128) NOT NULL,
`age` int(11) NOT NULL,
`city_of_birth` varchar(64) NOT NULL,
`personality` varchar(128) NOT NULL,
`country_id` int(11) NOT NULL,
`religious_id` int(11) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

mysql innodb

2
推荐指数
1
解决办法
4611
查看次数

MySQL InnoDB事务+锁定

MySQL版本:v5.0.95

基本上,我有一些尝试获取数据的客户端-每个客户端只能获得唯一的行。

START TRANSACTION;

SELECT id where result='new';

UPDATE SET result='old' WHERE id=$id;

COMMIT;
Run Code Online (Sandbox Code Playgroud)

LOCK IN SHARED MODE 在select语句上仍然允许其他客户端读取数据,这似乎是一个问题。

基本上,我需要选择一次数据,更新数据,而不需要其他客户端再次读取数据。

mysql innodb locking transactions

2
推荐指数
1
解决办法
766
查看次数

无法更改MySQL AUTO_INCREMENT

我正在使用软件生成的ID更新表到MySQL auto_increment ID.

ID字段是int(10),数据库类型是InnoDB

将ID更新为顺序后,从1开始,新的最高ID为122.以前,最高ID为62029832

现在我正在尝试更新auto_increment值,以便下一个插入是123.

当前的auto_increment值为62029833.

到目前为止,我尝试过:

ALTER TABLE tableName AUTO_INCREMENT = 123; - - 没运气.没有错误,只是不坚持.

INSERT INTO tableName(ID)VALUES(123); DELETE FROM tableName WHERE ID = 123; ---仍然没有运气

如果有另一种方法,我想避免截断表.

从我读过的内容来看,InnoDB应该允许更改为123,因为最高值当前为122,但它表现得好像有更高的值.

为了测试,我也尝试将auto_increment更改为1000,2000,122等.没有什么可以坚持的.

有任何想法吗?

mysql sql innodb

2
推荐指数
1
解决办法
2990
查看次数

低延迟如何不=高吞吐量?

通过vs延迟图

上图显示了读取和更新操作的延迟,而列显示了吞吐量(操作/秒)我不确定MyISAM如何以如此低的延迟执行操作但在吞吐量方面仍与InnoDB保持同等水平?MongoDB在吞吐量方面也占主导地位,但具有比MyISAM更高的延迟.

这些结果如何有意义?

mysql database myisam innodb mongodb

2
推荐指数
1
解决办法
456
查看次数

标签 统计

innodb ×10

mysql ×9

database ×3

transactions ×2

docker ×1

hyper-v ×1

locking ×1

mariadb ×1

mongodb ×1

myisam ×1

performance ×1

php ×1

sql ×1

wsl-2 ×1