Questions tagged «mysql»

MySQL的所有版本(不是Microsoft SQL Server)。如果与此问题相关,还请添加特定于版本的标记,例如mysql-5.7。

2
MySQL中的ORDER BY FIELD()如何在内部工作
我了解ORDER BY子句的工作方式以及该FIELD()函数的工作方式。我想了解的是两者如何一起工作进行排序。如何检索行以及如何导出排序顺序 +----+---------+ | id | name | +----+---------+ | 1 | stan | | 2 | kyle | | 3 | kenny | | 4 | cartman | +----+---------+ SELECT * FROM mytable WHERE id IN (3,2,1,4) ORDER BY FIELD(id,3,2,1,4) 上面的查询将导致 +----+---------+ | id | name | +----+---------+ | …
37 mysql  order-by  fields 

7
存在(选择1…)vs存在(选择*…)一个或另一个?
每当我需要检查表中是否存在某些行时,我总是总是写如下条件: SELECT a, b, c FROM a_table WHERE EXISTS (SELECT * -- This is what I normally write FROM another_table WHERE another_table.b = a_table.b ) 其他人这样写: SELECT a, b, c FROM a_table WHERE EXISTS (SELECT 1 --- This nice '1' is what I have seen other people use FROM another_table …

3
MySQL 5.1.66 SSL连接错误ERROR 2026(HY000)
更新2 使用WireShark,我发现了问题字符串(希望如此): 28 | 9.582638 | 192.168.18.128 | 192.168.18.129 | MySQL Response Error 1043 和错误是(根据docs): Error: 1043 SQLSTATE: 08S01 (ER_HANDSHAKE_ERROR) Message: Bad handshake 这是WireShark在两种情况下的屏幕截图: 从Windows 8连接(成功): 从CentOS的连接(失败): 为什么会这样? 更新 一个有趣的通知: 我已经通过使用Windows 8 (192.168.18.1)修改了Master在192.168.18.1主机上的ssluser设置,成功地与Master DB进行了连接:从REQUIRE SSL到REQUIRE X509。但是,在从属到主连接的情况下,这不适用于我们的情况。 我在CentOS-6.3中遇到了SSL复制问题。我正在使用OpenSSL创建客户端和服务器证书,并且客户端和服务器证书都由同一CA签名。 Server IP: 192.168.18.128 Slave IP: 192.168.18.129 MySQL version 5.1.66 SSL 我使用MySQL帮助页面的“设置MySQL的SSL证书和密钥”部分收到的所有证书。 服务器的my.cnf文件: [mysqld] …
37 mysql  replication  ssl 

6
错误代码1117列太多。表的MySQL列限制
我有一张包含1699列的表格,当我尝试插入更多列时, 错误代码:1117。列太多 在此表中,我只有1000行。对我来说,最重要的是列数。桌子上有什么限制吗?我想创建2000列。那可能吗?
37 mysql  table 

7
mysqldump是否可以转储重现查询所需的数据库子集?
背景 我想提供重现select查询所需的数据库子集。我的目标是使我的计算工作流具有可重现性(就像在可重现的研究中一样)。 题 有没有一种方法可以将这个select语句合并到一个脚本中,该脚本将查询到的数据转储到新数据库中,以便可以将数据库安装在新的mysql服务器上,并且该语句可以与新数据库一起使用。除了已在查询中使用的记录以外,新数据库不应包含其他记录。 更新: 为澄清起见,我对查询结果的csv转储不感兴趣。我需要做的是转储数据库子集,以便可以将其安装在另一台计算机上,然后查询本身可以重现(并且可以针对同一数据集进行修改)。 例 例如,我的分析可能查询需要从多个(在此示例中为3个)表中进行记录的数据子集: select table1.id, table1.level, table2.name, table2.level from table1 join table2 on table1.id = table2.table1_id join table3 on table3.id = table2.table3_id where table3.name in ('fee', 'fi', 'fo', 'fum');

2
MySql的LAST_INSERT_ID()函数是否保证正确?
当我对具有列INSERT的表进行单行处理时,AUTO_INCREMENT我想使用该LAST_INSERT_ID()函数返回AUTO_INCREMENT为该行存储的新的'ed值。 由于许多Microsoft SQL Server的开发者和管理员毫无疑问都知道在SQL Server(等效功能SCOPE_IDENTITY和@@IDENTITY)一直没有没有问题。 我知道MySQL文档状态: 生成的ID在每个连接的服务器中维护。这意味着函数返回给定客户端的AUTO_INCREMENT值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个值。该值不会受到其他客户端的影响,即使它们生成AUTO_INCREMENT自己的值也是如此。此行为可确保每个客户端都可以检索自己的ID,而不必担心其他客户端的活动,也不需要锁或事务。 (资源) 甚至甚至说: 从多个客户端同时使用LAST_INSERT_ID()和AUTO_INCREMENT列是完全有效的。 (资源) 是否存在任何可能导致LAST_INSERT_ID()无法返回正确值的已知风险或情况? 我在CentOS 5.5 x64和Fedora 16 x64和InnoDB引擎上使用MySQL 5.5。

1
MySQL:为什么mysql.db中有“测试”条目?
最近,我发布了有关mysql.db的问题的答案。 然后,我想到我应该问每个人这个问题: 多年以来,我注意到在安装MySQL 5.0+时,其中mysql.db填充了两个条目,允许匿名用户访问测试数据库。 您可以通过运行以下查询来查看它: mysql> select * from mysql.db where SUBSTR(db,1,4) = 'test'\G *************************** 1. row *************************** Host: % Db: test User: Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: …
36 mysql  security 


10
从.frm和.ibd文件还原表?
我以前已经保存了/ var / lib / mysql / ddms目录的副本(“ ddms”是架构名称)。现在,我通过运行在新安装的Ubuntu 10.04.3 LTS上安装了新的MySQL apt-get install mysql-server,我相信已经安装了5.1版。在/ var / lib / mysql下复制ddms目录后,它的某些表可以正常工作,这些表具有三个文件的关联集:.frm文件,.MYD文件和.MYI文件。 但是,有两个表具有不同的文件集:.frm文件和.ibd文件。这两个表未显示在phpMyAdmin的表列表中。当我查看错误日志时,它说: [ERROR] Cannot find or open table ddms/dictionary_item from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data …
36 mysql  innodb 

4
如何在Mysql中更改VIEW的DEFINER?
当我运行mysqldump时,出现错误: mysqldump: Got error: 1449: The user specified as a definer ('root'@'foobar') does not exist when using LOCK TABLES 这是有道理的,因为foobar不再有旧机器。 如何将所有表的定义器更改为'root'@'localhost'?


6
使用log_bin变量禁用MySQL二进制日志记录
一些debian软件包使用APT安装的默认MySQL配置文件/etc/mysql/my.cnf通常设置log_bin变量,因此启用了binlog: log_bin = /var/log/mysql/mysql-bin.log 当我想在这种安装上禁用二进制日志记录时,请当然在my.cnf工程中注释掉该行,但是我想知道是否有一种方法可以通过以debian风格将log_bin显式设置为OFF来禁用二进制日志记录,我的意思是包含的文件,例如/etc/mysql/conf.d/myCustomFile.cnf,因此默认的my.cnf不会更改,并且可以根据需要通过apt轻松更新。 我尝试了“ log_bin = 0”,“ log_bin = OFF”或“ log_bin =“,但是均无效...
35 mysql  logs  binlog  debian 

2
选择集合中两列的位置
这可能是一个愚蠢的问题,我怀疑我无法做到这一点,但是SQL中是否有一种结构可以让我执行以下操作: SELECT whatever WHERE col1,col2 IN ((val1, val2), (val1, val2), ...) 我想选择两列成对出现的数据。 如果可能的话,我想避免使用子查询。
35 mysql  where 

4
MySQL将UTC时间设置为默认时间戳
如何设置默认值为当前UTC时间的时间戳列? MySQL将UTC_TIMESTAMP()函数用于UTC时间戳: mysql> SELECT UTC_TIMESTAMP(); +---------------------+ | UTC_TIMESTAMP() | +---------------------+ | 2012-07-01 11:36:35 | +---------------------+ 1 row in set (0.00 sec) 所以我尝试了: CREATE TABLE `blah` ( `creation_time` TIMESTAMP DEFAULT UTC_TIMESTAMP, ... 和其他变体一样UTC_TIMESTAMP(),但没有成功。

2
按列排序应该有索引吗?
我在表中添加了用于搜索结果的索引。我按ASC或DESC顺序显示结果。所以那列应该有索引吗?我在那张桌子上还有2个索引。对该列建立索引或不建立索引会对性能产生怎样的影响?

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.