Articles of mysql

错误代码1005(错误:121)创build表时从一个转储恢复MySQL数据库

我有一个Linux prod机器和Win7 64位开发机器。 我的工作stream程包括在Linux机器上转储生产MySQL数据库,并将其恢复到Windows机器上的本地MySQL数据库(使用SQLyog)。 这工作很长时间。 以下一些麻烦,我格式化并重新安装我的Windows开发机器。 从那以后我无法恢复它的数据库。 我不断收到以下错误: Query: CREATE TABLE `auth_group` ( `id` int(11) NOT NULL auto_increment, `name` varchar(80) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci Error occured at:2010-06-26 17:16:14 Line no.:30 Error Code: 1005 – Can't create table 'ap_site.auth_group' (errno: 121) 请注意,这是sql转储文件中的第一个create table语句。 […]

MySQL中的Binlogs vs sql转储

我一直在阅读关于mysql的binlogs和sql转储,我有一个疑问:使用binlogs而不是sql转储有什么好处吗? 我知道你可以使用binlog来进行增量备份,但是我不知道binlog是否还有其他的好处。 再见! 谢谢!

如何在Debian Lenny上的Python 2.6源版本上安装MySQLdb?

我已经在我的Debian Lenny服务器上从源代码安装了Python 2.6,因为Lenny没有python2.6包。 所以,我的Python 2.5安装了MySQLdb,工作得很好,因为我安装了python-mysqldb软件包。 我想我可以从源码安装MySQLdb,但是因为我有Lenny python-dev软件包,所以它的版本是2.5: # python setup.py build running build running build_py copying MySQLdb/release.py -> build/lib.linux-x86_64-2.5/MySQLdb running build_ext building '_mysql' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.5 -c _mysql.c -o build/temp.linux-x86_64-2.5/_mysql.o -DBIG_JOINS=1 -fPIC gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-x86_64-2.5/_mysql.o -L/usr/lib/mysql -lmysqlclient_r -o build/lib.linux-x86_64-2.5/_mysql.so 我不想运行python […]

在Postfix中正确的stream量统计

我试图build立一个使用Postfix作为MTA的中继服务器,我需要logging服务器的邮件使用情况(无论是文件还是SQL)。 这个想法是监视主机发送的邮件数量和大小。 我在Postfix中查看了这种stream量统计的几种可能性。 他们可以概括为: 守护进程运行拦截端口25的stream量,logging它,然后发送请求到Postfix 日志文件分析器,通过/ var / log / maillog(用python,C代码编写)来确定#邮件的发送和邮件大小。 分析日志文件将导致重新发送的邮件被计数为双打,而拦截入站端口25的守护进程将不会通知Postfix重新运行它的保留队列。 所以“交通会计”这两种方式肯定会有差异。 一些例子包括: MySQMail-Postfix-Logger: http ://freshmeat.net/projects/mysqmail-postfix-logger pflogsumm(Postfix) 但似乎没有人能够提供非常详细的信息。 我更喜欢尽可能地logging(请求IP,邮件,从,到,邮件ID,接收mta,…)。 你有什么经验吗? 有build议,还是要注意的事情?

什么是在启动MySQL时按顺序执行的文件?

我想debugging哪里挂起mysql启动,所以我需要什么是通过服务启动mysql时顺序执行的文件。 谢谢。

基准Apache

我用以下命令使用ab和siege对Apache / 2.2.3(prefork)进行基准testing: ab -kc 200 -t 120 http://www.mywebsite.com/test.php siege -c200 -t2M http://www.mywebsite.com/test.php test.php是一个非常简单的文件,只是创build一个MySQL连接,然后closures <?php $link = mysql_connect("localhost", "username", "password"); mysql_select_db("dbname"); if(!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> 我得到的结果中有很多失败的请求 。 我想弄清楚如何减less这些失败的请求数量,因为这是一个相当简单的脚本,服务器负载是相当低的,我不应该有一个四核至强3Ghz机8G内存。 来自围城的输出 Transactions: 9438 hits Availability: 98.33 % Elapsed time: 119.39 secs Data transferred: 0.38 MB Response time: […]

Ubuntu上的Apache 2返回500没有已知的原因?

注意:这个问题已经解决 ! 如果您遇到类似问题,请参阅下面的解决scheme。 背景: 这是一个基于PHP / MySQL的数据库驱动的应用程序,大量使用AJAX,几乎所有的服务器请求都以这种方式发生。 在这种情况下请求是GET请求,服务器通过JSON响应。 用户通过返回更精细结果的数据集向内工作。 该应用程序是稳定的,并在生产。 我有能力在3个平台上进行debugging:我的开发笔记本电脑(OSX),内部Ubuntu服务器和生产Ubuntu服务器。 每个Ubuntu服务器都运行一个MySQL服务器和一个Apache的副本。 我的开发笔记本电脑连接到运行在我们内部 Ubuntu服务器上的MySQL服务器,并运行它自己的 Apache服务器。 这两个Ubuntu服务器是9.10,X64,通过官方来源,Apache 2.2.12,PHP 5.2.10完全最新。 现在有趣的部分: 除了数据集的一个小节外,应用程序都会正确返回结果。 本小节中的数据请求总是返回500而不是结果集。 所讨论的小节仅仅是一个基于已知ID返回结果的查询。 logging已知存在,并且不包含损坏的数据。 我已经为Apache打开了debugging日志logging,并且为PHP设置了E_ALL(logging到文件)。 当500发生时,我在Apache的error.log(x的屏蔽)中看到以下内容: [Sun Aug 01 15:43:54 2010] [debug] mod_deflate.c(615): [client 192.168.1.28] Zlib: Compressed 0 to 2 : URL /apps/xxxx/connectors/details_lookup.php, referer: http://xxxx.xxxx.local/apps/xxxx/ 这意味着缺乏数据。 但是,没有任何错误logging到PHP的错误日志。 同时,我可以在数据集的其他地方返回结果,而不会出现问题。 所以你可能会想:“问题必须在数据库中”。 但是 ,当我使用我的开发笔记本电脑(和它自己的Apache副本)连接到我们的内部networking上的同一个MySQL服务器时, 我可以运行生成500的请求,而没有任何错误 。 所以当我在我的笔记本电脑上运行我的Apache服务器上的应用程序,一切都很酷。 当我对同一个数据库服务器上的相同数据库中的相同数据执行相同的请求,而是使用该服务器的Apache本地副本时,失败。 我完全困惑。 […]

未知的表引擎“InnoDB问题

我在我的机器(Windows Server 2008)上安装了MySQL Server 5.1,我selectMyISAM作为默认的数据库存储引擎。 我只是为了testing而在其上创build了一个空的数据库。 后来,我使用MySQL服务器实例configuration向导重新configuration它以使用InnoDB作为默认存储引擎。 现在,当我做出更改并尝试重新启动MySQL服务时,它不断崩溃。 它只是不启动。 我怎样才能访问错误日志,看看有什么问题? 只有当我再次运行服务器configuration向导并select默认的MyISAM引擎时才会启动。 一旦开始,当我做“SHOW ENGINES”时,它会连续显示我InnoDB,但是当我做“SHOW ENGINE INNODB STATUS”时,它会给我发送Unknown table engine'innodb错误。 请帮忙。 谢谢。

在Ubuntu 10.04上用命令行参数重新启动mysqld

用MySql slave设置弄脏我的手,我遇到了一个令人困惑的问题:当我重新启动它并且它被安装的时候,我如何将任意选项传递给mysqld(在这种情况下是–skip-slave-start)作为一个暴发户的工作? 我可以想办法破解它,但是我觉得我一定会漏掉一些明显的东西。 TIA,

在Ubuntu Server 10.04上糟糕的PHP / MySQL查询性能

我只是用标准的LAMPconfiguration做了Ubuntu Server 10.04的清理安装。 然后,我制作了一个小脚本,将插入速度testing成3列的表格。 当我在我的其他机器上运行脚本(centos和fedora)时,我每秒获得大约2000-3000个插入。 在Ubuntu机器上,我每秒获得大约20个插入(相同的确切脚本)。 我尝试切换脚本来使用套接字,但没有改变。 当我做mysql转储和恢复时,mysql执行得非常好,并在大约20秒钟内将1000000条logging加载到表中。 为什么PHP会把这么糟糕的查询速度变成mysql? (我尝试使用pdo和mysqli – 他们都得到相同的结果)。 目前安装: libmysqlclient16 5.1.41-3ubuntu12 mysql-client-5.1 5.1.41-3ubuntu12 mysql-client-core-5.1 5.1.41-3ubuntu12 mysql-common 5.1.41-3ubuntu12 mysql-server 5.1.41-3ubuntu12 mysql-server-5.1 5.1.41-3ubuntu12 mysql-server-core-5.1 5.1.41-3ubuntu12 php5-mysql 5.3.2-1ubuntu4.2 libapache2-mod-php5 5.3.2-1ubuntu4.2 php-apc 3.1.3p1-2 php5-cli 5.3.2-1ubuntu4.2 php5-common 5.3.2-1ubuntu4.2 php5-mysql 5.3.2-1ubuntu4.2 编辑/解决: 我做了一个Ubuntu的重新安装,同样的问题。 我安装了Fedora 13,SAME PROBLEM ….然后在玩了桌子之后,我发现这是一个InnoDB问题(MyISAM每秒插入数千行)。 事实certificate,innodb_flush_log_at_trx_commit被默认为“1”,这意味着它在每次写入时都会刷到磁盘上……这是在杀害我的performance。 由于这是一个蹩脚的消费者戴尔机器,当我切换到innodb_flush_log_at_trx_commit = 0(每秒冲洗)时,演出天空飙升。 我现在可以在45秒内插入1,000,000行。 :d