Articles of mysql

MySQL两个主数据库,用于两个独立的应用程序

我们有两个不同的网站,一个在亚洲数据中心托pipe,称为asiadata.com,另一个在欧洲数据中心托pipe,名为europedata.com。 目前我们只有一个主数据库服务器在欧洲数据中心托pipe,它负责所有这两个网站的写入和复制在欧洲和亚洲数据中心的底层奴隶。这两个应用程序都写在公共数据库上。 我们已经从asiadata.com用户抱怨网站缓慢浏览和发布,并立即在asiadata.com上看不到的东西。 挖掘之后,我们发现数据库是罪魁祸首,因为它需要首先在eurpose数据中心主服务器上写入数据,并且需要返回亚洲数据中心数据库服务器从属服务器以同步数据以及在eurpose数据中心从服务器上。 由于亚洲和欧洲之间的地理距离以及networking延迟,所有这些过程都需要时间。 现在我们决定通过在亚洲和欧洲的数据中心各有多个写服务器(主服务器)来解决这个问题,这样每个站点将在本地写数据,而且两个主服务器也将成为彼此的奴隶。 而且每个主数据中心只负责在其自己的数据中心上复制数据中心上的数据。 为了解决冲突,我们将在代码级别上进行控制。 例如为了避免相同的用户名和其他唯一约束。 希望这可以解决脑裂情况,这将确保两位主人都不会破裂。 有人可以让我知道,如果我错过了多个写主人或任何分裂复制数据库级别的情况? 我认为这将是提高我的应用程序性能的最好方法,但是由于MySQL社区不鼓励多个写主人,所以我害怕构build这个解决scheme。 还有90%的数据库表是MyISAM,复制是单线程的。 恐怕两位大师可能不会因为表级locking而产生最佳性能,因为两位大师同时也是奴隶。 还有没有任何自动化工具可用于解决冲突并解决两个主人之间的复制问题? 总体来说,请评论多硕士是最好的解决scheme,还是有更好的select。

在RHEL6上启用MySQL 5.1.52中的general_log

所以当谈到Linux服务器pipe理时,我有点新鲜的一面。 我目前正在试图启用MySQL的一般日志logging,我正在pipe理运行RHEL6的一个盒子。 基于我已阅读的一切,我应该能够使用以下命令启用慢查询日志logging和一般查询日志logging /etc/rc.d/init.d/mysqld start –general_log=1 –log-output=TABLE –slow_query_log=1 这应该,基于我所知,启用通用日志logging到mysql.general_log表(除了mysql.slow_log表。不幸的是,当我这样做,然后检查MySQL中的全局variables,我看到以下内容。 general_log | OFF 我查看了mysqld手册,它说我可以执行以下操作来查看所有可以提供mysqld的命令/开关。 mysqld –verbose –help 所以我尝试做以下 /etc/rc.d/init.d/mysqld –verbose –help 当我这样做,我看到以下 Usage: /etc/rc.d/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload} 我觉得我已经遇到过这种情况,在/etc/rc.d/init.d目录中的守护进程实际上并不是我需要发出命令的守护进程,但是我不能似乎find任何其他的mysqld。 我的问题如下: 我不在这里? 有守护进程驻留的RHEL的另一个特定位置? 预先感谢您的帮助!

MySQL从5.0升级到5.5

我想从版本5.0(我有5.0.86)升级到5.5(比如5.5.17) 经过一番search,我发现这个方法: 转储数据库,但不是在backup_data.sql中的mysql数据库 这是最重要的一步:在一个文件(可以说mysql.sql)中使用选项–complete-insert和–no-create-info来转储mysql数据库:想法是获得一个类似于安装5.5版本从零开始创build用户。 卸载5.0 – 安装5.5 恢复mysql数据库并刷新权限来恢复它。 恢复其他数据库。 我的问题发生在第4步:当我这样做: mysql -u root mysql < mysql.sql 我得到关于重要主要重复条目的错误。 当我转储MySQL数据库没有选项–complete-insert和–no-create-info –complete-insert –no-create-info ,恢复工作正常,但我获得一个SQL数据库不同,如果我创build一个新的5.5安装程序,这不是我想要的。 任何关于这个问题或任何build议的想法?

恢复mysql.bak

