我有一个Apache Tomcat 7服务器。 我有一个相当复杂的Java Servlet应用程序在其上运行,每个POST需要一些MySQL查询。 因此,我需要一个MySQL数据库连接来执行查询。 目前我使用下面的Java代码来创build数据源: //db is for example: jdbc:mysql://127.0.0.1:3306/databasename DataSource ds = new DataSource(initPoolProperties(db, user, pass)); private PoolProperties initPoolProperties(String db, String user, String pass) { PoolProperties defaultPoolProperties = new PoolProperties(); defaultPoolProperties.setUrl(db); defaultPoolProperties.setUsername(user); defaultPoolProperties.setPassword(pass); defaultPoolProperties.setDriverClassName("com.mysql.jdbc.Driver"); // And a long list of properties here … return defaultPoolProperties; } 在我的整个分层Java Servlet应用程序中,我只为每个POST创build一个每个数据库连接的DataSource(通过HTML表单浏览网站)。 在此之后,我使用了几次ds.getConnection()来获得执行一些MySQL查询所需的连接。 每个人似乎都使用JNDI数据源。 这意味着他们在应用程序的context.xml中定义一个标记,并使用JNDI查找来获取数据源,并按照我的方式使用连接。 问题在于我在这里实际上做着同样的事情。 […]
我正在运行一个快速增长的Saas服务。 客户是电子商务网站,我们在每个客户网站的每个页面浏览量(目前是10M点击量/天)都会受到影响。 当前的体系结构是Mysql主/从场(在EC2上使用scalr.net运行)。 我们不断增加新的客户到农场,直到索引占用RAM的70%,然后为下一个客户打开一个新的农场。 显然,随着我们的发展,这个架构正在成为一个问题,原因有两个:1)一旦客户或less数客户在他们的网站上stream量很大,他们所在的农场就可能成为瓶颈。 2)目前我们有4个农场,但是我们可以很容易地到达很多难以维护的农场。 你会推荐什么样的策略来实现长期增长? 大部分数据适用于密钥存储。 我们没有外键和less量的连接。 谢谢!
我试图在CentOS 6上用mysql_pdo编译PHP,而且我只有一个时间试着去实现它。 目前我正在编译PHP 5.2,但是我将不得不为5.3做这个,因为我需要更改版本。 这是我使用的configuration命令: ./configure –with-apxs2 –with-mysql –with-mysqli –with-curl -enable-soap -enable-sockets –enable-mbstring –with-gd –with-mcrypt –with-pdo-mysql=/usr/bin/mysql 我从一个仓库安装了MySQL和mysql-devel,我得到的错误如下: configure: error: PDO_MYSQL configure failed. Please check config.log for more information 当我检查config.log,我看到的最后一行是: configuration:72788:在-lmysqlclient中检查mysql_query 我有一种感觉,我正在使用–with-pdo-mysql的错误值,但我试过不给它一个path或告诉它使用mysqlnd,我得到一个错误,说它无法findMySQL,如果我把它留给空白,当我把path放进去的时候也给了我同样的错误。 有人有主意吗? 编辑:我不知道这是否相关,但我发现我有位于/ usr / lib / mysql的libmysqlclient.so文件。
我更新到MySQL 5.5,并注意到服务器没有启动了,但我不得不手动做。 实际上并没有设定从任何级别开始。 所以我做了 chkconfig -s mysql 2345 但我得到所有这些错误 The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. insserv: warning: script 'hwclock' missing LSB tags and overrides The script you are attempting to invoke has been converted to an Upstart job, but […]
我在一台Mac上遇到了一个奇怪的问题:当select返回大的结果集(> 10.000行)时,该机器上的sql客户端挂起。 它不返回任何东西,只是等待。 所有其他机器可以运行查询没有任何问题。 更奇怪的是,Mac可以在暂存mysql上执行该查询,而不会有任何问题。 它只有活的mysql服务器实例的问题。 有什么build议我应该检查? my.cnf与其他mac上的configuration相同。
mysql插件的man页面声明值是每秒,但是我已经为write_http插件设置了一个HTTP服务器,并且我收到了像PUTVAL r6/mysql-wormly_shm/mysql_commands-update interval=2 1336122875:6279 ,其中6279是更新的总数。 我如何获得每秒的数字?
理论上的小问题。 我已经完成了一些2节点的MySQL 5.1集群用户对多个MMM实例的控制。 我们开始了一些testing,快乐地杀死了作家节点,并且一切顺利,应用程序一路畅通,忘却了DBMS的混乱。 然后我想,如果在生产中第一个服务器A停机,服务器B接pipe,更多的工作完成,最后B也停止。 如果系统pipe理员首先从A重新启动集群,然后joinB,同时在A的过期数据上完成工作? MySQL是否有一个仲裁机制,使A(甚至B)处于恢复模式,直到它确定了最新的事务继续? 非常感谢,如果这是一个常见问题…
我正在使用XAMPP在我们的客户端的一堆远程笔记本电脑上运行Apache,PHP和MySQL。 这只是包含所有文件(thumbdrive版本,没有添加或修改registry值)的XAMPP目录。 我有一个安装文件,在XAMPP目录下运行start.bat的用户桌面上放置一个图标。 Start.bat基本上启动Apache,然后是MySQL,然后打开浏览器到localhost。 一切都很好,除了第二次单击图标时,第二个mysqld.exe服务启动。 如果图标被点击两次,Apache不会启动两次,但MySQL会。 我已经尝试了几个Google和堆栈溢出的build议来检查服务是否正在运行,如果是,请停止服务再次启动; 但是,没有一个工作。 启动MySQL的batch file主要有这一个命令: mysql\bin\mysqld –defaults-file=mysql\bin\my.ini –standalone –console 我怎样才能保持mysqld.exe启动两次? 另外,如果它运行两次是不是很重要? 从PHP运行查询会导致任何问题吗?
我们有一个运行SQL-Server的生产服务器,它保存我们的后端数据,例如客户信息,销售发票等。这些数据的性质是“旧”数据可以改变,例如客户更新他们的地址。 目前,我们使用Windows Server 2008实例作为研究服务器,以便我们可以在其上运行MS-SQL从站,从事活动服务器以事务方式进行复制。 然后,我们每天从从机输出平面文件到我们的研究模式,这恰好是一个MySQL数据库。 我们通过将从数据读入一些algorithm来实现这一点,这些algorithm修改并将数据写入MySQL研究数据库。 我们删除研究数据库中的所有表格,并每天进行干净的导入以处理生产数据库和从属数据库中可能发生变化的“旧”数据。 因此,从实况数据库到我们的研究模式,实质上总是需要每天进行完整的转储和重新导入,这对我们来说是很好的,因为这些都是在本地完成的。 不幸的是,我们在MS-SQL复制和Windows服务器上都遇到了很多问题。 这些问题的来源实际上大多是以人为本而不是技术。 但是,我们增加了一些问题,我们不得不使用其他Linux应用程序服务器,因为在Windows上运行我们需要的一些平台/堆栈在Windows上很难。 我想把我们的研究服务器移动到一个我更熟悉的,能够正确pipe理和configuration的Linux机器上,但是我不知道最好的行动计划,从实时MS-SQL数据库到我们的研究MySQL模式,因为我们现在不会有活动复制到奴隶的选项。 基本上: 大约有5个SQL Server表总共〜3GB 我们的IT人员担心生产服务器上的IO负载,如果我们每天做3GB的出口(目前我们做事务复制到一个从机,然后从从机输出3GB)。 我们将SQL-Server数据更新到我们的研究模式的更新过程期望每天都进行整个导入,但是当然从平面文件/ SQL文件或表中导入并不重要。 所以,我们知道,无论如何,我们将会对SQL-Server数据进行平面文件导入,但问题是,是否有一种明智的方式来每天从MS-SQL表中导出数据,而不必做一个完整的转储? 我不是在谈论复制,因为在接收端不会有MS-SQL实例,因为它是一个Linux服务器。 但是,是否可以从MS-SQL服务器只导出已经修改了字段的行? 也就是说,在不修改SQL-Server表的schema的情况下当然要标记编辑的行… 🙂 SQL服务器可以保存修改的行或任何东西的日志? 如果没有这一切,是否有人有一个关于是否预计在每次进行3GB导出时,预算不足的SQL Server实例会跌倒? 这一点我不是真的买…我们正在谈论在早上几个小时的数据库负载最小(我们是一个小型的B2B互联网零售商,所以不会期望在这些小时内进行) 。 谢谢!
这是我的setenv.bat(Windows安装)。 这是MySQL企业监控服务经理。 set JAVA_HOME=D:\MYSQL_~2\SERVIC~1\java set JAVA_OPTS= ++JvmOptions="-XX:+UseParallelOldGC" ++JvmOptions="-XX:+UseBiasedLocking" ++JvmOptions="-XX:+HeapDumpOnOutOfMemoryError" ++JvmOptions="-XX:HeapDumpPath=D:\MYSQL_~2\SERVIC~1\apache-tomcat\temp" ++JvmOptions="-Xms128m" ++JvmOptions="-Xmx256m" ++JvmOptions="-XX:MaxPermSize=256m" 我想保持内存占用低于200M(我的意思是在任务pipe理器中查看tomcat6.exe)。 它始终高于400M! 怎么了? 编辑:我的setenv.bat是在tomcat \ bin下