mac mysql 多实例_mac下安装多个mysql实例

本文介绍了如何在Mac上安装多个MySQL实例,包括下载MySQL压缩包、解压、创建数据目录、初始化实例、配置环境变量、启动多实例以及设置主从复制。通过详细步骤,读者可以了解到在Mac环境下实现MySQL集群的基础操作。
摘要由CSDN通过智能技术生成

多实例安装

首先上mysql官网https://dev.mysql.com/downloads/mysql/下载最新版的mysql,由于要安装多个mysql实例,这里我选择压缩包版本的mysql手动安装。

下载macOS 10.14 (x86, 64-bit), TAR这个版本后,运行tar -xvf命令进行解压,这里我解压到~/software/mysql-bin/mysql

如果需要的话,可以将mysql目录设置软链接到/usr/local/mysql,类似于这样 ln -s ~/software/mysql-bin/mysql /usr/local/mysql,这一步需要root权限

接下来,可以根据需要创建的mysql实例个数来创建mysql数据目录,这里我要创建两个实例,所以我新建了两个目录~/software/mysql-cluster/master和~/software/mysql-cluster/slave

然后将mysql执行目录配置到环境变量中

执行以下两条初始化命令,加上--initialize-insecure参数则生成的root用户没有密码,否则mysql初始化时随机生成一个密码并输入到日志文件中

mysqld --datadir=~/software/mysql-cluster/mysql-master/data  --initialize --initialize-insecure

mysqld --datadir=~/software/mysql-cluster/mysql-slave/data  --initialize --initialize-insecure

由于要启动多个实例,需要用到mysqld_multi命令,多个数据库实例公用一个配置文件,如下所示

[mysqld_multi]

#mysqld= /usr/local/mysql/bin/mysqld_safe

mysqladmin= /usr/local/mysql/bin/mysqladmin

user=root

password=root

[mysqld3307]

server-id=3307port=3307log-bin=mysql-bin

log-error=~/software/mysql-cluster/mysql-master/mysqld.log

tmpdir=~/software/mysql-cluster/mysql-master

slow_query_log=on

slow_query_log_file=~/software/mysql-cluster/mysql-master/mysql-slow.log

long_query_time=1socket=~/software/mysql-cluster/mysql-master/mysql_3307.sock

pid-file=~/software/mysql-cluster/mysql-master/mysql.pid

basedir=~/software/mysql-cluster/mysql-master

datadir=~/software/mysql-cluster/mysql-master/data

[mysqld3308]

server-id=3308port=3308log-bin=mysql-bin

log-error=~/software/mysql-cluster/mysql-slave/mysqld.log

tmpdir=~/software/mysql-cluster/mysql-slave

slow_query_log=on

slow_query_log_file=~/software/mysql-cluster/mysql-slave/mysql-slow.log

long_query_time=1socket=~/software/mysql-cluster/mysql-slave/mysql_3308.sock

pid-file=~/software/mysql-cluster/mysql-slave/mysql.pid

basedir=~/software/mysql-cluster/mysql-slave

datadir=~/software/mysql-cluster/mysql-slave/data

read_only=1[mysqld]

character_set_server=utf8

接下来,运行mysqld_multi --default-files=cluster.conf start即可启动所有mysql实例

配置主从复制

连接上主mysql,创建用于复制的用户并赋予复制权限:

mysql> create user 'copy'@'%' identified by 'copy';

Query OK,0 rows affected (0.07sec)

mysql> grant replication slave on *.* to 'copy'@'%';

Query OK,0 rows affected (0.02 sec)

执行show master status命令

mysql>show master status;+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000002 | 1166 | | | |

+------------------+----------+--------------+------------------+-------------------+

连接从mysql,设置master信息并启动slave:

mysql> change master to master_host='127.0.0.1', master_port=3307,master_user='copy',master_password='copy',master_log_file='mysql-bin.000002',master_log_pos=1166;

Query OK,0 rows affected, 1 warning (0.10sec)

mysql>start slave;

Query OK,0 rows affected (0.01 sec)

执行show slave status命令,查看slave状态,发现Slave_IO_State是Waiting for master to send event,Slave_IO_Running和Slave_SQL_Running状态是YES就说明设置成功

mysql>show slave status\G;*************************** 1. row ***************************Slave_IO_State: Waitingformaster to send event

Master_Host:127.0.0.1Master_User: copy

Master_Port:3307Connect_Retry:60Master_Log_File: mysql-bin.000002Read_Master_Log_Pos:1166Relay_Log_File:192-relay-bin.000002Relay_Log_Pos:322Relay_Master_Log_File: mysql-bin.000002Slave_IO_Running: Yes

Slave_SQL_Running: Yes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值