CentOS 8 yum安装mariadb-10.3.17并实现三个实例

目的,在一个物理服务器上跑多个服务器
前提准备条件
一台系统centos 8.x主机
关闭SElinux
关闭防火墙
时间同步

(蜗牛想说:作为一个新人小白,做这个操作get到两个知识点就是:脚本最好手动敲,不要复制,记住了。不要复制,复制会让你怀疑人生,另外一个就是,遇到操作问题,不要纠结,立刻换一个方法测试,一种方法试了两遍还是不行就换,不然平添几根白发,伤脑筋)
第一步:yum -y install mariadb-server
个人建议这里直接yum -y install mariadb* 安装mariadb所有相关软件
在这里插入图片描述
第二步:准备三个实例的目录
mkdir -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}
在这里插入图片描述
第三步:文件所有者权限改为mysql
chown -R mysql.mysql /mysql
在这里插入图片描述
第四步:生成数据库文件
mysql_install_db --user=mysql --datadir=/mysql/3306/data
mysql_install_db --user=mysql --datadir=/mysql/3307/data
mysql_install_db --user=mysql --datadir=/mysql/3308/data
在这里插入图片描述
第五步:准备配置文件
vim /mysql/3306/etc/my.cnf
vim /mysql/3307/etc/my.cnf
vim /mysql/3308/etc/my.cnf
脚本如下:
[mysqld]
port=3306
datadir=/mysql/3306/data
socket=/mysql/3306/socket/mysql.sock
log-error=/mysql/3306/log/mysql.log
pid-file=/mysql/3306/pid/mysql.pid
在这里插入图片描述
而对于3307和3308 可以执行以下命令:
sed ‘s/3306/3307/’ /mysql/3306/etc/my.cnf > /mysql/3307/etc/my.cnf
sed ‘s/3306/3308/’ /mysql/3306/etc/my.cnf > /mysql/3308/etc/my.cnf
第六步:准备启动脚本
vim /mysql/3306/bin/mysqld (脚本建议手动输入,因为我就是手动输入才执行成功)
而3307 和3308
一样可以用sed

sed ‘s/3306/3307/’ /mysql/3306/bin/mysqld > /mysql/3308/bin/mysqld
sed ‘s/3307/3308/’ /mysql/3307/bin/mysqld > /mysql/3308/bin/mysqld

脚本如下
#!/bin/bash
port=3307
mysql_user=“root”
mysql_pwd=“magedu”
cmd_path="/usr/bin"
mysql_basedir="/mysql"
mysql_sock=" m y s q l b a s e d i r / {mysql_basedir}/ mysqlbasedir/{port}/socket/mysql.sock"

function_start_mysql()
{
if [ ! -e “$mysql_sock” ];then
printf “Starting MySQL…\n”
c m d p a t h / m y s q l d s a f e − − d e f a u l t s − f i l e = {cmd_path}/mysqld_safe --defaults-file= cmdpath/mysqldsafedefaultsfile={mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
else
printf “MySQL is running…\n”
exit
fi
}

function_stop_mysql()
{
if [ ! -e “$mysql_sock” ];then
printf “MySQL is stopped…\n”
exit
else
printf “Stoping MySQL…\n”
${cmd_path}/mysqladmin -u m y s q l u s e r − p {mysql_user} -p mysqluserp{mysql_pwd} -S ${mysql_sock} shutdown
fi
}

function_restart_mysql()
{
printf “Restarting MySQL…\n”
function_stop_mysql
sleep 2
function_start_mysql
}

case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf “Usage: m y s q l b a s e d i r / {mysql_basedir}/ mysqlbasedir/{port}/bin/mysqld {start|stop|restart}\n”
esac
第七步:准备后启动脚本
先增加一下修改权限, 不然一会提示没有权限操作:
chmod +x /mysql/3306/bin/mysqld
chmod +x /mysql/3307/bin/mysqld
chmod +x /mysql/3308/bin/mysqld
在这里插入图片描述
在这里插入图片描述
再查看端口 ss -ntl 端口已经全部开启了
在这里插入图片描述
第八步:登录实例
两种登录方法
第一种:mysql -h127.0.0.1 -P3306
在这里插入图片描述
确认连接的端口
在这里插入图片描述
由于第一种登录方法用的是127.0.0.1会有一些限制,所以个人建议用第二种
第二种登录方法: mysql -uroot -S /mysql/3306/socket/mysql.sock
在这里插入图片描述
查看默认四个数据库列表
在这里插入图片描述
创建一个新数据库
create database test3306

在这里插入图片描述
需要注意的是每个实例都有自己的数据库
mysql -uroot -S /mysql/3307/socket/mysql.sock

在这里插入图片描述
在这里插入图片描述
第九步:修改密码
mysqladmin -uroot -S /mysql/3306/socket/mysql.sock password ‘magedu’
mysqladmin -uroot -S /mysql/3307/socket/mysql.sock password ‘magedu’
mysqladmin -uroot -S /mysql/3308/socket/mysql.sock password ‘magedu’
设置密码为magedu后发现 之前的mysql -uroot -S /mysql/3306/socket/mysql.sock已经无法登录
在这里插入图片描述
要设置mysql -uroot -pmagedu -S /mysql/3306/socket/mysql.sock
在这里插入图片描述
至此 数据库已经成功启动
设置三个实例开机自动启动

在vim /etc/rc.d/rc.local写入:
for i in {3306…3308};do /mysql/$i/bin/mysqld start;done
在这里插入图片描述
改完后 设置chmod
chmod +x /etc/rc.d/rc.local
在这里插入图片描述
重启后查看端口
在这里插入图片描述
至此 设置完成

谢谢观赏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值