问题标签 [mysql-5.5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
innodb - 相同的查询给出不同的“解释”输出
我有两个从属 mysql db(5.5.27)(两者都在具有相同操作系统的不同机器上运行)。
共有三个表(CATEGORY_TREE、SEO_METADATA、TAGS)。
架构定义如下:
在为 Select db 查询运行“EXPLAIN”时,我得到不同的输出
在一个中它首先使用“索引”,但在另一个中它不是。
我已经完成了“为什么相同的查询会产生 2 个不同的 MySQL 解释结果? ”,并检查了 @spencer7593 提到的所有参数。
除此之外,我在 Machine 2 DB 中运行了“优化”表命令,但输出没有变化。
我知道 mysql 可以“强制”使用索引,但想知道其根本原因。
很少有帖子提到 Innodb 缓冲区大小也可能是不同输出的原因之一。就我而言,两者几乎相同。下面是来自两个数据库的“SHOW ENGINE INNODB STATUS”的输出。
谢谢
php - mysql 正在运行但无法连接到 127.0.0.1
我已经使用 macports 安装了 mysql55-server。
我可以通过以下方式成功启动服务器:
并确认我正在运行正确的 mysql:
如果我运行$mysql
,我可以成功连接。如果我然后运行:
它显示了两个数据库。
使用 Sequel Pro,我可以通过套接字连接:
连接和加载数据库就好了。
问题是通过 127.0.0.1 或 localhost 连接。
如果我尝试通过 Sequel Pro 中的标准连接进行连接,我会得到:
所以似乎mysql服务器没有被识别为127.0.0.1。在我的主机文件中,我将本地主机列为 127.0.0.1
另外,如果我尝试运行:
我得到:
错误 2003 (HY000): 无法连接到“127.0.0.1”上的 MySQL 服务器 (61)
我在 Mavericks 上有相同的设置,效果很好。我已在另一台计算机上更新到 Yosemite,并且遇到了这些问题。我试图交叉检查机器之间的所有设置。这一切似乎都匹配。为什么即使服务器正在运行,localhost 127.0.0.1 也无法连接?
更新
根据@Marc B and neverpanic,我更改了 my.cnf (/opt/local/etc/mysql55/my.cnf)。我删除了包含以从顶部的原始配置文件中提取数据并注释掉跳过网络:
重新启动mysql,它工作。
mysql - 主从复制设置中减小ibdata文件大小的注意事项
我的 ibdata 文件大小在 mysql5.5 版本服务器中增加,并且已经设置了主从复制。服务器包含 6 个数据库。与普通服务器相比,在减少主从复制设置中的 ibdata 文件大小的过程中要采取哪些预防措施。我正在使用 Mysql 5.5 版本。
hibernate - 当我指定它应该使用 myISAM 方言部署时,WAR 文件部署了一个 innodb 数据库
我制作了一个 Java EE 应用程序,并指定数据库应该是 myISAM 存储引擎:
当我使用此配置运行我的应用程序时,不会在数据库中创建任何表。但是当我使用以下代码时:
..应用程序创建表,但它们在 innoDB 存储中。但我希望它在 myISAM 中,因为如果我保留当前配置,当我想与数据库进行事务时会生成此错误。
我正在使用 Hibernate 4.2.1 和 MySQL v 5.5.34
我在这个链接上使用了解决方案,
但它没有帮助,因为当我想使用它时,我收到一个错误,告诉我mypackage.MySQL5MyISAMDialect
找不到该类。
mysql - 一对多连接,两个表的总和
我有两个表 order 和 ordersdetail 有数百万行..
表:
订单- id(主键)、金额、日期(索引)
orderdeails - id(主键),skunitid,数量,order_id(索引)
一个订单有多个订单详情...
询问:
我知道它的错误查询,我想要单个查询(单次迭代)中的数量和数量之和的数据总和,但是当我使用连接订单的表数量时会出现很多次。我在订单表的日期列上有索引,所以我必须从订单表开始查询(表中的百万行。)
我必须需要有效的方法..
mysql - 升级到 MariaDB 5.5 后,连接在一段时间不活动后被丢弃
我们已将数据库服务器从 MySQL 5.1 升级到 MariaDB 5.5 (5.5.40-MariaDB-1~wheezy-log)。
此次升级后,一些长时间运行的进程 mysql 连接 si 被丢弃。这些流程的常见场景是:
- 连接到 MySQL
- 运行一些查询
- 在至少一分钟内不连接 MySQL 的情况下做一些繁重的工作
- 尝试查询原始连接
- 出现 2600 错误的异常 - MySQL 服务器已消失
这确实发生在 PHP CLI 脚本 (php 5.3) 中,但也发生在 Ruby 应用程序 (Redmine 2.5.1) 中。MySQL 5.1 没有发生这种情况,应用程序端没有任何变化,因此它不应该与应用程序相关。
MariaDB 中的 %timeout% 变量是:
我们没有使用线程池:
当事情发生时,系统日志中还会记录一个事件,每次看起来都一样:
除此之外,还有奇怪的根帐户断开消息:
在这些设置中是否有任何应该更改以修复奇怪的服务器已消失的错误?
mysql - 如何查询计数中的计数(不使用子查询)?
如果你研究一下这张表,你会发现戴夫是独一无二的,因为他赢了multiple awards in a single year
,他做到了for multiple years
。
有没有一种方法可以在不使用子查询的情况下查询 Dave(1 年以上多次获奖)?
例如,您可以说GROUP BY person HAVING COUNT(DISTINCT year) > 1 AND COUNT(*) > 3
,但这也会产生 Susan。
mysql - 我应该如何索引我的表以获得最快的 SELECT 回报?
如果我有一个包含 4 列的表a,b,c,d
,将用于搜索行。
我的查询将如下所示:
在我的数据库中,a
并且b
将创建我想要在其中搜索的项目的子集,c
并且d
是我想要查找的子集中的项目。
设置索引的最佳方法是什么?是否应该将 a 和 b 设置为复合索引,然后 c 和 d 有自己的?任何建议和推理都会有所帮助。
附加信息:目前大约有 2000 万行,表格有 30 列宽。
mysql - MySQL 5.5:“读取通信数据包时出错”
我刚刚将 MySQL 从5.1升级到5.5。
我修复了一些运行问题mysql_upgrade
,并更改了一些不推荐使用的配置......
我还更新了 PHP,从5.3.3-7
到5.3.29-1
.
但是,从那以后,我遇到了一个经常出现的问题(总是按这个顺序抛出):
1. 客户端* - PHP 警告
警告:数据包乱序。预期 1 收到0。/home/www/www.mywebsite.com/shared/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php 行 694 中的数据包大小 = 1
2. 客户端* - PHP 警告
警告:PDOStatement::execute() [pdostatement.execute]:在 /home/www/www.mywebsite.com/shared/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php 行 694 中读取结果集的标头时出错
3. 服务器* - MySQL 警告:
150127 17:25:15 [警告] 中止连接 309 到 db:“my_database”用户:“root”主机:“127.0.0.1”(读取通信数据包时出错)
4. 客户端* - PHP 错误
PDOStatement::execute() [pdostatement.execute]: MySQL 服务器已在 /home/www/www.mywebsite.com/shared/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php 第 694 行消失
*注意:我所说的“客户端”是 PHP 应用程序,而“服务器”是 MySQL 服务器,即使它们都在同一个本地主机服务器上。
所以,显然,所有这些问题的根源是第一个:“数据包乱序”。
但是当我搜索这个错误时,我找不到很多答案,而且它们大多数时候与我的问题无关:我使用 Doctrine 作为抽象,所以我自己不编写任何查询或获取任何结果。另外,它的值几乎与我不同,但在我的情况下,我总是得到这些值(“预期 1 收到 0。数据包大小 = 1 ”)。
最接近的结果是这个 MySQL 错误报告,但是“一个多月没有为这个错误提供任何反馈,所以它正在自动暂停”......
另外,我的 PHP Doctrine 代码不会引发一些“ 2. ”错误(它们不是从我的本地主机执行,而是从另一个已知的外部服务执行,可能使用一些旧的 PHP Propel 代码)。
所以这可能意味着我的 MySQL 配置本身存在问题,但是我尝试更改一些参数而没有获得任何明显的效果(例如,有时在重新启动 MySQL 后需要更多时间才能获得第一个错误)。
任何帮助将不胜感激!
这是我当前的配置 (我有 2 个 MySQL 实例,第二个使用复制的实例主要用于只读)。我还用 Munin 检查了大部分系统资源,没有发现任何异常(例如 RAM 使用率很高,但由于服务器上有 50Go,它根本没有满)。
更新
我从我的 PHP 客户端中隔离了一个反复失败的 SQL 查询。当我使用 MySQL Workbench 从本地执行时,它的效果完全相同(用一条MySQL server has gone away
消息关闭了连接)。当我sql
从命令行执行此操作时,它也执行相同操作。然后我从sql
服务器主机上的命令行执行它,它成功了。但是一段时间后,当我从 Workbench 再次尝试/无论它工作时......所以看起来那些“损坏的数据包”被缓存并在一段时间后消失。