Articles of mysql

MySQL阻塞新连接,以及mysqladmin flush-hosts

我在远程服务器上运行MySQL,它突然开始拒绝所有连接: $ mysql -h 192.168.1.10 -u root -p ERROR 1129 (00000): Host 'web' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 所以,我试试这个flush-hosts命令… $ mysqladmin flush-hosts -h 192.168.1.10 -u root -p mysqladmin: connect to server at '192.168.1.10' failed error: 'Host 'web' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'' 即它阻止了它推荐的非阻塞工具。 […]

我的MySQL服务器可以完全调整吗?

我在运行WHM 11.36.0的quadcore CENTOS 5.9 i686标准。 这是一个专用的LAMP服务器,有很多网站,其中大部分都使用数据库。 我正在使用Munin监视服务器,并注意到负载总是很高,推动了限制(通常> 4)。 Munin还显示了一个内存图表,表示在4GB RAM服务器上不断交换和提交大约5-6 GB的内存。 这当然不健康? 我试图用tuning-primer.sh和mysqltuner.pl来调整mysql,但是现在我正处在一个我觉得我不能做更多的事情上。 这些工具不断推荐,但是不pipe我做什么,他们都不断给出新的build议,现在我觉得我现在在圈子里跑。 所以我的问题是:是否有一点,即使在理论上可能挤出更多的性能,试图进一步调整mysql实际上变得毫无意义? 有一个简单的方法来知道,如果mysql是最大的?

将重新configurationZabbix清除数据库?

我有一个快速的问题。 我需要Zabbix才能访问CURL。 但是,我不认为在安装with-libcurl的时候: ./configure –enable-server –enable-agent –with-mysql –enable-ipv6 –with-net-snmp –with-libcurl 即使我们有Zabbix设置和监控我们的所有服务器,再次运行该命令是否安全? 我们真的需要CURL支持,但我们不想失去目前的监测设置。 谢谢!

MySQL二进制日志logging格式 – 磁盘填充

我有一个configuration了二进制日志logging的MySQL服务器实例。 我不做任何复制,但是二进制日志是我们恢复计划的一部分 – 能够重放自上次完全备份以来的所有事务。 不久之前,在一个已经运行了几个星期的系统上发现MySQL错误日志已经增长到超过5 GB的不规则大小。 查看日志,几乎每一行都写入了一条关于“写入二进制日志的不安全语句”的警告。 现在,我不控制使用数据库的应用程序,所以我无法尝试使这些语句“安全”。 所以,作为一个“修复”,我将binlog_formatconfiguration为MIXED ,而不是STATEMENT 。 这告诉MySQL在可能的情况下使用STATEMENT日志logging,但是回退到ROW日志logging带有不安全的语句。 这样做已成功地将错误日志的大小保持为可pipe理的大小。 然而,现在二进制日志的增长速度比以前快了很多(我今天在几个小时内看到了3GB的日志文件),大概是因为现在系统正在写入日志中的每一行都受到影响(“不安全“语句),对于影响大量行的语句,你可以得到图片。 所以,我发现自己在一个困难的地方。 如果我使用STATEMENT格式,二进制日志是可以pipe理的,但是在错误日志中会出现一些疯狂的警告。 如果我使用MIXED格式,那么错误日志是好的,但是二进制日志的增长速度足以在一天之内填满分区。 这让我想起了这个问题:这些“不安全”的言论究竟是怎么回事呢? 就像我说的,我没有任何复制,所以我不需要担心一台服务器与另一台服务器完全相同。 我只需要确保在需要从备份恢复的情况下,所有的数据都在那里。 “不安全”语句的日志logging会导致数据丢失,还是会出现某些行的顺序不同(可能还有不同的主键ID)的情况? 如果这不是一个大问题,那么我可以在错误日志中禁用警告(虽然这看起来很笨拙)。 否则,我可能会被迫彻底取消二进制日志logging,只能依靠恢复计划的潜在过期完整备份。 有什么build议在这种情况下?

Django – 无法通过套接字连接到本地MySQL服务器

