我正在将我们的环境中的CF8实例升级到CF10,但是我遇到了一个奇怪的问题。 数据源使用InnoDB连接到MySQL 5.0.8数据库。 我们目前使用CF8的设置工作正常,但是当我们尝试指向一个CF10实例时,似乎开始在locking表的写入打开连接,并开始阻塞其他连接。 即使连接开始closures,也会导致发生备份,最终导致其他CF主机/应用程序中断。 我必须杀死来自CF10主机的所有连接,以稳定其余部分。 我所做的唯一(明显的)事情是将JDBC连接器从默认的连接器更新到5.0.8版本,但这并没有帮助。 任何想法,为什么CF10会performance不同于CF8?
我目前正在尝试在两台服务器之间build立Master-Master MySQL复制,但是我遇到了一个不寻常的问题。 我在我的MySQL日志上得到这个错误: Slave: Table 'phpmyadmin.pma_recent' doesn't exist Error_code: 1146 而且我看到这张表“pma_recent”确实不存在于这个特定的服务器上,但在另一台服务器上,我正在设置这个复制。 任何想法,我应该在这里做什么? 我是否应该考虑在服务器上添加此表以获取错误,或者将其移除?
看来在Ubuntu 14.04机器上,用户mysql不能访问任何内容。 这不是写日志,也不是读文件。 见证: – bruno():mysql$ cat /etc/passwd | grep mysql mysql:x:116:127:MySQL Server,,,:/nonexistent:/bin/false – bruno():mysql$ sudo mysql_install_db Installing MySQL system tables… 140818 18:16:50 [ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys' 140818 18:16:50 [ERROR] Aborting 140818 18:16:50 [Note] Installation of system tables failed! Examine the logs in /var/lib/mysql for more information. …boilerplate trimmed… – bruno():mysql$ ls -la […]
我的服务器出现性能问题,加载速度慢,页面没有加载等,所以我通过SSHlogin后运行“top”命令。 我注意到CPU一直保持高达40%的上下跳动,实际上没有人访问该网站。 我有其他(不太强大)的服务器,以1-5%的rest心率,所以我知道有什么地方是错误的。 我login到MySQL,启用通用日志logging,这是我发现: event_time Descending 1 user_host thread_id server_id command_type argument 2014-09-20 04:35:07 [root] @ localhost [] 46833 0 Connect root@localhost on 2014-09-20 04:35:07 [root] @ localhost [] 46834 0 Connect root@localhost on 2014-09-20 04:35:04 [root] @ localhost [] 46832 0 Connect root@localhost on 2014-09-20 04:35:03 [root] @ localhost [] 46829 0 Connect root@localhost […]
我刚刚阅读了这个旧的问答,其中有一些与我们类似的设置非常详细的信息,不幸的是我们的问题(现在)不是复制。 MySQL复制性能 我们有一个新的master数据库服务器(服务器版本: 5.5.27 -log MySQL社区服务器),在裸机服务器上有以下规格: 2个英特尔E5-2620-v2 64Gb内存 2个Fusion-io 600Gb卡(Raid 1),用于MySql 1个SSD为Centos 6.5 1Gbpsnetworking HyperThreading在服务器上没有被禁用,因为对这是否对大内存系统有帮助有不同的看法,但我们并不反对尝试它。 我们目前正在复制到在SSD集群上虚拟化的3个从站。 我们正在复制到4,但这对于SSD集群来说似乎太多了,我们有一段时间的滞后。 所有的表都是InnoDB,master DB和slave Writer都在3.5K到2.5K之间,而master上的读取大约是7.5k到10k qps 。 主数据库的设置如下所示: long-query-time=10 slow-query-log max_connections=500 max_tmp_tables=1024 key_buffer = 1024M max_allowed_packet = 32M net_read_timeout=180 net_write_timeout=180 table_cache = 512 thread_cache = 32 thread_concurrency = 4 query_cache_type = 0 query_cache_size = 0M innodb_file_per_table innodb_file_format=barracuda innodb_buffer_pool_size=49152M innodb_buffer_pool_instances=2 innodb_read_io_threads=16 […]
我在我的Ubuntu 14.04服务器上安装了monit,并将其configuration为使用monitrc中的以下configuration来监视mysql。 check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" 现在来testing我closuresmysql用户 service mysql stop Monit确实重启了服务器,但问题是当我像下面那样服务于mysql状态的时候 service mysql status 表明 mysql stop/waiting 但是当我这样做 ps -e | grep "mysql" 我看到mysqld服务正在运行。 任何想法,为什么服务MySQL状态不会显示我运行? 谢谢!
所以我使用一个mysql数据库的master-master复制和两者之间的负载均衡stream量。 这导致服务器A的所有交易都有一个二进制日志,服务器B的二进制日志只有它的交易。 每台服务器还有另一台服务器的二进制日志的复制日志。 问题是,如果我们有一个灾难(即一个错误的sql语句删除太多),并需要恢复最后一晚的备份,我们想恢复数据库使用二进制日志,直到坏的SQL声明。 但是我们有两个二进制日志,每个都包含所有运行的语句。 如何将两个文件合并为一个,同时确保每个文件中的条目保持按时间顺序排列? 在每个文件上运行mysqlbinlog后,我可以得到一个可读的sql文件。 每个文件都有时间戳,但是我需要找出一种方法来读取每个文件,并通过它们来确定下一个语句何时进入组合文件。 任何build议如何做到这一点?
我有一个运行OS X 10.6.8的Mac Pro(型号标识符:MacPro5,1)。 这台机器向网上提供了几个MySQL数据库(v.5.0.92)以及一个Redmine安装(一个Subversion版本库)。 服务器pipe理是使用“服务器”应用程序堆栈(/ Applications / Server / Server Admin.app等)完成的。 我正在考虑将系统更新到Yosemite(以及新的Server.app),但是我很犹豫,看到一些关于MySQL安装问题的报告,以及Ruby框架的问题。 我的问题是: 在服务器设置中,有没有一些从10.6更新到10.10的经验? 更新步骤是否更明智,即先更新到10.8,再更新到10.10? 如果是,为什么? 为了更新MySQL安装,需要采取哪些步骤? 再说一次,升级更合理吗? 编辑:我现在试图简单地运行升级到优胜美地,直接在雪豹之上(显然,我以前通过使用外部高清时间机器备份整个系统)。 然后,我使用App Store安装了新的Server.app应用程序。 之后,出现了以下问题: MySQL仍处于原始位置(/ usr / local),但无法在terminal中运行,抱怨缺less套接字文件。 安装更新的MySQL二进制文件不能解决问题; 我会再做进一步的研究和报告。 我的Ruby / Redmine安装也没有运行。 我担心的是,我将不得不彻底重新安装Redmine,因为安装程序与Snow Leopard和Yosemite不同。 设置系统的这一部分特别痛苦(例如,让Redmine与SVN进行通信)。 因为我需要一个正在运行的系统,所以在尝试使用我的Snow Leopard备份之后,我再次降级。 总之,如果没有来自安全方面的实际压力,我几乎总是不做升级。
在CentOS 7上,我有一个MySQL(实际上是MariaDB)数据库用户,需要来自远程IP的所有服务器权限(能够使用Navicat Premium来pipe理数据库)。 不知怎的,每隔一段时间,这个用户就会失去“ 创build临时表 ”和“ locking表 ”权限。 使用mysql控制台我每次修复这个: grant all privileges on *.* to 'user123'@'%' IDENTIFIED BY 'pass123'; 我已经做了以下,以防止远程用户权限被重置: touch /etc/securemysqldisable 但是这并不妨碍这种事情的发生。 什么导致权限被重置?
Debian / Ubuntu软件包中用于MySQL 的preinst脚本将MySQL服务器的默认主目录设置为/ nonexistent ,这可能是一种安全措施 – MySQL服务器具有自己的datadirpath,它像home目录一样使用。 然而,这样做的一个副作用是,当MySQL启动时,它会产生这样的信息: No directory, logging in with HOME=/ 这里我关心的是从安全的angular度来看,这并不好看。 这表明它会推动MySQL尝试在/创build文件; 显然它应该不会因为权限而这样做,但是它甚至不会尝试。 我已经看到了通过创build主目录来“解决”这个问题的答案 ,但是这样做似乎没有任何意义,因为这样做的意义不大,尽pipe它可能是“安全的”,因为MySQL也被设置为使用/bin/false它的壳。 将其设置为存在并且MySQL拥有所有权(比如/var/lib/mysql会更安全吗? 或者创build文件夹,但不允许MySQL写入它? 有更清洁的解决scheme吗?