Questions tagged «mysql»

MySQL是Oracle拥有的开源数据库。

3
为什么Apache疯狂运行并杀死MySQL?
在过去的几天里,Apache失去了控制,并使MySQL崩溃了两次。当我迁移了一个WordPress网站(其中还包含一个phpBB论坛)时,一切就开始了。 我在服务器管理方面经验不是很丰富,因此很难确定导致问题的原因。当我注意到MySQL关闭时,我运行TOP,看到系统负载激增至98.00。该服务器运行10个V-HOSTS,所有这些都接收到正常的流量,因此我显然看到许多apache-2进程正在运行。 高服务器负载持续10分钟,然后恢复到正常状态。在这一点上,我没有看到网络流量激增。 不幸的是,MySQL错误日志记录被禁用(现在已重新启用),因此那里没有任何线索。但是我很确定这是因为Apache正在消耗所有资源,所以MySQL进程ID被杀死了。 我的问题是: 下次发生这种情况时-如何识别导致系统负载峰值的原因?难道是一个疯了的php脚本?可能是DDOS攻击? 有没有办法在崩溃时自动重新启动MySQL? 我现在已经安装好了htop。会比这有用top吗? 这是我的服务器统计信息: m1.xlarge (8 ECUs, 4 vCPUs, 15 GiB memory, 4 x 420 GiB Storage Capacity) Ubuntu Server 12.04.3 LTS

3
添加CPU会降低MySQL 5.5(Debian)的性能
我即将在OpenVZ容器中设置数据库服务器(MySQL),我一直在想应该为它分配多少CPU。我决定进行基准测试。我比较了两个OS / MySQL发行版,并测试了它们在1、2、3和4个CPU上的性能。 第一个软件配置是: CentOS版本6.5(最终版) 适用于redhat-linux-gnu(x86_64)的mysql Ver 14.14 Distrib 5.1.71,使用readline 5.1 第二: Debian GNU / Linux 7 \ n \ l 适用于使用readline 6.2的debian-linux-gnu(x86_64)的mysql Ver 14.14 Distrib 5.5.31 两者都在同一内核上运行-2.6.32-openvz-042stab083.2-amd64#1 SMP Fri Nov 8 17:59:25 MSK 2013 x86_64 GNU / Linux。 所有软件都是从软件包中安装的,并且可以直接使用,而无需进行任何自定义配置调整。 硬件:6GB RAM,1-4个CPU 3.5 GHz。 为了进行基准测试,我在以下情况下使用了sysbench: sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root …

2
Mysql Slave卡在“系统锁定”中
我的MySQL奴隶花了很多时间在Slave_SQL_Running_State: System lock。我可以看到该系统当前处于I / O写绑定状态,并且正在处理日志,尽管速度很慢。Show processlist处于此状态时,除了“正在等待主机发送事件”和“系统锁定”外,不会显示其他任何内容。 我的所有表(系统表除外)都是InnoDB,并且禁用了外部锁定。在这种状态下,奴隶在做什么? 这是一些要求的信息: 首先,这是Amazon EC2实例上的MySQL 5.6社区,所有存储都位于EBS上。 mysql> show processlist; +----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+ | 1 | system user | | NULL | Connect | 26115 | Waiting for master to …

3
mysqldump忽略带通配符的表
我需要对包含50个奇数表的数据库进行转储,我想排除其中约有前缀的15个奇数 exam_ 我尝试过mysqldump --ignore-table=dbname.exam_* ,甚至尝试过--ignore-table=dbname.exam_% 它没有按预期工作。我不得不使用--ignore-table多次。 编辑:我已经看到了一些列出tables not like tablename_%并传递给的shell脚本mysqldump。 但是,我想知道mysqldump或mysql中是否有一个选项,因此无需编写脚本即可执行相同的操作。 编辑添加:最终使用脚本ignore-table=多次转储数据库(不包括表)。

