Questions tagged «mysql-5.6»

MySQL 5.6版-请出于搜索目的也用mysql标记。

2
InnoDB:错误:升级到mysql 5.6后找不到表“ mysql”。“ innodb_table_stats”
我从5.5升级到mysql 5.6,现在我的日志在启动时满是此类消息 我在这里找到了可能的解决方案,但它似乎并不正式。 http://forums.mysql.com/read.php?22,578559,579891#msg-579891 2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found. 2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found. …

6
如何尽可能快地更新MySQL单个表中的1000万行以上?
对大多数表使用MySQL 5.6和InnoDB存储引擎。InnoDB缓冲池大小为15 GB,Innodb DB +索引约为10 GB。服务器具有32GB RAM,并且正在运行Cent OS 7 x64。 我有一张大表,其中包含大约一千万条记录。 我每24小时从远程服务器获取一个更新的转储文件。该文件为csv格式。我无法控制该格式。该文件约为750 MB。我尝试将数据逐行插入MyISAM表中,这花了35分钟。 我只需要从文件中取出10-12行中的每行3个值,然后在数据库中更新它。 实现这样的最佳方法是什么? 我需要每天这样做。 当前Flow是这样的: mysqli_begin_transaction 逐行读取转储文件 逐行更新每个记录。 mysqli_commit 以上操作大约需要30-40分钟才能完成,在执行此操作的同时,还有其他更新正在进行中 超过了锁定等待超时;尝试重新启动事务 更新1 使用加载新表中的数据LOAD DATA LOCAL INFILE。在MyISAM中,花38.93 sec了7分钟5.21秒,而在InnoDB中,花了7分钟。然后我做了: UPDATE table1 t1, table2 t2 SET t1.field1 = t2.field1, t1.field2 = t2.field2, t1.field3 = t2.field3 WHERE t1.field10 = t2.field10 Query OK, …


2
mysql锁定等待超时超出;尝试重新启动事务
我们正在运行java应用程序,运行了很长时间,后端是db,是MySQL,最近更新到mysql 5.6。一切运行良好,过去一周开始出现此错误,超过了锁定等待超时;尝试重启似乎永不停止的事务,不知道如何处理此错误才能停止。为什么它突然发生
26 mysql  mysql-5.6 


2
MySQL-使用count(*)和information_schema.tables进行行计数之间的区别
我想要一种快速的方法来计算表中有几百万行的行数。我在Stack Overflow上找到了“ MySQL:最快的行数计数方法 ”一文,它看起来可以解决我的问题。Bayuah提供了以下答案: SELECT table_rows "Rows Count" FROM information_schema.tables WHERE table_name="Table_Name" AND table_schema="Database_Name"; 我喜欢它,因为它看起来像查找而不是扫描,因此它应该很快,但是我决定对它进行测试 SELECT COUNT(*) FROM table 看看有多少性能差异。 不幸的是,我得到了如下所示的不同答案: 题 为什么答案相差约200万行?我猜执行全表扫描的查询是更准确的数字,但是有没有一种方法可以不必运行此慢查询就可以获取正确的数字? 我跑了ANALYZE TABLE data_302,完成了0.05秒。当我再次运行查询时,我现在得到了34384599行的更接近的结果,但是它仍然select count(*)与34906061行的数字不同。分析表是否立即返回并在后台处理?我觉得值得一提的是,这是一个测试数据库,目前尚未写入。 没有人会在乎是否只是告诉某人一个表有多大的情况,但是我想将行数传递给一些代码,该代码将使用该数字来创建一个“大小相等”的异步查询来查询数据库并行地,类似于Alexander Rubin通过并行查询执行来提高慢查询性能中所示的方法。照原样,我将获得最高的ID,SELECT id from table_name order by id DESC limit 1并希望我的表不要过于分散。
16 mysql  mysql-5.6  count 


