Articles of mysql

MySQL PID文件丢失

前一段时间,MySQL停止了我的服务器的工作,我只是绕着它进行研究。 当我尝试和开始 service mysqld start 我明白了 Starting MySQL.The server quit without updating PID file (/[FAILED]mysqld/mysqld.pid). 如果我跑 service mysqld restart 我明白了 MySQL server PID file could not be found! 我my.cnf文件有以下内容: pid-file = /var/run/mysqld/mysqld.pid /var/run/mysqld是空的,所以我运行 touch /var/run/mysqld/mysqld.pid 和 chown -R mysql:mysql /var/run/mysqld 然后再次尝试service mysqld restart ,我得到The server quit without updating PID file (/[FAILED]mysqld/mysqld.pid)再次和/var/run/mysqld是空的。 所以,我真的不知道下一步该怎么做。 我已经阅读了大约20个SO / SF的答案,并尝试了他们的build议,我正在围绕圈子。 […]

挂在等待查询的页面,耗费内存并花费2个小时才能失败

查看Fusion Reactor的附图,显示只是继续运行的页面。 时代已经进入了数百万人,我已经离开他们看看他们是否会完成,但那是当时只有2或3。 现在我得到了几十个从未完成的页面。 这是不同的查询,我看不到任何巨大的模式,除了它似乎只适用于我的7个数据库中的3个。 top显示的Coldfusion CPU使用率大约在70-120%之间,深入研究Fusion Reactor的详细信息页面显示所有build立时间都只用于Mysql查询。 show processlist没有任何exception,执行10 – 20个连接处于睡眠状态。 在这段时间内,许多页面都完成了,但是随着挂起的页面数量的增加,他们似乎永远无法完成服务器,最终只是返回白页。 唯一的短期解决scheme似乎是重启Coldfusion,这远非理想。 最近添加了一个Node.js脚本,每5分钟运行一次,并检查批处理csv文件,我想知道是否导致了一个窃取所有MySQL连接的问题,所以我禁用了(脚本没有connection.end ()方法),但这只是一个快速的猜测。 不知道从哪里开始,任何人都可以帮忙? 最糟糕的部分是永远不会超时的页面,如果他们这样做不会那么糟糕,但过了一段时间没有得到服务。 我正在使用Coldfusion和NodeJS作为我的主要脚本语言运行CentOS LAMP堆栈 在实际发布之前进行更新 在写这篇文章的时候,我在禁用Node脚本并重新启动Coldfusion之后开始了这个工作,这个问题似乎已经消失了。 但是,我仍然想要帮助确定页面为何超时,并确认Node脚本需要connection.end() 也可能只发生在负载,所以我不是100%确定它已经消失 UPDATE 仍然有问题,我刚刚在Fusion Reactor中复制了当前长达70秒的查询中的一个,并在数据库中手动运行它,并在几毫秒内完成。 查询本身似乎不成问题。 另一个更新 其中一个页面的堆栈跟踪仍在进行中。 服务器在一段时间内还没有停止提供页面,所有的Node脚本都被禁用了 http://pastebin.com/D6ycJf3X 更多更新 今天我又多了几个 – 他们真的完成了,我在FusionReactor中发现了这个错误: Error Executing Database Query. The last packet successfully received from the server was 7,200,045 milliseconds ago. The last packet […]

在设置反向代理环境时如何实现服务器复制?

我一直在阅读并开始设置一些不同的服务器群集环境。 我使用各种Linux发行版正常工作。 基本设置如下: —– App Server 1 | Database Server 1 Load Balancer –| Database Server 2 | —– App Server 2 正如你所看到的,这是一个基本的奴隶主设置。 我的问题我不确定复制应用程序服务器部分的最佳方式。 所以,如果新的脚本文件或更改是对应用程序服务器1,这些更改如何级联到第二个应用程序服务器? 数据库服务器运行MySQL,所以任何更新都会自动更新到其他的级联。

使用Subversion增量MySQL备份

