Tag: mysql

Mysql崩溃,OOM杀手,内存不足,调优问题?

我只是把我所有的网站都移到了一台配有4GB内存的新服务器上。 几乎马上,mysql开始崩溃,并且一度没有重启,这导致了重大的中断(因为我没有注意到,直到有人指出)。 这里是剥离CRON作业的日志: http : //pastebin.com/9SAUBcFp (apache2调用oom-killer,内存不足错误等) df -h没有超过4%的使用率。 这是一个free -m的输出 total used free shared buffers cached Mem: 4002 2090 1911 0 168 1015 -/+ buffers/cache: 906 3095 Swap: 255 8 247 这是mysqlreport的输出 __ Key _________________________________________________________________ Buffer used 849.00k of 16.00M %Used: 5.18 Current 2.99M %Usage: 18.71 Write hit 44.87% Read hit 98.84% __ Questions […]

MariaDB Galera集群不易同步

我们正在尝试debuggingMariaDB群集的问题。 我们在Amazon EC2的c4.large实例上运行Maria 10.0.19; 操作系统是Ubuntu 14.04(Trusty)。 有三台机器聚集在一起,复制好(我们可以运行create database foo;在一台机器上看到另一台机器等等)。 但是 :当我们试图在所有三台机器正在运行和同步时从转储中恢复数据库时,出现错误: $ du -sh *.sql 2.7G sqldump.sql $ cat sqldump.sql | sudo mysql ERROR 1047 (08S01) at line 4361: WSREP has not yet prepared node for application use 这个错误似乎与import需要多长时间有关。 如果我们在群集中的三个节点中的两个节点上运行service mysql stop ,并对其余节点运行SQL命令,那么它工作正常。 然后,我们可以逐个启动群集中的每台机器,通过SST复制数据,所以看起来这是Galeraconfiguration的问题。 这不仅发生在运行大量MySQL导入时:它发生在小事务的例行使用期间。 尽pipe如此,大量的import是我们最可靠的方法来复制这个问题。 导入时的系统内存使用率不是特别高,也不是CPU使用率。 networkingstream量远远低于机器链接的能力,在我们的testing中,除了SSH连接外,没有其他stream量。 有人可以帮助了解可能是什么原因造成这个问题? 以下是有关集群中的计算机和MariaDBconfiguration的更多详细信息: Ubuntu的: $ lsb_release -a No […]

百胜:php55w-与php-common-5.4常见冲突

我试图在命令行上使用yum install php-mysqlnd.x86_64在CentOS机器上安装mysqli ,但是我不断收到消息: Error: php55w-common conflicts with php-common-5.4.16-36.el7_1.x86_64 You could try using –skip-broken to work around the problem You could try running: rpm -Va –nofiles –nodigest build议的解决方法都不能解决问题。 以下是我尝试安装时显示的全文: sudo yum install php-mysqlnd.x86_64 Loaded plugins: fastestmirror, replace Loading mirror speeds from cached hostfile * base: mirror.acsnet.com * extras: mirrors.chkhosting.com * rpmforge: mirror.webnx.com * updates: mirror.netdepot.com […]

TKLBAM备份停滞导致MySQL问题

我有一个奇怪的问题,我从来没有遇到过。 我正在运行Turnkey Linux LAMP服务器(Debian),似乎我的MySQL服务器至less每天无法访问一次。 我不确定是什么原因造成的。 我重启之前的最后几个日志是: 160108 0:54:09 [Note] Plugin 'FEDERATED' is disabled. 160108 0:54:09 InnoDB: The InnoDB memory heap is disabled 160108 0:54:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins 160108 0:54:09 InnoDB: Compressed tables use zlib 1.2.8 160108 0:54:09 InnoDB: Using Linux native AIO 160108 0:54:09 InnoDB: Initializing buffer pool, size = […]

运行本地MySQL实例以实现快速的mysql_real_escape_string调用

目前,所有MySQL数据/ API调用都由远程数据库集群处理(即networking延迟是脚本执行时间的一个因素)。 为了减less执行时间,在每个应用程序服务器上运行一个本地MySQL实例来处理mysql_real_escape_string API调用是否合理? 有没有人做过这个?

如何跟踪可能的SQL注入攻击?