1
无法看到MySQL提交的数据来选择查询
上下文:使用的框架是Spring,所有查询都使用JdbcTemplate运行。Mysql Server版本是5.6.19。和table是InnoDB table,默认设置为,并且设置了auto commit隔离级别可重复读取。 问题:Insert在事务内部发生的事情和select读取相同插入数据的事务看不到该数据。在select运行后,在insert之后的insert交易都有commited。 我已经启用bin日志以及mysql中的常规日志。以下相关日志 二进制日志: SET TIMESTAMP=1438265764/*!*/; BEGIN /*!*/; # at 249935389 #150730 14:16:04 server id 1 end_log_pos 249935606 CRC32 0xa6aca292 Query thread_id=40 exec_time=0 error_code=0 SET TIMESTAMP=1438265764/*!*/; insert into user_geo_loc_latest(user_id, lat, lng) values(x,y,z) on duplicate key update lat=y, lng=z /*!*/; # at 249935606 #150730 14:16:06 server id 1 …

3
MySQL实例拖延“做SYNC索引”
问题 运行(主要是)一个带有InnoDB表的数据库的MySQL 5.6.20实例在1-4分钟的时间内偶尔出现所有更新操作的停顿,而所有INSERT,UPDATE和DELETE查询都保持“查询结束”状态。这显然是最不幸的。MySQL慢查询日志甚至记录了具有疯狂查询时间的最琐碎的查询,其中数百个具有相同的时间戳,对应于已解决停顿的时间点: # Query_time: 101.743589 Lock_time: 0.000437 Rows_sent: 0 Rows_examined: 0 SET timestamp=1409573952; INSERT INTO sessions (redirect_login2, data, hostname, fk_users_primary, fk_users, id_sessions, timestamp) VALUES (NULL, NULL, '192.168.10.151', NULL, 'anonymous', '64ef367018099de4d4183ffa3bc0848a', '1409573850'); 设备统计信息显示出增加了,尽管在此时间段内I / O负载没有过多(在这种情况下,根据上述语句的时间戳,更新停顿了14:17:30-14:19:12): # sar -d [...] 02:15:01 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util …

3
如何强制MySQL忽略所有索引?
我已经阅读了有关FORCE索引的文章,但是如何强制MySQL进行IGNORE ALL索引呢? 我尝试过SELECT * FROM tbl IGNORE INDEX(*),但是没有成功。 至于为什么我(和其他人)需要这样做:例如,我需要像这样通过tld总结引荐来源统计信息: SELECT count(*) as c, SUBSTRING ( domain_name, LENGTH(domain_name) - LOCATE('.', REVERSE(domain_name)) + 2 ) as tld FROM `domains_import` IGNORE INDEX(domain_name) GROUP BY tld ORDER BY c desc LIMIT 100 ...但是我始终必须查看定义了哪些索引,或者确定将通过Explain使用哪些索引。简单地编写IGNORE INDEX ALL而不关心就非常方便。 有人知道语法或技巧吗?(数十行通过MySQL定义表的行实际上不是捷径)。 从聊天讨论中添加: 贝克马克: 无索引= 148.5秒 索引= 180秒,并且仍在与发送数据一起运行SSD阵列是如此强大,以至于您几乎不需要关心数据缓存... 基准的定义: CREATE …
12 mysql  index  mysql-5.6 

8
如何使MySQL客户端从mylogin.cnf读取密码?
我正在尝试使mysql客户端连接到mysql服务器,而不要求以交互方式提供密码。采取的步骤: 1)首先创建一个mylogin.cnf文件 $ mysql_config_editor set --user=<user> --password --host=<host> Enter password: 2)文件创建成功: $ ls -la .mylogin.cnf -rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf $ mysql_config_editor print --all [client] user = <user> password = ***** host = <host> 3)使用mysql客户端连接 $ mysql <dbname> ERROR 1045 (28000): Access denied for user '<user>'@'<host>' …

2
将整数强制转换为上限(十进制)的问题
我有这种情况,看起来MySQL正在采用最大的十进制值,并尝试将其他值转换为该值。 问题是此查询是由外部库生成的,因此至少在此级别上我无法控制此代码。您知道如何解决此问题吗? SELECT 20 AS x UNION SELECT null UNION SELECT 2.2; +------+ | x | +------+ | 9.9 | -- why from 20 to 9.9 | NULL | | 2.2 | +------+ 预期结果 +------+ | x | +------+ | 20 | -- or 20.0, doesn't matter really in my …

