数据库
首页 > 数据库> > 在mysql中更改默认的my.cnf路径

在mysql中更改默认的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脚本需要能够定位并正确关闭每个脚本.

标签:mysql,multiple-instances,my-cnf
来源: https://codeday.me/bug/20190518/1129028.html