Articles of innodb

我怎样才能从MySQL InnoDB表独特地popup没有种族危害问题?

如何通过行locking/存储过程来改进以下代码。 UPDATE `data` SET status=':temp_status' WHERE account_id = :account_id AND dataset_id=':dataset' AND status=':source' LIMIT $limit; SELECT id,phone,firstname,lastname FROM `data` WHERE account_id = :account_id AND status = ':temp_status'; UPDATE `data` SET status=':destination',status_updated=NOW() WHERE account_id = :account_id AND status = ':temp_status'; 我基本上是从我的许多客户端的表中读取数据,然后进一步处理,我需要确保每个客户端只抓取一堆唯一的logging,然后不能由其他任何用户获得。 我使用InnoDB表上的多查询从PHP运行这个; 我可以通过行locking来实现吗?

数据库select错误

数据库select错误,它是我的问题,当我重新启动我的MySQL来解决这个错误,这个问题解决,但30分钟后,或之后再次发生这个错误再次发生。 我把这里的链​​接截图从ssh [腻子]的错误,我该怎么办? 这是什么原因发生的? tail -f /var/log/mysqld.log 120813 17:33:57 InnoDB: Completed initialization of buffer pool 120813 17:33:57 InnoDB: highest supported file format is Barracuda. 120813 17:33:57 InnoDB: Waiting for the background threads to start 120813 17:33:58 InnoDB: 1.1.8 started; log sequence number 63473783633 120813 17:33:58 [ERROR] Column count of mysql.db is wrong. Expected 22, found […]

服务器崩溃后Mysql innoDB损坏

昨天我的服务器因数据中心中断而死亡。 今天它已经恢复,但有一些与MySQL的问题。 首先,我的MySQL服务器无法启动。 出于这个原因,我删除了/ var / lib / mysql文件夹中的文件ib_logfile0和ib_logfile1 ( 我仍旧有失败的文件 )。 在此之后,我的服务器能够再次启动。 但是现在我在mysql日志文件中看到了很多问题。 Sep 1 09:43:55 * mysqld: 120901 9:43:55 InnoDB: Error: page 70944 log sequence number 8 1483471899 Sep 1 09:43:55 * mysqld: InnoDB: is in the future! Current system log sequence number 5 612394935. Sep 1 09:43:55 * mysqld: InnoDB: Your database […]

简单的UPDATE查询(有时)长的查询时间