4
如何有效地转储巨大的MySQL innodb数据库?
我有一个Ubuntu 10.04生产型MySQL数据库服务器,其中数据库的总大小为260 GB,而根分区的大小本身为300 GB,用于存储数据库,这实际上意味着大约96%的/已满,并且没有空间来存储转储/备份等等。到目前为止,没有其他磁盘连接到服务器。 我的任务是将该数据库迁移到位于不同数据中心的其他服务器。问题是如何在最少的停机时间内有效地做到这一点? 我在考虑以下方面: 请求将额外的驱动器连接到服务器,并在该驱动器中进行转储。[编辑:现在不可能。] 将转储转移到新服务器,还原它,并使新服务器成为现有服务器的从属服务器,以保持数据同步 当需要迁移时,中断复制,更新从属配置以接受读/写请求,并使旧服务器为只读,这样它就不会招待任何写请求,并告诉应用程序开发人员使用新的db IP地址更新该配置。 您对改进此任务或任何其他更好的方法有何建议?
8 innodb  mysql 

3
Debian-在启动时阻止MySQL启动
我出于开发目的在计算机上安装了MySQL,但大多数时候我不使用它。我如何配置我的Debian,以便它不会在启动时启动MySQL,而只有在我告诉它(使用service mysql start)时才启动。 我对apache2做过同样的事情, update-rc.d -f apache2 remove 但是我找不到用MySQL做到这一点的方法。
8 mysql  debian  boot 

3
远程访问不安全的MySQL'root'@'localhost'帐户?
一点背景知识:我们刚刚将PBX系统入侵了。服务器本身看起来很安全(没有登录的未经授权的控制台访问-SSH等),但是黑客设法以某种方式向PBX软件(FreePBX,由MySQL支持)注入了新的管理员用户。Apache日志表明,黑客设法在不使用Web界面(或Web界面中的任何漏洞利用)的情况下添加了用户。 现在,我发现MySQL在没有root密码(!!)的情况下运行并公开绑定到外部IP地址(显然,我现在已将其锁定)。但是,MySQL中唯一的根级别用户是'root'@'localhost'和'root'@'127.0.0.1',这两个都只能在本地访问。 所以,我的问题是这样的: 有没有一种欺骗与MySQL的连接的方法,从而允许从远程IP地址连接到“ root” @“ localhost”用户,而无需在本地运行任何其他利用程序? 作为参考,该框是运行Mysql 5.0.95的Centos 5(Linux 2.6.10)。

1
错误2006:MySQL服务器消失了
我正在使用uWSGI和nginx在CentOS服务器上运行Python Pyramid应用程序。我使用SQLAlchemy作为ORM,使用MySQLdb作为API,并使用MySQL作为数据库。该站点尚未上线,因此唯一的访问量是我和公司的其他一些员工。我们购买了一些数据来填充数据库,因此最大(也是最经常查询)的表是〜150,000行。 昨天我快速连续打开了网站的四个新标签,然后又收到了502错误的网关错误。我查看了uWSGI日志,发现了以下内容: sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 'SELECT ge... 重要说明: 此错误不是由于MySQL的wait_timeout。去过也做过。 我想知道问题是否是由同时处理并发请求引起的。我让自己成为一个穷人的负荷测试仪: for i in {1..10}; do (curl -o /dev/null http://domain.com &); done; 可以肯定的是,在这十个请求中,至少有一个会引发2006年错误,而且有时还会更多。有时错误会变得更加陌生,例如: sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column 'table.id'" 当该列最明确存在并且在所有其他相同请求上均能正常工作时。或者,这一个: sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been …
8 mysql  python  uwsgi 

