use*_*941 5 mysql multiple-instances my.cnf
我在同一台机器上有两个mysql实例.安装在/ usr/loca/mysql1和/ usr/local/mysql2上.
我在/ etc/mysql1和/ etc/mysql2中有单独的my.cnf文件.我使用source distribution和--prefix =/usr/local/mysql1选项安装了我的第一个sql实例.第二个我从复制和pastinf同一目录到/ usr/local/mysql2.
当我在/usr.local/mysql/libexec上启动mysql守护进程时,它会读取/ etc/mysql1中的my.cnf文件.如果我在/ usr/local/mysql2中启动mysql守护进程,它会读取相同的my.cnf文件.我在这两个位置的.cnf文件中定义了单独的端口号和.sock文件.
我可以在mysqld startup上使用--defaults-file =/etc/mysql2/my.cnf选项在第二个位置读取my.cnf文件.每次启动守护进程时我都不需要输入它.
如果我要有更多的实例,我怎么能指出正确的my.cnf文件来读取每个mysql守护进程.mysqld与my.cnf文件的链接背后的含义是什么?
我如何为每个实例预定义my.cnf文件的位置.
正如您已经发现的那样,MySQL为其配置文件提供了一个已编译的搜索位置.虽然你可以自己重新编译,但是你也发现了mysqld的--defaults-file选项,它指示它使用完全不同的配置路径.与--data-dir结合使用,这意味着你可以启动绑定到不同端口(和地址,如果喜欢)的多个MySQL实例,并使用完全独立的数据集,同时处理相同的二进制文件和库.
传统上,大多数操作系统发行版将捆绑单个init脚本以启动MySQL的"默认"实例; 也就是说,安装在"通常"位置的那个,以及标准配置路径.虽然这是为了迎合最常见的情况,但您所追求的有点不同,因此您需要创建单独的脚本来启动单独的实例.
如果你计划在同一台机器上部署大量的MySQL实例(我不得不问为什么),那么你可能想要编写一个自定义的init脚本,它有一些方法可以"发现"每一个(也许)通过检查包含"公共"布局的某个目录,然后遍历它们,从每个目录开始.当然,相同的init脚本需要能够定位并正确关闭每个脚本.