问题标签 [mysql-5.6]
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.
mysql - 如何设置与 mySQL 服务器的 SSH 连接?
我正在拼命地尝试建立一个 SSH 隧道,以便我可以连接到一个 mySQL 数据库。情况如下:我有一个 mySQL 5.6 服务器实例在公司网络中的主机 PC 上运行,端口 3306 被防火墙阻止。我的网络管理员不会回复我关于该问题的任何电子邮件或解除对端口的阻塞,因此我无法做到这一点。
我想从另一个网络上的远程 PC 连接到这台主机 PC 的 mySQL 实例。我一直在努力遵循使用 putty 创建 ssh 隧道的指南,但我失败得很惨,有没有人可以解释一下这个过程?(详细地)
编辑:(添加了其他信息)
好的,好点。所以到目前为止发生的事情是:我将数据库转移到带有所有表的服务器上。我从客户端 PC 连接到数据库并输入了字符串
并得到
...这导致我进一步调查并发现端口 3306(我认为)被阻止。我运行 netstat -a 并看到端口 3306 上正在侦听某些东西,但它显然无法正常工作,因此我使用 putty 尝试了 ssh(遵循本指南:
这也不起作用并给出了拒绝访问错误
编辑#2:
我去检查了root的权限(来自主机PC):
mysql - MySQL 5.6.19 TIMESTAMP 不能接受很多正确的值
我遇到了一个非常奇怪的问题,不明白这一点。
这很好。现在,只需将时间更改 1 小时:
这里发生了什么?我随机插入日期时间值,发现许多值无法插入:“2011-03-13 02:08:04”、“2010-03-14 02:04:05”、“2009-03-08 02” :24:52”、“2009-03-08 02:48:27”、“2011-03-13 02:06:01”、“2005-04-03 02:00:44”...
将小时改为 1 或将年份改为 1 可以解决问题,但当然不是真正的解决方案。
mysql - mysql存储过程多次调用
我使用 node.js 和 mysql (AMAZON RDS) 作为数据库创建了一个应用程序。最近我对mysql有一个奇怪的问题。我的一些存储过程调用了多次(2-10)次,但我已经发送了相同的单个 ajax 请求。我在节点上没有看到任何错误。大多数情况下,这会在我的应用程序处于选择时间时发生。这个存储过程中没有循环/光标,我正在使用池进行 mysql 连接。我如何追踪,它是如何发生的?有什么猜测吗?
mysql - 如何每天同时进行mysql查询?
如何查询一个月内的每日和指定时间?
例如,我们有一个名为“ timestamp ”的列和一个名为“ xyz ”的表,我们在表单上选择日期“2014-06-21 16:05”
查询应该在“2014-05-22 16:05”到“2014-06-21 16:05”之前的一个月内使用相同的时间,即“16:05”
mysql - MySQL 5.6 - 用单引号查询 varchar
请查看下面的屏幕截图以查看问题。
mysql - 5.6.17如何配置my.cnf?
在生产服务器(linux机器mysql 5.6.17)上,我试图找到my.cnf来更改系统变量,但my.cnf不在/etc/my.cnf位置。它在 usr/ 目录中。此外,该文件仅包含以下评论 -
请告诉我应该在哪里复制 my.cnf 以及如何更改变量,例如 -
mysql - 在mysql中编写存储过程的正确方法
我在 mysql 数据库中编写了一个存储过程,如下所示:
根据我的需要,我可以这样称呼它
性能好吗?或者我应该为每种模式编写单独的存储过程,例如
对于选择
更新
mysql - 数据库版本变更后,索引不会自动使用
我们最近将 Magento 应用程序从私有主机迁移到 AWS Web 服务。我们注意到 Magento 的一些内部功能在迁移后执行的时间过长,因此开始调查。
有问题的查询之一是一个简单的客户选择查询,大约有 9-10 个常规连接到属性表以获取属性。
我们对查询进行了一些测试,发现旧主机和 AWS 之间的区别在于,在旧主机上,MySQL 优化器似乎使用了正确的索引,而在 AWS 中它求助于使用文件排序,而忽略了索引。
UsingFORCE INDEX(index_name)
使查询在 AWS 中正确执行,但是我们不想走这条路,宁愿修复数据库配置中的问题,也不愿在整个 Magento 应用程序中进行手动破解。需要明确的是,这不是我们的索引的问题,它们设置正确。
背景:
- 我已将旧主机的 my.cnf 文件中的所有 MySQL 参数复制到 RDS 中的参数组,但没有任何区别
- 这些表都是 InnoDB
- 我已经运行了分析、修复和优化查询等
- 在 RDS 上完成查询大约需要 45 秒
- 查询在旧主机上完成大约需要 2 秒,或者当我使用
FORCE INDEX()
强制 RDS 以与旧主机相同的方式运行时
旧的 MySQL 服务器运行的是5.1.61版本,而我们运行的 AWS RDS 实例是5.6.19。一个咨询小组向我们建议我们将 RDS 实例降级到 5.1.61,但是我们再次不想这样做,因为它不是一个可持续的解决方案。
有问题的查询如下(为了空间,通过从选择中删除字段来缩短):
EXPLAIN
执行此查询时服务器之间的差异摘要如下:
RDS - MySQL v5.6.19:
旧主机 - MySQL v5.1.61,或FORCE INDEX
在 RDS 上使用时:
我知道这些数据库版本的差异很可能改变了查询优化器的工作方式,我不知道这些版本的差异是什么,但我正在寻找一种可以帮助的解决方案我们来解决这些差异。
编辑:这是我从旧主机复制的参数与此 MySQL 版本的默认参数的 RDS 比较列表。这些参数都没有影响上面的结果,无论它们是否存在,或者我是否在 RDS 中使用了标准参数:
mysql - MySql - 使用自动增量重新排序/重新排列主键字段
我在mysql中有几个表如下:
“UserMst”表具有“UserID”作为主键,具有自动增量和与“UserDet”的forginekey关系,具有更新casecade。
UserMst 表有大约 200000+ 条记录,而 UserDet 有 20000000 条记录。所以现在我想根据“CreatedOn”字段重新排序“UserMst”表。如何在不删除两个表之间的关系的情况下做到这一点,知道吗?
谢谢
mysql - mysql - mobileno 的数据类型。十进制与 varchar
我已经在 mysql 表中存储了带有国家代码的电话/手机号码。为此,我对这两个字段都使用了十进制数据类型(例如,对于拨号代码十进制(5,0),mobileno 十进制(20,0))。我的手机号码和拨号代码或国家代码必须是数字。现在我将使用 varchar(5) 来更改拨号代码,使用 varchar(20) 来更改 mobileno。
性能好吗?谁能告诉我mobileno(任何国家)的最大长度应该是多少?对于上述情况,如果有任何其他数据类型(如 flote 或 integer)更可取?如果是,那为什么?
谢谢。