我们刚刚有一个(相当重要的)WordPress的数据库莫名其妙地下降。 幸运的是,我们每晚进行备份,所以它不会成为世界末日,但是我希望在未来避免或者至less能够追踪这一点。 现在,我们还不知道数据库是否由于初级开发人员意外地将命令input错误的mysql命令行或phpymadmin窗口,或者这是否为恶意SQL注入攻击而被丢弃。 显然,我们需要对初级开发人员mysql用户帐户进行更严格的控制,但除此之外,我想知道通过服务器pipe理来检测/防止sql注入的最佳做法。 请注意, 我不想知道如何根据个人情况对input进行消毒处理 – 我每次都这样做,但是我们会写很多自定义脚本,而且我们总是会让那些可以忘记或得到这个错误的初级开发人员。 至less,我想知道最好的(最简单的)方法: 以标准访问日志logging格式logging所有包含查询string或发布数据的所有GET或POST请求(我想象使用像/(drop|delete|truncate|update|insert)/正则expression式对所有的单个文件虚拟主机,然后我可以grep 只logging以drop , delete , truncate为单个文件的mysql命令。 每个条目都需要包含在最less的时间和mysql用户,但是如果我能够通过命令行或者php来查看,那么也是很好的,如果php是脚本的话。 谢谢你的帮助! 显然,让我知道是否有任何使用我忽略的标准日志的基本解决scheme。

EC2上从PHP到MySQL的连接时间很长

我有一个间歇性的问题与InnoDB连接到一个数据库从属。 间歇性地我得到的连接时间超过2秒。 这些服务器托pipe在亚马逊的EC2上。 应用程序服务器是在Ubuntu上运行的PHP 5.2 / Apache。 DB slave在Ubuntu 9.10上运行Percona的XtraDB 5.1。 它使用EBS Raidarrays来存储数据。 我们已经使用跳过名称parsing并绑定到地址0.0.0.0。 这是失败的PHP代码的一个存根 $ tmp = mysqli_init(); $ start_time = microtime(true); $ tmp-> options(MYSQLI_OPT_CONNECT_TIMEOUT,2); $ TMP-> real_connect($ DB_SERVERS [$服务器] [ '服务器'], $ DB_SERVERS [$服务器] [ '用户名'] $ DB_SERVERS [$服务器] [ '密码'], $ DB_SERVERS [$服务器] [ '模式'], $ DB_SERVERS [$服务器] [ '端口']); 如果(mysqli_connect_errno()){ $ […]

mysqldump – where with =操作符不会获得所有行

我有一个特定的表,现在认为它包含4 PB的数据的情况。 我知道这听起来很酷,但我向你保证,它只是在一个60GB的分区。 这个表格有9个字段。 其中之一是一个domain_id字段。 这是确定行的最好的领域,因为只有大约6300个。 唯一的匹配领域选项有超过200万条logging,这就更困难了。 我不能做一个直接的mysqldump,因为它会尝试输出所有4PB的数据,并在驱动器接近它之前就填满驱动器,所以我需要通过手术去除好东西,销毁数据库并重新创build它。 我相信,如果我可以为每个domain_idlogging做一个转储,那么我将获得大部分可用的数据。 这是我正在尝试使用: mysqldump -u root –skip-opt -q –no-create-info –skip-add-drop-table \ –max_allowed_packet=1000000000 database table –where="domain_id=10" \ > domains10.sql 使用这个,我期望每一行的domain_id 10被导出。 但是,当我检查导出,我只得到1行,但是当我看着数据库,有很多行。 就好像操作员find一个,然后放弃。 我曾尝试过各种运营商。 使用<或>我能够获得更多的数据,但导出在数据已被泄露的某些行处停止。 经过6000多次,我无法轻易地缩小出口中哪些行受到影响。 所以,我需要的是一个运营商,基本上会做我想做的事情,只要给我一个与特定领域匹配的所有logging的导出。 另外请注意,我得到这个数据库甚至可以访问的唯一方法是通过一个innodb强制恢复3。所以我需要得到这个权利,因为完成后,我必须删除数据库,以使MySQLfunction再次。 期待任何有用的答案。

这是HPC还是HA mySQL集群?

有人可以告诉我,如果这是一个高性能计算或高可用性mySQL集群? 有一个设置的图片 。 这是他们谈论的config.ini一部分 [ndbd default] NoOfReplicas=2 # Number of replicas NoOfReplicas确定我是否拥有HPC或HA集群是否正确?

我需要使用4gig MySql数据库多less内存?

我真的很难搞清楚这个数据库需要多lessram。 现在,这是一个大多填充文本内容,并有+ 40K条目的表格。 mysql> show table status; +——-+——–+———+————+——-+—————-+————-+——– ———+————–+———–+—————-+———————+—————- —–+————+——————-+———-+—————-+———+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +——-+——–+———+————+——-+—————-+————-+—————–+————–+———–+—————-+———————+———————+————+——————-+———-+—————-+———+ | links | MyISAM | 10 | […]

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.