一、服务器集群搭建:
VagrantFile中加入以下代码,创建3个虚拟机:
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "k8s-node#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "centos7"
config.vm.box_url = "https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box"
# 设置虚拟机的主机名
node.vm.hostname="k8s-node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.56.#{99+i}", netmask: "255.255.255.0"
# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "k8s-node#{i}"
# 设置虚拟机的内存大小
v.memory = 2048
# 设置虚拟机的CPU个数
v.cpus = 2
end
end
end
end
二、修改虚拟机允许密码方式登录,以方便XShell登录。
vi /etc/ssh/sshd_config
password_authentication yes
service sshd restart
三、在VirtualBox中新建NAT网络,让三台虚拟机的网卡1分别选中此Nat网络,并刷新Mac地址,之后无界面启动三台机器。
四、在XShell6中分别新建三个会话连接。双击连接,此时通过ip a 命令查看所有ip应该不一样。
五、 Mysql主从集群:
a)运行Docker
如报已存在相关容器但docker ps没有显示,可以 docker rm 容器号,先删除。
sudo docker run -p 3307:3306 --name mysqlmaster \
-v /mydata/mysql/master/log:/var/log/mysql \
-v /mydata/mysql/master/data:/var/lib/mysql \
-v /mydata/mysql/master/conf:/etc/mysql \
-v /mydata/mysql/master/files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0
sudo docker run -p 3317:3306 --name mysqlslaver1 \
-v /mydata/mysql/slaver/log:/var/log/mysql \
-v /mydata/mysql/slaver/data:/var/lib/mysql \
-v /mydata/mysql/slaver/conf:/etc/mysql \
-v /mydata/mysql/slaver/files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=1234 \
-d mysql:8.0
b)添加主从库配置:
位置:/mydata/mysql/master/conf/my.cnf
注意:server_id 和 read-only
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
skip-character-set-client-handshake
skip-name-resolve
server_id=1
log-bin=mysql-bin
read-only=0
binlog-do-db=ppt-automation
binlog-do-db=ppt-doc
binlog-do-db=ppt-info
binlog-do-db=ppt-order
binlog-do-db=ppt-sso
binlog-do-db=doc
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
位置:/mydata/mysql/slaver/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
skip-character-set-client-handshake
skip-name-resolve
server_id=2
log-bin=mysql-bin
read-only=1
binlog-do-db=ppt-automation
binlog-do-db=ppt-doc
binlog-do-db=ppt-info
binlog-do-db=ppt-order
binlog-do-db=ppt-sso
binlog-do-db=doc
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
c) 启用远程访问及添加同步用户
>>>远程访问开启(在主mysql客户端中执行):
create user root@'%' identified by 'root';
grant all privileges on *.* to root@'%' with grant option;
FLUSH PRIVILEGES;
同步用户:
create user backup@'%' IDENTIFIED by '123456';
GRANT replication SLAVE ON *.* to backup@'%';
ALTER user 'backup'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
CREATE user 'zhucong'@'%' IDENTIFIED BY '1234567';
GRANT ALL PRIVILEGES ON *.* TO 'zhucong'@'%'
ALTER user 'zhucong'@'%' IDENTIFIED WITH mysql_native_password BY '1234567';
FLUSH PRIVILEGES;
用show master status 查看结果。
以下这句是mysql8之前版本的用法:
grant all PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED by 'root' WITH GRANT OPTION;
>>>在“从mysql”中设置主库链接:
change MASTER to master_host='192.168.56.11',master_user='backup',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=0,master_port=3307;
>>>在“从mysql”中开始运行 :
start slave;
>>>查看从库状态:show slave status;
》》》!!!!!如果主库日志出现错误:Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. Error_code: MY-002061,则需要在主库上做修改:
ALTER USER 'backup'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
然后再执行:GRANT replication SLAVE ON *.* to backup@'%'; flush privileges;#刷新权限
>>>>在docker 中查看相关命令:
docker exec -it mysqlslaver1 /bin/bash
mysql -u root -p
输入密码