我在Amazon EC2上使用Django Bitnami Stack。 我试图同步数据库的初始设置,但我有问题。 运行以下命令时,收到一条错误消息: Python manage.py syncdb “无法通过套接字”/tmp/mysql.sock“(2)”连接到本地MySQL服务器“) 我明白这是因为无法build立到MySQL服务器的连接。 但是,当我从命令行运行此我可以连接: Mysql –u root –p // "Then entering my password” 以下是settings.py中的数据库设置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djangostack', 'HOST': 'localhost', 'PORT': '3306', 'USER': 'root', 'PASSWORD': 'bitnami' } } 我试图重新启动MySQL服务器使用sudo service mysqld restart但我收到一条消息,指出mysql是一个无法识别的服务。 这是my.cnf文件: [mysqladmin] user=root [mysqld] basedir=/opt/bitnami/mysql datadir=/opt/bitnami/mysql/data port=3306 socket=/opt/bitnami/mysql/tmp/mysql.sock tmpdir=/opt/bitnami/mysql/tmp bind-address=127.0.0.1 […]

让非root用户访问login到phpMyAdmin

我试图给一个非根MySQL用户访问login到phpMyAdmin,只看到他们有权访问的数据库。 我已经看了下面的文章,并尝试了他们的build议: 为多个用户configurationphpmyadmin 我已经授予MySQL用户访问密码到他们的数据库,并select在MySQL数据库中的项目(如其中之一所述)。 我已经configurationphpmyadmin使用cookie auth_type,我有一个pma控制用户,我已经授予用户不仅从'%',但从本地主机和IP等。 当用户login时,他们得到#1045无法login到MySQL服务器 我的root用户可以很好地login到phpmyadmin。 需要访问phpmyadmin的用户可以很好地从命令行login。 phpmyadmin目录上有chmod -R 777,除了configuration文件,这不是世界上可写的。 mysql日志文件中适用的行是: 130507 14:40:00 [Warning] 'user' entry 'someusername@mydomain' ignored in –skip-name-resolve mode.ve mode. 130507 14:40:00 [Warning] 'db' entry 'somedbname someusername@mydomain' ignored in –skip-name-resolve mode. 130507 14:40:00 [Warning] 'tables_priv' entry 'db someusername@mydomain' ignored in –skip-name-resolve mode. 130507 14:40:00 [Warning] 'tables_priv' entry 'host someusername@mydomain' ignored in […]

Heroku:支持InnoDB

Heroku是否支持MySQL(特别是InnoDB数据库引擎)? 我看到有ClearDB插件,但没有声明它支持InnoDB或不。

Mysql多从复制

嗨,我有一个主要的Mysql服务器从哪里复制其他2个奴隶。 这个问题是频繁出错的从站之一。 错误消息如下。 在查询时错误'重复条目'1993996'关键1'。 默认数据库:“ooxadmin_ooxmonitor”。 查询:'INSERT INTO users_history SET user_id ='22', user_last_access = NOW(), user_status ='在线', user_session ='aa78ee40a941aea26a0e0c10c714b5a9', user_ip = '94 .200.71.50'' 我已经尝试了'SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1'并再次启动从站,然后开始复制,然后在几分钟/小时后停止。 我想知道是什么原因造成这个问题,以及如何设置复制没有这个错误。 我的MySQL版本是5.0.9。

如何testingmysql数据库和logging已正确迁移服务器?

我必须将数据库移动到新的服务器。 我做服务器A的数据库的mysqldump,并将其导入到服务器B.然后,我做了从服务器B的转储,并通过bash比较这与从服务器A的转储。 这失败了,有些行不匹配,虽然手动检查显示没有涉及数据线。 这两个服务器运行略有不同版本的MySQL 5.0.x. 使用mysqldump命令: mysqldump -u user -p mydb > mydbA.sql 然后经过一些研究,我使用了bash上的工具: 旧服务器A上的mysqldump,完整转储和仅数据转储。 在新服务器B上创build数据库并从A导入完整转储 那么数据只从服务器B转储 比较数据转储A和数据转储B. 应该退出0 – 从echo $? MD5也给出相同的散列。 这两个服务器运行略有不同版本的MySQL 5.0.x. “完整”转储 mysqldump -u user -p mydb > mydbFULL.sql 仅数据转储 mysqldump –no-create-info –skip-opt –skip-comments –skip-extended-insert –compact -u user -p mydb > mydbDATAonly.sql

Mysql slow.log用户特定

我在我的MySQL服务器上使用slow.log日志logging来捕获脚本中的瓶颈,但同时我在这台服务器上使用phpmyadmin 。 我的脚本和phpmyadmin有不同的MySQL用户帐户,现在,当我分析slow.log文件时,我看到很多来自phpmyadmin查询的垃圾邮件,是否有可能将MySQLconfiguration为仅logging来自特定用户的缓慢查询?