2
MySQL安装问题
首先,请原谅,这个职位很长,需要一些背景,第二;我很难从噪声中分辨出信号,如果其中一些与噪声无关,请忍受: 几周前,我自愿选择升级到Windows10。这样做之后,我最终决定删除不再需要的Python安装。删除最新的2.7(并仅保留3.4.3)后,一切似乎都可以正常工作,直到我的计算机意外崩溃。从那时起,Windows 10就再也不一样了,极其不可靠。 在启动时,我不得不再次降级到Windows 7。我收到了两条错误消息:一条说找不到python dll,另一条说: 在动态链接库RPCRT4.dll中找不到过程入口点RpcImpersonateClientContainer 我认为第二个错误至关重要。粗略的搜索指向this,它表示这是Windows 10唯一的进程。 我设法多次重新安装和卸载python 2.7和3.4.3,并且不再出现python dll错误(因此,我目前拥有3.4.3作为计算机中唯一的Python版本)。 但是,第二个错误仍然存​​在。我尝试卸载计算机中的所有MySQL服务,除以下两个以外,我大部分都成功了: MySQL Connector 6.9.5和MySQL for Excel 1.3.3,无论我做什么,都无法卸载。我在此答案中尝试了解决方案,但收到以下错误: OpenService失败1060: 指定的服务不存在为已安装的服务。 现在,我正尝试通过Microsoft安装程序(扩展名为msi)重新安装MySQL社区版本5.6.26.0。我单击它,然后显示在显示“收集相关信息...”之类的窗口中,然后它消失了。 注意:当我尝试通过网络社区进行安装时。我设法进入以下屏幕(您是否希望该程序进行更改...?),然后它再次消失。 在Windows进程中都找不到这两者。 但是,在运行Web社区几次后,MySQL Installer -Community在我的列表中显示为已安装程序以进行更改/卸载。如果我尝试更改它,什么也不会发生,但是如果我尝试将其卸载: 在动态链接库RPCRT4.dll中找不到过程入口点RpcImpersonateClientContainer 同样,第二个错误(但设法将其卸载)。 另一个谷歌搜索后来,这个法语线程弹出。我的法语充其量不过是草率的,但唯一的回答似乎表明DLL损坏了,也许是全新安装了? 也许是不相关的注释:我的计算机在每次启动时都要求我进行更新。几分钟后,熟悉的徽标将弹出“关闭”选项。每次我选择安装更新时,它显然都安装了,并在启动时配置了更多内容。但是每次,它再次发生。 我进行了更彻底的检查,并一遍又一遍地安装了KB3083186,因此我修复了.NET 4.6,禁用了自动更新,现在看来还不错。 我的机器的相关详细信息如下: 操作系统:Windows 7家庭高级版,Service Pack 1。 系统: HP Pavilion dm4笔记本电脑 处理器: 英特尔酷睿i5-3210 CPU 2.50GHz 内存: 6 GB 我的理想结果是避免重新安装(对于我来说似乎是一个核选项),删除所有MySQL服务,正确安装它们以及能够使用Workbench(以及其他与MySQL相关的产品)。 …


3
从.ibd,.frm和mysqllogbin文件还原MySQL表
由于某种原因,当我尝试打开存储在其中的表.frm和.ibd文件(无论是在MySQL还是phpmyadmin上)时,它给了我一个语法错误,或者说它不存在。 我读过另一篇与此有类似问题的文章,但是我不知道如何检查是否innodb_file_per_table已启用,并且总体上我真的很困惑。我还将mysql-bin.000002文件的副本转换为txt文件,因此我发现数据库中的数据并未完全丢失。 该数据库是去年创建的。我有6个mysql-bin.00000文件,但由于某种原因,.000002它是最大的。现在,我拥有所有数据库的.ibd和.frm文件,但是对于如何将其还原回MySQL或至少还原为我可以读取的内容,我感到困惑。 我在Windows 2003 Server上使用WampServer 2.4和MySQL 5.6.12。另外,我应该在InnoDB中下载插件吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.