利用mysqld_multi在一台服务器上启动多个mysql服务


需求如下:

  1. 在服务器上启动2个mysql服务
  2. 两个服务的数据路径分别为:mysql5/var/data1,mysql5/var/data2
  3. 两个服务的端口分别为:3307,3308

详细步骤:

  1. 确保mysql/data1和mysql/data2已经安装mysql的初始授权表(具体方法可参考Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 问题的解决方法中解决方法部分)
  2. 修改etc/my.cnf,添加[mysqld_multi],[mysqld1]和[mysqld2]配置项,以下是一份示例:
    #config for mysqld
    [mysqld]
    port        = 3306
    socket      = /home/sunlisten/mysql5/tmp/mysql.sock
    pid-file    = /home/sunlisten/mysql5/var/mysql.pid
    basedir     = /home/sunlisten/mysql5/
    datadir     = /home/sunlisten/mysql5/var
    
    log-bin           = mysql-bin
    tmpdir            = /home/sunlisten/mysql5/tmp/
    log-error        = /home/sunlisten/mysql5/log/mysql.err
    log-slow-queries=/home/sunlisten/mysql5/log/slow.log
    log                 = /home/sunlisten/mysql5/log/mysql.log
    
    
    #about mysqld_multi
    [mysqld_multi]
    mysqld     = /home/sunlisten/mysql5/bin/mysqld_safe
    mysqladmin = /home/sunlisten/mysql5/bin/mysqladmin
    user       = root  
    
    [mysqld1]
    port        = 3307  
    socket      = /home/sunlisten/mysql5/tmp/mysql1.sock
    pid-file    = /home/sunlisten/mysql5/var/mysql1.pid
    basedir     = /home/sunlisten/mysql5/
    datadir     = /home/sunliten/mysql5/var/data1
    
    [mysqld2]
    port        = 3308
    socket      = /home/sunlisten/mysql5/tmp/mysql2.sock
    pid-file    = /home/sunlisten/mysql5/var/mysql2.pid
    basedir     = /home/sunlisten/mysql5/
    datadir     = /home/sunliten/mysql5/var/data2
  3. 启动这两个mysql服务:

             在mysql安装目录下执行:./bin/mysqld_multi start 1,2

测试是否成功:

             在mysql安装目录下执行:./bin/mysql -uroot -h127.0.0.1 -P3307

             如果登录mysql客户端成功,说明3307端口已经启动成功,3308端口的服务也可以这样验证。

             通过这种方式,你就可以在一台服务器上启动多个mysql,他们还可以建立主从的关系。适合想在单机上部署多套测试环境的情况。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一台服务器上安装并启动多个 MySQL 服务是可行的,可以按照以下步骤操作: 1. 安装 MySQL 按照正常的方式安装 MySQL,可以使用不同的安装方式,比如通过 apt-get 或 yum 安装。 2. 复制 MySQL 配置文件 MySQL 的配置文件默认路径为 `/etc/mysql/my.cnf`,复制该文件并重命名,比如: ``` sudo cp /etc/mysql/my.cnf /etc/mysql/my1.cnf sudo cp /etc/mysql/my.cnf /etc/mysql/my2.cnf ``` 这样就得到了两个新的配置文件 `my1.cnf` 和 `my2.cnf`。 3. 修改配置文件 打开新的配置文件,修改以下内容: - datadir:指定新的数据目录,比如 `/var/lib/mysql1` 和 `/var/lib/mysql2`。 - socket:指定新的 socket 文件位置,比如 `/var/run/mysqld/mysqld1.sock` 和 `/var/run/mysqld/mysqld2.sock`。 - port:指定新的端口号,比如 3307 和 3308。 - pid-file:指定新的 PID 文件位置,比如 `/var/run/mysqld/mysqld1.pid` 和 `/var/run/mysqld/mysqld2.pid`。 4. 复制数据目录 使用以下命令复制 MySQL 的数据目录: ``` sudo cp -R /var/lib/mysql /var/lib/mysql1 sudo cp -R /var/lib/mysql /var/lib/mysql2 ``` 5. 修改数据目录权限 使用以下命令修改数据目录的权限: ``` sudo chown -R mysql:mysql /var/lib/mysql1 sudo chown -R mysql:mysql /var/lib/mysql2 ``` 6. 启动 MySQL 使用以下命令启动 MySQL: ``` sudo mysqld_safe --defaults-file=/etc/mysql/my1.cnf & sudo mysqld_safe --defaults-file=/etc/mysql/my2.cnf & ``` 这样就启动了两个 MySQL 实例,分别使用不同的配置文件、数据目录、PID 文件和端口号。 7. 验证 MySQL 是否启动成功 可以使用以下命令查看 MySQL 是否启动成功: ``` sudo netstat -tlnp | grep mysql ``` 如果成功启动,会显示两个 MySQL 实例的端口号和 PID。 以上就是在一台服务器上安装并启动多个 MySQL 服务的完整步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值