Tag: MySQL

如何让mysql自动启动? (仅限linux-cli)

我怎样才能让MySQL启动每次系统启动? 我需要在一个专用的服务器(Ubuntu的发行版),我有我的博客,但每次服务器closures,在启动MySQL停止。 顺便说一句,我只能使用命令行。

mysql – 将行从一个表移动到另一个表

如果我有两个在结构上相同的表,我怎样才能从一个表中移动一组到另一个表? 这组行将从select查询中确定。 例如: customer table person_id | person_name | person_email 123 tom tom@example.com persons table person_id | person_name | person_email 样本select将是: select * from customer_table where person_name = 'tom'; 我想从客户表格移动到人员表格 理想情况下,从原始表中删除数据,但这不会是一个交易断路器。

MySql查询在select中用空stringreplaceNULL

你如何用空stringreplaceselect中的NULL值? 输出“NULL”值看起来不太专业。 这是非常不寻常的,基于我的语法,我期望它的工作。 希望解释为什么它没有。 select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test; 什么样的原始表看起来像什么,我想要什么,以及什么样的实际打印: original wanted what actually prints ——– —— ——————— value1 value1 NULL NULL value2 value2 NULL NULL 正如你所看到的,它与我想要的是相反的,因此我尝试翻转IS NULL到IS NOT NULL,当然那没有修复它,也尝试交换case,哪个没有工作的位置。 编辑:看来下面给出的三个解决scheme都做这个任务。 问候 select if(prereq IS NULL ," ",prereq ) from test select IFNULL(prereq,"") from test […]

获得上个月的第一天和最后一天的最佳方式?

我正在寻找最好的方法来获得上个月的第一天和最后一天。 我使用它们进行SQL查询来获取上个月的统计信息。 我认为这是最好的方式,更优化,但不是更多,任何人有另一种方式做同样的? $month_ini = date("Ymd", mktime(0, 0, 0, date("m", strtotime("-1 month")), 1, date("Y", strtotime("-1 month")))); $month_end = date("Ymd", mktime(0, 0, 0, date("m", strtotime("-1 month")), date("t", strtotime("-1 month")), date("Y", strtotime("-1 month")))); 谢谢!!

提高mysql导入的速度

我有22GB大型数据库。 我曾经以gzip格式备份mysqldump命令。 当我提取gz文件时,它会产生16.2GB的.sql文件 当我尝试在我的本地服务器中导入数据库时​​,大约需要48小时导入。是否有一种方法可以提高导入过程的速度? 另外我想知道是否需要做任何硬件更改来提高性能。 当前系统configuration Processor: 4th Gen i5 RAM: 8GB #UPDATE my.cnf如下 # # The MySQL database server configuration file. # # You can copy this to one of: # – "/etc/mysql/my.cnf" to set global options, # – "~/.my.cnf" to set user-specific options. # # One can use all long options that the […]

如何在Windows Vista中将mysqldump .sql文件加载到MySQL数据库中

我试图将一个MySQL数据库从一台Linux机器迁移到一台运行Windows Vista的机器上。 使用mysqldump,我已经获得了一个.sql文件,我已经移到了Windows机器上。 下一步是什么? 如果我正在转移到另一台Linux机器上,可以这样做: mysql -u username -p databasename < dumpfile.sql 有没有人知道从Windows命令行工作的类似的调用? 还是有工具来完成这个? 当我从Windows命令行尝试这种types的命令时,我得到: 'mysql' is not recognized as an internal or external command 我也试过: mysql> source C:\Stuff\dumpfile.sql 这给了: Failed to open file 'C:\Stuff\dumpfile.sql', error: 2

如何使用XML_LOAD()将XML文件导入到MySQL数据库表中 function

我有一个XML文件,看起来像这样: <?xml version="1.0" encoding="UTF-8"?> <resultset statement="YOUR SQL STATEMENTS TO GENERATE THIS XML FILE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="personal_number">539</field> <field name="firstname">Name</field> <field name="lastname">Surname</field> <field name="email">email.domain.com</field> <field name="start_time">2011-04-02 13:30:00</field> <field name="end_time">2011-04-02 18:15:00</field> <field name="employee_category">1,2,4,5,22,37,38,39,41,43,44</field> </row> <row> <field name="personal_number">539</field> <field name="firstname">Name</field> <field name="lastname">Surname</field> <field name="email">email.domain.com</field> <field name="start_time">2011-04-02 13:30:00</field> <field name="end_time">2011-04-02 18:15:00</field> <field name="employee_category">1,2,4,5,22,37,38,39,41,43,44</field> </row> <row> <field name="personal_number">539</field> <field name="firstname">Name</field> […]