我运行一个专用的MySQL服务器(2核心,16GB RAM),每秒处理100-200个请求。 在高峰时段stream量越来越低,我很难优化服务器。 所以我现在正在寻找一些想法,我已经做了很多Innodb微调“TUNING PRIMER” 现在生成最慢查询的查询如下(查看mysqldumpslow的结果): Count: 433 Time=3.40s (1470s) Lock=0.00s (0s) Rows=0.0 (0), UPDATE user_sessions SET tid='S' WHERE idsession='S' 对于这样一个没有locking的简单查询有这么多的长查询,我感到非常惊讶。 Fyi,表是InnoDB,有14000行。 它包含网站上的所有活动会话,每秒约有10次UPDATE和SELECT命中。 这是它的结构: CREATE TABLE `user_sessions` ( `personid` mediumint(9) NOT NULL DEFAULT '0', `ip` varchar(18) COLLATE utf8_unicode_ci NOT NULL, `idsession` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `datum` date NOT NULL DEFAULT '0000-00-00', `tid` time NOT […]

导入mysqldump #innodb之后,mysqld服务在重新启动时崩溃

我有2个MySQL服务器。 我们称之为server01&server02 。 两者具有相同的configuration:mysqladmin Ver 8.42 Distrib 5.1.61,适用于x86_64上的redhat-linux-gnu [client] default-character-set=utf8 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 max_allowed_packet = 16M default-character-set=utf8 default-collation=utf8_unicode_ci character-set-server=utf8 collation-server=utf8_unicode_ci default-storage-engine = InnoDB innodb_data_home_dir = /var/lib/mysql innodb_log_group_home_dir = /var/lib/mysql innodb_data_file_path = ibdata1:10M:autoextend innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_lock_wait_timeout = […]

InnoDB从ibdata恢复:“mysql后启动进程终止状态1”

我发现太迟了,我们的MySQL数据库的备份脚本工作不正常。 也就是说,当服务器上的磁盘已经开始出现故障时,我通过SSHlogin,并得到一个损坏的二进制垃圾的屏幕。 从那些不是空的.sql.gz文件的微不足道的备份中恢复,会使我们失去一个月的数据。 我真的很喜欢,如果我能避免这种情况。 我已经能够fsck磁盘,并提取了/var/lib/mysql目录的内容,每个数据库在子目录下有一个100MB的ibdata1 , ib_logfile*文件以及.frm和.opt文件。 我没有/etc/mysql/my.cnf ,那里的一切似乎都丢失了。 没有.ibd文件,可能是因为innodb_file_per_table被closures了。 我在我的开发机器上安装了MySQL 5.5安装(与失败相同的版本),并尝试恢复文件,按照这里的build议, 在这里 。 我把ibdata1和.frm和.opt文件放到/var/lib/mysql mysql:mysql ,在我重新创build表之后,将文件的权限和所有者设置为默认值(一些mysql:mysql ,一些mysql:root )使用mysql客户端的模式。 然后我用命令运行mysqld: /usr/sbin/mysqld –innodb_log_file_size=4128768 –innodb_force_recovery=6 它立即终止,没有输出。 一个dmesg | tail dmesg | tail显示了一大堆: [ 781.937089] init: mysql main process (1819) terminated with status 1 [ 781.937127] init: mysql respawning too fast, stopped /var/log/mysql.log和/var/log/mysql.err都是空的。 我已经在这个恢复过程的主题上尝试了一些变化。 我已经尝试将整个恢复的mysql数据目录复制到/var/lib ,我试图用.frm和.opt文件夹覆盖ibdata1和数据库子目录。 我已经尝试过,没有日志文件,并从1-6增加恢复值。 如果我恢复原来的mysql目录,mysqld启动就好了。 […]

在MySQL中添加外键约束是否会导致表重build?

我需要修改一个大表来添加一个外键。 添加约束是否会导致表重build? 被引用的表已经存在,并且在列上有一个索引。

MySQL 5.5:不能删除数据库:在查询过程中丢失与MySQL服务器的连接

在我的mysql数据库发生巨大的崩溃之后,我做了一个恢复,除了一个模式外,一切正常。 在phpMyAdmin,这个模式doest不包含任何表,但我们要求mysql删除模式(drop database xxxx)我有以下错误: Lost connection to MySQL server during query 在mysql的error.log中,我看到以下内容: InnoDB: Load table 'xxxx/menu' failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again.140120 10:52:35 InnoDB: Assertion failure in thread 139903484229376 in file row0mysql.c line 3822 InnoDB: Failing assertion: table InnoDB: We intentionally generate a memory trap. InnoDB: Submit […]

带有innodb插件的mariadb 5.5.36

我在win32系统上安装了mariadb 5.5.36 。 一切运行正常,除了innodb请求比相同的MySQL安装慢2倍。 所以我想切换回原来的innodb插件来testing它的性能。 在my.ini我把[mysqld]放在下面: ignore_builtin_innodb plugin-load=innodb=ha_innodb.dll 该插件位于BASEDIR/lib/plugin 。 但是当我启动服务时,我在错误日志中得到以下内容: 140315 18:03:04 [Note] Plugin 'FEEDBACK' is disabled. 140315 18:03:04 [ERROR] Plugin 'InnoDB' init function returned error. 140315 18:03:04 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 140315 18:03:04 [ERROR] Unknown/unsupported storage engine: InnoDB 140315 18:03:04 [ERROR] Aborting 如果我注释两条线,那么一切运行良好。 即使当我尝试运行一个普通的mariadb数据目录(没有日志文件…)发生错误。 有人对我有暗示吗?

Innodb表格没有显示

如果我在mysql控制台运行查询show table ,innodb表将被列出。 但是,当我试图select * from tablename查询,它说表不存在。 我怎样才能解决这个问题,使表和它的数据再次工作?