我正在开发一个项目,该项目在不同端口(3306、3307、3308)上运行多个 mysql 实例,端口的变化是用户名和密码以及密码被拒绝的原因,但是我不确定系统管理员为什么会选择这样做,有人可以帮助澄清为什么要运行多个 MySQL 实例,这可能会导致对不同实例上的用户名和权限的混淆?
2 回答
正确利用现有硬件 - 目前在标准设置中,MySQl 查询在单个线程中运行,( http://lists.mysql.com/internals/37589) 拥有多个实例可以更好地利用您的硬件,尤其是 CPU 内核。如果您的应用程序使用涉及大量连接的多个数据库,那么将不同的数据库拆分到不同的端口可以让您更有效地利用硬件。同样关于复制,可以使用多个版本来支持从属服务器,“横向扩展解决方案 - 在多个从属服务器之间分散负载以提高性能。在这种环境下,所有写入和更新都必须在主服务器上进行。然而,读取可能发生在一个或多个从属设备上。这种模型可以提高写入性能(因为主设备专用于更新),同时显着提高越来越多从属设备的读取速度。http://dev.mysql.com/doc/refman/5.0/en/replication.html
运行多个版本 - 拥有多个实例还允许您为开发人员提供各种版本以用于测试和集成目的。“在某些情况下,您可能希望在一台机器上运行多个 MySQL 实例。您可能希望测试新的 MySQL 版本,同时不干扰现有的生产设置。或者您可能希望让不同的用户访问不同的 mysqld 服务器他们自己管理。(例如,您可能是 Internet 服务提供商,希望为不同的客户提供独立的 MySQL 安装。)” http://dev.mysql.com/doc/refman/5.5/en/multiple-servers。 html
减少许可硬件/操作系统成本和更小/可管理的数据中心占地面积以及通常减少的开销 - 如果您担心硬件或操作系统上的许可证,那么在单台机器上运行应用程序的多个实例的能力显然会吸引您不需要额外的机器和操作系统来运行更多版本,也减少了单独机器的支持和维护成本。
这是一篇关于上述方法实施的优秀文章,我承认的要点给出了这个答案的结构:http: //opensourcedbms.com/dbms/running-multiple-mysql-5-6-instances-on-one-服务器在-centos-6rhel-6fedora/
可能是开发、测试和生产实例。
(虽然我可能只有一个,带有开发、测试和生产数据库)。