Articles of mysql

sysbench出错mysql mysql的OLTPtesting

我在使用以下设置运行MySQL 5.5.16的RHEL 5.6服务器上运行sysbench: sysbench –test=oltp –db-driver=mysql –mysql-user=sbench \ –mysql-socket=/var/lib/mysql/mysql.sock –mysql-db=sbench \ –mysql-table-engine=innodb –oltp-table-size=1000000 prepare 这将创build默认的sbench表,如下所示: mysql> SHOW CREATE TABLE sbench.sbtest\G *************************** 1. row *************************** Table: sbtest Create Table: CREATE TABLE `sbtest` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `k` int(10) unsigned NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '', `pad` char(60) NOT NULL […]

如何确保MySQL从服务器使用SSH隧道从主服务器复制?

我需要确保两个CentOS 5.7服务器之间的MySQL数据库复制。 服务器1具有实时数据库,并且复制已经正常工作到位于互联网上其他地方的服务器2。 显然,这样做不好,因为复制stream量很容易被读取,所以需要保证。 我通过将这个input到服务器2创build一个SSH隧道: ssh -f root@server1ip -L 3305:server1ip:3306 -N 我确认我能够成功地从服务器2login到服务器1上的MySQL,使用: mysql -h27.0.0.1 -uuser -ppassword -P 3305 现在,这是否意味着mysql复制现在都自动通过SSH? 无论如何,我可以证实这一点? 还是服务器2 强制通过SSH连接到服务器1,因为我build立了这个端口转发规则? 我注意到,如果我重新启动服务器2,SSH隧道重新启动时不见了,但复制继续(我假设回纯文本)。 有什么我可以做的确保复制停止时隧道下降? 我想确保它不会自动继续在没有SSH的情况下以明文forms复制。 谢谢!

在正常的ssh隧道工作时,通过工作台隧道到MySql不工作

我想通过SSH隧道访问一个MySQL服务器。 我的理解是这应该在Mysql Workbench(Ubuntu 10上的5.2.35)本地支持。 以下工作: 打开shell ssh -f [email protected] -L 33187:server.domain.com:3306 -N 打开MySql Workbench 使用连接方法“Standard TCP / IP”使用端口33187连接到本地主机 以下不起作用: 杀死任何SSH端口转发开始一个干净的石板。 打开Mysql Workbench select连接方法“通过SSH的标准TCP / IP” input下面的连接variables(这些连接variables似乎与以前的ssh命令一致): SSH主机名:server.domain.com SSH用户名:jblow SSH密码:server.domain.com上的jblow密码 MySQL主机名:本地主机(或127.0.0.1,尝试两种方式) MySQL服务器端口:33187 最终目标是提供一个工作台configuration文件,其中包含许多用户(开发人员)可以简单地放在他们的机器上的服务器的正确设置(减去密码),并且能够通过mysql工作台的首页中列出的现有连接轻松访问相应的数据库。 最坏的情况下,我可以给他们一个bash脚本放在他们的.bashrc加上工作台configuration文件…但我更喜欢一个文件,如果我可以,尤其是因为我有Windows上的用户,所以如果我可以使用工作台configuration文件,那么对于windows用户和linux用户来说,它将基本上是相同的过程。 注意:目标是将mysql工作台从远程服务器上的端口3306映射到本地的某个其他端口(如示例ssh命令中所示)。 把3306作为MySQL服务器端口导致错误,因为3306在我的本地机器上不可用(因为它正在运行本地mysql实例)。 在进一步观察之后,看来这是不可能的。 如果我杀死了本地mysql服务器实例(释放端口3306),那么mysql工作台可以使用3306作为mysql服务器端口(这是远程机器上的正确端口)进行连接,但似乎没有办法同时支持本地mysql实例和远程连接通过ssh完全通过mysql工作台,因为它获取端口冲突。 使用端口映射需要一些iptables条目,或者从mysql工作台configuration中分别执行ssh tunneling。

我应该在生产服务器上还是在不同的服务器上安装PhpMyAdmin,通过电线访问生产数据库?

(这个问题是相关的,但不同于你会在生产Web服务器上安装phpmyadmin? ) 我想使用PhpMyAdmin来访问我的生产数据库。 我宁愿没有安装在生产服务器上。 在不同的服务器上运行它是否合理/安全,但通过Internet访问我的生产数据库?

Mysqld增加了CPU的负载,并在刷新表之后下降

