Articles of mysql

监控Nagios中的MySQL SELECT / WRITE / UPDATE / SLOW查询

有几种方法可以获得性能图,包括ZenOSS等几个监控软件包。 有一个插件可用于在基于MySQL的SELECT / WRITE / SLOW查询中绘制漂亮的rrd样式图。 我很好奇,如果有一种方法也可以在Nagios 3.0中获得类似的graphics? 我知道Nagios有像pnp这样的工具,可以集成rrd,但是有没有什么可用的插件来监视这些MySQL的细节?

如何找出每个mysql连接的内存开销?

我想找出每个mysql进程的内存开销。 现在,我有800多个MySQL连接,但我不知道系统何时开始交换。 我使用FreeBSD。

如何在Mysql上显示用户名的授权?

更具体地说,我如何显示什么复制授予附加到用户名?

主 – 主复制的MySQL自动增量问题,以及解决它的逻辑

我有一个主 – 主复制自动增量重复问题。 然后,我设定: SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 99999; 这跳过了9999个查询。 然后我做了: SHOW SLAVE STATUS\G Slave_IO_Running: Yes Slave_SQL_Running: Yes 而且它似乎运行良好。 但是,当然,因为我跳过了99999个语句…如果我在数据库1上进行了更改,它将不会在数据库2上反映它,直到传递99999个语句为止。 正确? 那么…我创build了一个脚本自动插入999999行到一个虚拟表。 这应该是绰绰有余的吧? 我的2个数据库应该再次同步? 但是,我在第三百万行,似乎没有工作。 我的数据库2仍然没有这些300万行,我刚才在数据库1上创build。

PHP,MYSQL和RAM?

我的电脑:Windows Vista Basic,Intel Core 2 Duo 2.8GHZ,4GB内存。 任务pipe理器显示当前正在使用的1.61GB内存。 目前我可以插入每秒从10k到15k行(<1kb /行)。 如果我有一个这样的实际服务器https://www.servint.net/order.php?pkg=27与8GB的RAM和四核2.5GHz的我能够加倍我的插入量或三倍他们也许? 如果我使用这个纯粹是一个MySQL数据库服务器,我会设置任何不同于我将一个普通的服务器? 基本上我想知道哪些因素使您能够增加每秒可以执行的插入量。

启动mysql服务器:相同的权限为根和用户

已经从这里直接从stackoverflow这里,重新发布的问题,并添加my.cnf在一个post的结尾。 到目前为止,在我十多年的linux经验中,我遇到过的所有权限问题已经用chmod -R 777 /path/where/the/problem/has/occured (每一个谎言都有一个真理在里面 :) 这一招不起作用,所以我转向你寻求帮助。 我从头开始用zc.buildout(www。buildout。org)编译mysql服务器。 我通过执行/home/toinbis/…/parts/mysql/bin/mysqld_safe启动它,这个工程。 问题是,我将从supervisor(supervisord。org)脚本内部启动该脚本,并且在部署服务器上使用时,需要使用root权限启动它(以便使用相同的脚本启动nginx服务器,将有权访问80端口)。 问题是, sudo /home/toinbis/…/parts/mysql/bin/mysqld_safe ,失败,生成错误,张贴在下面的错误日志(Apache和Nginx的预期工作)。 http://lists.mysql.com/mysql/216045build议,“有两个错误:一个缺less的表和mysqld无法访问的文件系统”。 mysqldatadir和所有的mysql服务器二进制文件有777的权限,talbe mysql.plugin确实存在并且有777权限(为什么Can't open the mysql.plugin table ?),“sudo touch mysql_datadir / tmp / file”会创build文件Can't create/write to file /home/toinbis/…/runtime/mysql_datadir/tmp/ib4e9Huz ?)。 chgrp -R mysql mysql_datadir并添加“root,toinbis,mysql”用户到mysql组( cat /etc/group | grep mysql输出mysql:x:124:root,toinbis,mysql )没有效果 – 当我启动它时随便的用户,它开始时,作为一个根 – 它失败。 是否MySQL服务器,甚至开始作为根,试图作为其他操作,比方说,'MySQL'用户? 但即使在这种情况下,将mysql用户添加到mysql组,并使所有mysql_datadirs文件属于mysql组应该使事情顺利进行。 我知道,简单地以root和mysql启动一个nginx可能是一个好主意 – 就像一个用户一样,但是这个错误激怒了我,所以投入了足够的精力,所以不仅仅是“使事情有效”,而是也使事情完全按照我最初想要的那样工作,所以要有可能的概念certificate。 这是生成的错误: 091213 […]