2
MySQL慢写
插入下表最多需要70秒才能完成: CREATE TABLE IF NOT EXISTS `productsCategories` ( `categoriesId` int(11) NOT NULL, `productsId` int(11) NOT NULL, PRIMARY KEY (`categoriesId`,`productsId`), KEY `categoriesId` (`categoriesId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 该表中大约有100,000行,它占用了7MB磁盘空间。 MySQL中是否有一些设置可以提高写入性能? 我的my.cnf文件如下: log-slow-queries="/var/log/mysql/slow-query.log" long_query_time=1 log-queries-not-using-indexes innodb_buffer_pool_size=4G innodb_log_buffer_size=4M innodb_flush_log_at_trx_commit=2 innodb_thread_concurrency=8 innodb_flush_method=O_DIRECT query_cache_size = 6G key_buffer_size = 284M query_cache_limit = 1024M thread_cache_size = 128 table_cache …
8 mysql  innodb 

1
max_binlog_size和日志箱大小
我的全盘有问题 -rw-rw---- 1 mysql mysql 1073741982 2012-07-03 18:14 mysql-bin.000034 -rw-rw---- 1 mysql mysql 1073741890 2012-07-04 14:39 mysql-bin.000035 -rw-rw---- 1 mysql mysql 1073741988 2012-07-05 09:16 mysql-bin.000036 -rw-rw---- 1 mysql mysql 1073741964 2012-07-06 00:04 mysql-bin.000037 -rw-rw---- 1 mysql mysql 1073741974 2012-07-06 21:45 mysql-bin.000038 -rw-rw---- 1 mysql mysql 1073741923 2012-07-07 19:05 mysql-bin.000039 -rw-rw---- …

2
mysql tmp_table_size和max_heap_table_size不起作用
我在my.cnf文件中将表tmp大小设置为更高的值,如下所示: tmp_table_size = 64M max_heap_table_size = 64M 但这不起作用。我使用此脚本进行了检查。即使重新启动后,它仍然显示16M是默认值。 我究竟做错了什么?
8 mysql 

4
自动缩放MySQL服务器的方法?
我运行的网站流量激增,因此自动缩放解决方案在这种情况下非常有利可图。当前,Web服务器能够水平自动缩放,但瓶颈在MySQL服务器上。 我已经尝试过使用Amazon RDS Multi-AZ,但是12 GB数据库的升级大约需要15分钟,而停机时间则是几分钟。当我已经知道在某个特定时刻将会出现流量激增时,它就起到了很大的作用。 我也考虑过Xeround。尽管对于这种规模的数据库而言,这是非常昂贵的,但这可能是最好的解决方案。无论如何,这不是一个选择,因为我在法律上需要数据库位于欧盟。 我已经阅读了有关Scalr的内容,但不确定是否有帮助以及如何使用。 我已经看到许多云托管提供商都提供了垂直扩展解决方案,我认为停机时间为零(据我所知,他们使用Xen虚拟机管理程序无法确定这是否真的可能)。那可能是一个解决方案,但我想知道它是否没有停机时间,以及MySQL配置(以及操作系统上的许多其他功能)如何能够在没有停机时间的情况下进行升级。 我已经尝试过使用MySQL从属服务器,但这根本没有帮助。 我正在使用memcache,它可以提供很多帮助,但还不够。我需要升级的原因是写入,而不仅仅是读取。 有什么建议么?先感谢您


4
MySQL中最大行大小的问题
我在使用MySQL时遇到问题,我的表中包含许多文本字段。当我尝试存储一些数据时,出现此错误。 行大小太大。使用的表类型(不计BLOB)的最大行大小为8126。您必须将某些列更改为TEXT或BLOB 我存储在每个字段中的文本不太长,每个字段中只有几段。 我能做什么?
8 mysql 

2
通过更改主机将自己意外地锁定在MySQL之外
在尝试使远程MySQL工作时,我设法以root帐户锁定了自己。 通常,我会停止MySQL服务并使用来重新启动它/etc/init.d/mysql --init-file,但是当我尝试这样做时,它说脚本已转换为upstart作业,并使用“ service mysql”命令。不幸的是,据我所知,该service命令不支持该--init-file选项。 还有其他方法可以为root用户重置主机吗?
8 mysql  root 

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.