请帮助请关于这个问题的build议。 在cpu 20-30%us + sy上正常加载。 恢复从服务器(相同版本)的数据库文件后,开始了一个周期性的问题。 mysql开始加载100%的cpu(us + sy按比例增长)。 队列正在增长,一切都变慢了。 但是用mysqladmin flush-tables被标准化了几个小时。 运行mysql的专用linux服务器2个E5506 24Gb RAM,数据库大小50Gb。 [OK] Currently running supported MySQL version 5.0.51a-24 + lenny4-log [OK] Operating on 64-bit architecture ——– Storage Engine Statistics ————————————— —- [-] Status: + Archive-BDB-Federated + InnoDB-ISAM-NDBCluster [-] Data in MyISAM tables: 33G (Tables: 1474) [-] Data in InnoDB tables: 1G […]

如果有大约1亿行,我们应该创build多less个分区

我有一个16核心,12 GB RAM,一个SSD 500 MB /秒,我有我的“页”表中有1百万行 这些页面包含1个唯一的键,它们是HostID(int)和Page(varchar) 我使用按键进行分区,并创build了大约100个分区 但我不确定我应该创build多less个分区才能获得最佳性能。 简要介绍一下我使用主键search的70GB数据: select * from table where HostID = 1 AND Page = 'asdasd'

监测Innodb Lock监测输出?

我发现了大量的工具来监视SHOW PROCESSLIST和SHOW INNODB STATUS的输出,但是还没有发现太多的东西,表明它会logging,摘要并总结(可选地启用)来自InnoDBlocking监视器的数据。 有这样的工具吗? (FWIW,我知道我可以启用slow_query_log并且已经这样做了,但是希望能够随着时间的推移logging更多特定的locking活动。遇到缓慢的查询时很难说的是其他线程/查询/用户造成的手动检查。)

从Web服务器分离MySQL服务器

你好,ServerFault社区, 我通常是一个StackOverflow lurker / contributor,但是我一直在玩最近的服务器云服务,并且会很感激你的想法。 我构build了web应用程序(通常是小到中等大小的低stream量),目前我有3个在Debian上运行的虚拟机,通过Apache提供networking文件,用MySQL提供数据。 每个VPS运行10到30个站点; 一些自定义应用程序,一些Wordpress和一些静态的HTML网站。 随着我正在玩的新的云服务(目前处于testing阶段,所以它是免费的!)我有能力开始/停止和扩展服务器,我喜欢。 我名单上的第一个实验是用Nginx取代Apache,到目前为止这样做还不错。 然而,我开始怀疑是否有一个优化的服务器通过Nginx服务文件和存储媒体文件,然后是另一个优化的服务器通过MySQL运行和服务数据会有什么好处。 我不知道是否可以做很多事情来优化每个服务器的Web或数据库托pipe,或者是否有任何其他分离服务的好处? 对于这个问题以及我可能错过的其他选项,我将不胜感激。 旁注:使用云服务,我可以select完全自定义服务器,包括内存,磁盘空间和磁盘速度(SATA,SAS,SSD)。

使用where子句转储单个表时,使mysqldump输出USE语句或全表名

是否有可能得到mysqldump输出单个(部分)表转储的USE语句? 我已经有了一些我想重复使用的脚本,它们运行mysqldump和一些参数,并将它们应用到远程服务器上。 但是,由于我没有为parsingmysqldump的所有参数而困扰,并且转储中没有USE ,所以远程服务器没有select数据库。 我是一个程序员比其他任何东西,所以我可以很容易地使用sed修改转储之前应用它在最坏的情况下,但这些脚本不会允许我这样做,因为我无法访问转储之间创造和应用。 编辑:输出完全合格的表名称的能力也可以解决我的问题

问题NATing服务器专用接口回环(用于MySQL)

我试图将NATstream量发送到服务器的专用接口到环回(因为MySQL bind-address是在127.0.0.1 ,不能改变,但我仍然需要通过专用接口达到它)。 组态 –mysql bind-address = 127.0.0.1 使用sysctl -w net.ipv4.ip_forward=1启用IP转发 -setup iptables如下( eth0是私有接口) -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -i eth0 -p tcp –dport 3306 -j ACCEPT -A INPUT -i lo –jump ACCEPT -A INPUT –match state –state ESTABLISHED,RELATED –jump ACCEPT -t nat -A PREROUTING -i eth0 -p tcp –port 3306 -j […]