搭建多个mysql实例(均使用Ubuntu18虚拟机,mysql5.7)
两种方式
1、 不同主机上分别创建mysql服务,一台机一个mysql。【这个最简单,推荐实用,只要在不同主机上装mysql服务就行,可以参考这篇快速apt-get安装mysql】
2、 同一主机上,同一mysql服务上建立多个实例【这个配置搭建比较复杂,不推荐】
方法1
在每台主机上安装完mysql后,开始进行远程访问配置(这一块主要讲远程配置搭建,具体的主从复制配置留在后面)
一些基本信息
主库 192.168.5.149:3308 user:ying password:newman123
从库1 192.168.5.150:3308
从库2 192.168.5.151:3308
查看用户信息
确保用户的host是 % (表示可以任意主机以该用户身份登录mysql)
修改 /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address 改 0.0.0.0 或者 注释掉
重启 systemctl restart mysql
开放3306端口,服务器需要配置安全组规则,有防火墙需要开放3306
sudo ufw allow 3308
或者直接关了
sudo ufw disable
从库1为例,登录到主库
成功登录
方法2
以创建三个MySQL实例为例,分别对应端口为3306、3307、3308
默认用apt-get 的方式安装好了mysql5.7
停止MySQL并禁止其自动启动
创建目录&文件
一张图表示文件创建结构
数据存放位置
sudo mkdir -p /data/mysql/{3306,3307,3308}
pid 存放目录
sudo mkdir -p /data/mysql/pid
日志文件
sudo touch /data/mysql/error.log
修改目录权限
sudo chown -R mysql:mysql /data
编辑配置文件 ###
-—————————————————
-—————————————————
-—————————————————
编辑 my.cnf文件
使用 mysqld_multi 管理多个实例
sudo vim /etc/mysql/my.cnf
给mysqld目录访问权限
sudo vim /etc/apparmor.d/usr.sbin.mysqld
添加
通过配置文件初始化3306、3307、3308实例
修改目录权限为本机用户
sudo chown -R :root /data
启动命令
mysqld_multi start 3306-3308
查看实例是否运行
mysqld_multi report
设置root密码
尝试连接实例
远程登录mysql
在配置主从复制时,即便是在同一主机下,也要用到远程登录
查看用户信息
select user, host from mysql.user;
确保用户的host是 % (表示可以任意主机以该用户身份登录mysql)
update mysql.user set host='%' where user='[用户名]';flush privileges;
“
修改 /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address 改 0.0.0.0 或者 注释掉
重启 systemctl restart mysql
开放3306端口,服务器需要配置安全组规则,有防火墙需要开放3306
sudo ufw allow 3306
测试登录
mysql -h localhost -u slave3 -p -P 3306 -S /tmp/mysql3306.soc