我们的MySQL数据库服务器托pipe几十个数据库,转储文件大小从1到100 MB。 目前,我们的备份方法是mysqldump ,包装在shell脚本中,并从crontab运行。 这对我们来说很好。 唯一的主要缺点是存储转储文件的存储需求很大。 由于MySQL数据库转储是一个文本文件,当然我会考虑将其存储在一个版本控制系统中,比如Subversion。 我记得Subversion只存储每个提交中的文件的增量。 这种方法build议吗? 有什么我们应该注意的陷阱?

简单检查一下mysql是否与Nagios合作

是否有一个简单的检查,看看是否在没有authentication和select表的Nagios主机上运行?

MySQL的最佳做法与复制的MySQL数据库(授予存储)

有没有最佳做法,以确保特权不会复制到MySQL从服务器? 问题是,有一个维护用户在MySQL表中,每个框上有不同的密码。 像启动/closures脚本的东西使用这些表。 当你从一个主人复制,它改变密码,并打破东西。 什么是最佳实践,以确保实际的MySQL数据库(包含授权,用户,主机)不会因为复制而中断? 你通常复制到奴隶的权限?

对于MySQL用户来说,好的Oracle书籍?

刚开始使用Oracle,没有以前的经验。 我对MySQL有很好的使用经验(并且和PostgreSQL一起玩过)。 您能否向我推荐一本很好的Oracle入门书,这个书考虑到了我对这些其他数据库有经验的事实?

为现有的MySQL安assembly置PHP

我正在为我的客户接pipe一名前高科技员工的基本pipe理职责。 在CentOS服务器上,我有以下几点: Apache,PHP和MySQL。 他已经安装了PHP,但没有configurationMySQL扩展(我假设,因为服务器只托pipe一个基于rails的网站)。 所以我需要重新configurationPHP来使用MySQL扩展。 这里是当前的PHPconfiguration(来自phphinfo();): './configure' '–build=i686-redhat-linux-gnu' '–host=i686-redhat-linux-gnu' '– target=i386-redhat-linux-gnu' '–program-prefix=' '–prefix=/usr' '–exec-prefix=/usr' '– bindir=/usr/bin' '–sbindir=/usr/sbin' '–sysconfdir=/etc' '–datadir=/usr/share' '– includedir=/usr/include' '–libdir=/usr/lib' '–libexecdir=/usr/libexec' '– localstatedir=/var' '–sharedstatedir=/usr/com' '–mandir=/usr/share/man' '– infodir=/usr/share/info' '–cache-file=../config.cache' '–with-libdir=lib' '–with-config- file-path=/etc' '–with-config-file-scan-dir=/etc/php.d' '–disable-debug' '–with-pic' '– disable-rpath' '–without-pear' '–with-bz2' '–with-curl' '–with-exec-dir=/usr/bin' '– with-freetype-dir=/usr' '–with-png-dir=/usr' '–enable-gd-native-ttf' '–without-gdbm' '– with-gettext' '–with-gmp' '–with-iconv' '–with-jpeg-dir=/usr' '–with-openssl' '–with- png' […]

只打开mysql到localhost和一个特定的地址

我的configuration :ubuntu服务器9和msyql 5 my.cnf = bind-address = 0.0.0.0 我的iptables脚本= iptables -A INPUT -i eth0 -s 99.88.77.66 -p tcp –destination-port 3306 -j ACCEPT 我可以从任何地方连接到MySQL,不仅是IP。 我做了一个iptables保存,/etc/init.d/netwokring重启…但我仍然可以从任何IP连接,任何线索?

无法打开MySQL日志进行慢速查询

我试图loggingMySQL缓慢的查询,但我无法打开它,我会解释我所有的步骤: 我编辑my.cnf并添加以下行 long_query_time = 1 slow_query_log_file = /home/mysql/slow_queries.log slow_query_log = 1 给mysql用户授权在文件上写入 chown -R mysql:mysql / home / mysql 重新启动服务 /etc/init.d/mysqld restart 我检查MySQL日志,在重启过程中没有发现任何错误!