将聊天消息存储在数据库中的最佳方法?

我正在构build一个聊天应用程序,我想要完整地logging聊天对话中发送的所有消息。 此刻,我将每条消息存储在一个称为“消息”的表中的单行。 我知道这个表格可能会变得很大,即使是像Hi这样的小信息也会有自己的数据库logging。 任何人都可以推荐一个更可扩展的MySQL解决scheme 我不要求单个消息是可search的,可编辑的或可删除的。 整个对话可以存储在一个巨大的领域? 很想听听你的想法!

MySql Proccesslist中充满了导致“连接太多”的“睡眠”条目?

我想请问你的帮助与PHP / MySQL连接长期存在的问题。 每次我执行一个“SHOW PROCESSLIST”命令,它都会向我们展示从我们的5个Web服务器出现的数据库服务器的大约400个闲置(状态:睡眠)连接。 从来没有太多的问题(我没有find一个快速的解决scheme),直到最近的stream量数量增加,从那以后,MySql反复报告“到多个连接”的问题,即使这些连接的350多个处于“睡眠”状态。 此外,即使有睡眠连接到同一台服务器,服务器也无法获得MySQL连接。 所有这些连接消失,当一个Apache服务器重述。 用于创build数据库连接的PHP代码使用普通的“mysql”模块,“mysqli”模块,PEAR :: DB和Zend Framework数据库适配器。 (不同的项目)。 没有任何项目使用持续连接。 提高连接限制是可能的,但似乎不是一个好的解决scheme,因为现在是450,而且每次只有20-100个“真实”连接。 我的问题: 为什么睡眠状态下有这么多的连接,我怎么能防止这种情况。 谢谢你的时间,如果有什么不清楚或缺less,请让我知道 – 更新: 一次运行的Apache请求的数量从来没有超过50个并发请求,所以我想有一个问题closures连接或Apache保持端口打开没有附加phpscript或什么(?) my.cnf万一有帮助: innodb_buffer_pool_size = 1024M max_allowed_packet = 5M net_buffer_length = 8K read_buffer_size = 2M read_rnd_buffer_size = 8M query_cache_size = 512M myisam_sort_buffer_size = 128M max_connections = 450 thread_cache = 50 key_buffer_size = 1280M join_buffer_size = 16M […]

在MySQL中加快行数

假设,出于说明的目的,您正在运行一个使用简单的MySQL“books”表的三个列的库: (ID,标题,状态) id是主键 标题是书的标题 状态可能是描述本书当前状态的枚举(例如,AVAILABLE,CHECKEDOUT,PROCESSING,MISSING) 一个简单的查询来报告每个州有多less本书是: SELECT status, COUNT(*) FROM books GROUP BY status 或者专门查找有多less本书可用: SELECT COUNT(*) FROM books WHERE status = "AVAILABLE" 但是,一旦表增长到数百万行,这些查询需要几秒钟才能完成。 在“状态”列中添加一个索引似乎并不会改变我的体验。 除了定期caching结果,或者在每次书籍更改状态(通过触发器或其他机制)时,在一个单独的表格中显式更新汇总信息,有没有什么技术可以加快这类查询的速度? 看起来COUNT查询最终只能查看每一行,而(不知道更多的细节)我有点惊讶,这个信息不能以某种方式从索引中确定。 UPDATE 使用具有200万行的示例表(具有索引“状态”列),我对GROUP BY查询进行了基准testing。 使用InnoDB存储引擎,查询在我的机器上需要3.0 – 3.2秒。 使用MyISAM,查询需要0.9-1.1秒。 在这两种情况下,计数(*),计数(状态)或计数(1)之间没有显着差异。 MyISAM肯定有点快,但我很好奇,看看有没有办法让等效查询的运行速度更快(例如,10-50毫秒 – 足够快,可以在每个网页请求中调用低stream量站点)没有caching和触发器的精神开销。 这听起来像答案是“没有办法快速运行直接查询”,这是我所期望的 – 我只是想确保我没有错过一个简单的select。