在linux 中装多个mysql服务
- 在linux中装多个mysql服务,采用端口号不同来区分。
- 在linux下创建目录 /path/myenv
- 使用源码安装,源码下载:https://downloads.mysql.com/archives/community/ 选择合适的版本下载到linux 目录 /tmp 下。
- 然后 tar -xzvf mysql5.xx.tar.gz -C /path/myenv ,解压到新创建的目录
- 进入到/path/myenv目录,对mysql5.xxx 重命名为mysql。 mv mysql5.xx mysql
- 回到/path/myuenv 目录,创建 data目录,进入data目录,创建四个文件,mysql.sock、mysql.pid、error.log、my.cnf
- 前三个文件不要动,重要修改my.cnf
[mysqld]
pid-file=/path/myenv/data/mysql.pid
socket=/path/myenv/mysql.sock
port=13306
basedir=/path/myenv/mysql
datadir=/path/myenv/mysql/data
tmpdir=/tmp
server-id = 101
[mysqld_safe]
log-error=/path/myenv/data/error.log
- 解释上面这个my.cnf 文档含义
- 必须保证 pid-file 的值和linux上其他mysql服务不一样。pid-file 里面存的是mysql服务的pid号。mysql 停止服务或者重启服务就靠它了。
- 必须保证 socket 的值和linux 上其他mysql服务不一样。这个值在我理解划定了mysql客户端要和那个mysql服务连接。
- 必须保证port 的值不一样,不同的mysql服务端口号必须不一样。建议填10000以上的,填之前 lsof -i 端口 看一下是否端口被使用。
- 必须保证basedir 的值不一样,这个值代表的mysql服务的安装目录
- 必须保证datadir 的值不一样,这个值代表的mysql服务的数据文件目录
- tmpdir 可以相同,mysql服务临时目录,可能会存放一些mysql的临时表之类的。
- 建议使用mysqld_safe 来启动mysql服务。所以配置 [mysqld_safe]
- log-error的值也应该不一样,存放的是mysql服务的日志信息
- 其余的选项不用管。
- 配置完my.cnf 之后,可以去启动mysql服务了。在/path/myenv/mysql目录下执行:
./bin/mysqld_safe --defaults-file=/path/myenv/data/my.cnf --user=root --skip-grant-tables &- 上面的命令,mysqld_safe 启动比较安全。了解更多看官方说明。–defaults-file 这个参数必须放在第一个,命令要求,意思是只去关注这个文件中的配置。注意是只。–skip-grant-tables 这个参数是登录mysql服务跳过检查。别忘了 & 后台运行。
- 之后 ps -ef | grep mysql 去查看是否启动成功。
- 此时验证mysql服务。这样登录 mysql -uroot -S /path/myenv/data/mysql.sock 便可登录,不能忘了 -S 参数选项,否则可能会登录到别的mysql服务。
- 哪一步骤出现问题,看日志看日志。
如果有解决不了的问题,欢迎和我沟通。QQ:1251108673