Rancher2.5.7部署Mysql8.0.22
1、安装NFS,配置NFS
###############以下命令在数据挂载服务器执行(157.16.1.15)
#安装nfs
yum -y install nfs-utils rpcbind
#创建数据挂载物理路径
mkdir -p /data/nfsdata
#分配目录权限为755
chmod 755 -R /data/nfsdata
#配置挂载
cat >> /etc/exports <<EOF
/data/nfsdata 157.16.1.*(rw,no_root_squash)
EOF
#启动rpc跟nfs
systemctl start rpcbind.service
systemctl status rpcbind.service
systemctl start nfs.service
systemctl status nfs.service
systemctl enable rpcbind.service
systemctl enable nfs.service
###############以下命令在其他服务器执行
#安装nfs
yum -y install nfs-utils rpcbind
#创建挂载的目录
mkdir -p /data/nfsdata
#启动rpc跟nfs
systemctl start rpcbind.service
systemctl status rpcbind.service
systemctl start nfs.service
systemctl status nfs.service
systemctl enable rpcbind.service
systemctl enable nfs.service
2、创建持久卷(PV)
使用Rancher创建PV
填写名称,选择卷插件为NFS Share,填写容量,填写路径(在第一步创建的数据挂载路径),填写服务器(数据挂载服务器IP地址157.16.1.15),访问模式:单主机读写,多主机读写
3、创建持久卷(PVC)
选择集群中的Default
点击添加PVC
填写名称,选择命名空间,如果不存在则点击创建新的命名空间,选择持久卷为上一步创建的mysqlpv,选择访问模式:单主机读写,多主机读写;填写完毕后点击创建
4、创建配置映射
选择 资源/配置映射,点击添加配置映射
添加配置映射,填写名称,选择命名空间mysql;配置内容为下
#配置映射键
mysqld.cnf
#值
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure_file_priv=/var/lib/mysql
# secure-file-priv= NULL
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
lower_case_table_names=1
5、部署服务一(配置挂载方式)
点击部署服务
填写服务信息:
名称,Docker 镜像(这里选择mysql:8.0.22),命名空间(选择mysql),填写端口映射,填写环境变量,添加PVC数据卷,添加配置映射卷
设置数据卷
设置配置卷
点击启动后等待服务安装,待状态显示为Active后则表示服务安装成功
6、部署服务二(非配置挂载方式,这种方式部署可以不用创建配置映射)
和第一种方式不同的是数据卷挂载方式配置不同需要在数据挂载服务创建好mysql配置
#nfs目录下面创建目录
mkdir -p /data/nfsdata/mysqlmaster/data 数据目录
mkdir -p /data/nfsdata/mysqlmaster/conf 配置文件目录
#创建配置文件
touch /data/nfsdata/mysqlmaster/conf/my.cnf
chmod 755 -R /data/nfsdata/mysqlmaster/conf/
#添加配置
vi /data/nfsdata/mysqlmaster/conf/my.cnf
#配置信息
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure_file_priv=/var/lib/mysql
# secure-file-priv= NULL
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
lower_case_table_names=1
创建完成后按照下图填写具体参数即可
#环境变量
MYSQL_ROOT_PASSWORD zzx123456
TZ Asia/shanghai
#数据卷
/var/lib/mysql/ mysql/data
/etc/mysql/my.cnf mysql/conf/my.cnf
7、设置Mysql远程访问
服务部署成功后,选择mysql服务,点击执行命令行功能
在弹出的命令行工具输入:mysql -uroot -pzzx123456
进入之后切换至mysql库,查看user表中的用户信息
mysql> use mysql
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root | $A$005$)C%}|B/O#6> cNUWhdcLdaapuvYsxy2VqkPkMwwU.0AM9tJ1iO5SVr7 | caching_sha2_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
修改root用户远程访问,刷新修改,赋予权限
mysql> update user set host='%' where user='root';
mysql> flush privileges;
如果防火墙关闭的话root已经可以连接了,我觉得下面这句命令应该是给其它用户授予的,root本身已经有这些权限
mysql> GRANT ALL ON *.* TO 'root'@'%';
#这个指令的意思是给予用户名为root主机名为任何的对象在任何库任何表上的所有权限,我自己理解的