我的开发环境(Mac Lion)在我今天重新启动系统之后刚刚得到解决。 我不确定到底发生了什么,但几乎和我重新安装服务器一样。 我的数据库不见了,我设置的用户也不见了。 似乎有一个可能是最新的我的MySQL文件夹的备份。 /usr/local/包含这些: lrwxr-xr-x 1 root wheel 27 19 Nov 16:18 mysql -> mysql-5.5.18-osx10.6-x86_64 drwxr-xr-x 17 root wheel 578 19 Nov 16:52 mysql-5.5.18-osx10.6-x86_64 drwxr-xr-x 11 root wheel 374 15 Aug 23:02 mysql.bak 所以,如果可以,我该如何从.bak恢复? 另外,奇怪的是,我无法closures我的MySQL。 我已经尝试用Mac偏好窗格和mysqladminclosures它,并立即自动启动。 [编辑] mysql.bak目录的内容是: drwxr-xr-x 41 root wheel 1394 4 Mar 2010 bin drwxr-xr-x 4 root wheel 136 4 […]

服务器I / O攀升,带宽峰值,服务器locking,从哪里开始?

我使用Linode来托pipe一个名为“Shopp”的电子商务插件的WordPress博客。 我几天前从一个以前的共享主机帐户(资源比Linode VPS更less)移动了该网站。 这个问题在以前的主机上没有发生。 每隔几个小时(大约10-11小时不等),我可以看到带宽峰值(“正常”stream量约为400k-600k / s)为1.1mb / s。 同时我可以看到,I / O和SWAP也达到10k-20k之间,导致服务器基本locking。 它locking大约30到40分钟,或者直到我重新启动它。 我已经打开了mysql的慢查询日志,看看我能得到任何线索,但不幸的是所有的查询logging似乎正常(像'select列,从table1其中id = 1',另一个例子,引起了我的眼睛在慢查询日志是'设置名称utf8')。 我怎样才能调查是什么造成这个问题? 有没有一种方法可以肯定地知道问题来自数据库,或者可能是服务器上的一个PHP文件? 从这里继续下去的最好方法是什么? PS:运行Ubuntu 10.04,32位,最新的mysql / php / apache2和使用Linode 1024

基于删除触发器的Mysql归档解决scheme

有人可以帮助我一个归档解决scheme,其中一个表中的行删除触发器引发,并将该行移动到另一个表和一个归档数据库下。 归档表模式应与当前表模式保持同步

Subversion和MySQL在分支中工作时如何合并数据库更改?

我刚刚开始使用颠覆,如果我把树干复制到一个分支来工作一些新的devise和function。 我应该创build一个生产数据库的副本吗? 从我的分支文件(Zend项目)连接到这个新的开发数据库。 进行任何必要的更改,例如添加新字段以创build新表格等,然后准备好将分支合并到主干。 使用开发数据库更改更新生产数据库? 如果是的话,什么是一些好的方法来合并或更新生产数据库? 谢谢

我将如何设置MySQL数据库主机

我有一个VPS,并设置了虚拟主机,所以我不能托pipe网站,即时通讯要给每个用户能够在MySQL中创build自己的数据库,我有phpmyadmin安装,所以可以login到该数据库的查看,但我想'用户'能够login,只能看到那里的数据库。 处理这个问题的最好方法是什么? 谢谢

Failed Dependency:libmysqlclient.so.15作为Sphinx Install的一部分

我正在运行CentOS 5.7,并试图安装Sphinx Search,但不断收到依赖错误。 $ yum install sphinx … Error: Missing Dependency: libmysqlclient.so.15 is needed by package sphinx-0.9.8.1-3.el5.i386 (epel) Error: Missing Dependency: libmysqlclient.so.15(libmysqlclient_15) is needed by package sphinx-0.9.8.1-3.el5.i386 (epel) …. 我有libmysqlclient.so.16作为MySQL / MySQL-devel的一部分。 我的问题:有没有办法在同一个系统上安装libmysqlclient.so的v15和v16,如果有的话,我该怎么办? 我search了高低,似乎无法find答案; 希望有一些在这里可以帮助。 谢谢!

如何修复mysql数据库

我有一个数据库服务器(Fedora 14),其中mysql是作为数据库服务器运行的。 最近服务器崩溃了,我只能从服务器上获取数据库目录。 我试图把我的数据库目录从分解服务器中获取到另一台PC(也是Fedora 14)上运行的mysql服务器上,但是只有三个表有数据,而且显示了表名,我尝试执行查询,它说表不可用,除了三个表。 那个数据库里有30个表格。 请告诉我一种方法来恢复那些缺less的表格。 我试图修复表如下,但它不是成功, mysql> show tables; +———————–+ | Tables_in_ofm_mnu_jvs | +———————–+ | Company | | CostCenters | | CostVariable | | Des_Note | | EDN_Main | | EDN_Sub | | Factory | | ICMT_Main | | ICMT_Sub | | IMT_Main | | IMT_Sub | | ItemLedger | | JC_InOutCrop | […]