家庭networking上的MySQL复制从属

我有一个VPS上的MySQL服务器,我正在复制到我的家庭networking上的从站作为备份。 问题是我没有一个静态的IP地址,所以我已经configuration复制用户被允许从任何主机连接。 我不喜欢这个,因为安全的影响。 将使用DynDNS设置从属服务器的主机名是否工作?

为什么在我的复制过程中(主从),它会不断插入数据,然后删除数据,然后插入数据?

我遵循本教程的主从复制: http : //www.howtoforge.com/mysql_master_master_replication 基本上,这就是我所做的。 卸载两台服务器上的MySQL。 在两台服务器上都安装了mysql。 将数据加载到两台服务器上。 遵循复制过程。 复制删除了我的表,然后再次创build它们。 然后,复制开始在表中插入行。 然后在达到300万行后删除它们,然后再插入行。 为什么不能插入所有的行,并使其与我的主人完全一样? 为什么删除的东西,一遍又一遍地插入? show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: Master_User: Master_Port: Connect_Retry: 60 Master_Log_File: mysql-bin.000025 Read_Master_Log_Pos: 694442541 Relay_Log_File: mysqld-relay-bin.000039 Relay_Log_Pos: 201628150 Relay_Master_Log_File: mysql-bin.000018 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 […]

MySQL不工作在Apache / PHP下

我最近安装了Apache,PHP和MySQL,并且所有三个似乎都单独工作。 然而,我的MySQL和PHP似乎没有在Apache下运行良好 – 当试图连接到数据库,页面挂了几分钟,然后加载没有内容,没有错误信息。 我正在运行Apache 2.2.14,PHP 5.3.1和MySQL 5.1.41。 我已经检查过使用phpinfo()启用MySQL。 在php.ini中的所有设置和扩展设置如下: [MySQL] mysql.allow_local_infile = On mysql.allow_persistent = On mysql.cache_size = 2000 mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_persistent = -1 mysqli.allow_persistent = On mysqli.max_links = -1 mysqli.cache_size = 2000 […]

为PHP设置默认的MySQL连接字符集(在RHEL中)?

我们在运行Gentoo Linux的旧服务器上运行了一百个左右的传统PHP网站。 在build立这些网站时, latin1仍然是PHP和MySQL中常见的字符集。 为了确保那些较旧的站点默认使用latin1 ,同时仍允许较新的站点使用utf8 (我们当前的标准),我们在php.ini中设置默认的连接字符集: mysql.connect_charset = latin1 mysqli.connect_charset = latin1 pdo_mysql.connect_charset = latin1 具体的更现代的网站可以在自举代码中覆盖这个: <?php mysql_set_charset("utf8", $dsn ); …一切都很好。 现在服务器超负荷了,我们不再使用这个托pipe服务器了,所以我们把所有这些站点都转移到了我们的标准托pipe服务器上的一个更快的服务器上,这个服务器使用RHEL 5作为他们select的操作系统。 在设置这个新的服务器时,我惊奇地发现*.connect_charset指令是PHP的Gentoo特定补丁,而RHEL的PHP​​版本不能识别它们! 现在我该如何设置PHP连接到MySQL的拉丁文字符集? 我想在my.cnf中设置一个默认值,但不希望强制每个应用程序和客户端都默认为latin1。 我们的政策是使用utf8,我们只想限制例外PHP。 此外,转换每个遗留网站以正确使用utf8是不可行的,因为许多触摸和你打破了一种。 我们根本没有时间去解决所有问题。 我如何设置一个默认的mysql / mysqli / pdo_mysql连接字符集为latin1为PHP,而仍然允许个别脚本覆盖这与mysql_set_charset()utf8?