yum 安装包的实现多实例

实验: yum 安装包的实现多实例

以yum安装的包,或者二进制安装的包都可以做多实例。现在用yum 安装的包来做。
先装包 yum install mariadb-server

装完之后在主机上就有一个实例了,然后在这个实例上进行修改变成多个实例。
系统默认的数据库是放在 /var/lib/mysql 目录下,现在不用这个,自己来创建,将来把各自的实例数据文件以及一些配置文件、日志文件、进程文件。socket文件等放在各自的目录下。
mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,data} -pv

为了让mysql 用户对创建的目录具有控制权限,要求把所有者跟所属组都修改成 mysql 。因为这是yum 安装,所以不用创建 mysql 用户,会自动生成,秩序修改权限即可。
chown -R mysql.mysql /mysqldb/

接下来要把用户数据库文件生成。
mysql_install_db --datadir=/mysqldb/3306/data --user=mysql
mysql_install_db --datadir=/mysqldb/3307/data --user=mysql
mysql_install_db --datadir=/mysqldb/3308/data --user=mysql


接下来准备配置文件
系统自带的配置文件在 /etc/my.cnf 目录下,复制到各自实例下准备的配置文件目录中。
cp /etc/my.cnf /mysqldb/3306/etc/
cp /etc/my.cnf /mysqldb/3307/etc/
cp /etc/my.cnf /mysqldb/3308/etc/
然后修改各自的配置文件
vim /mysqldb/3306/etc/my.cnf
注释掉 includedir /etc/my.cnf.d 这行
添加 port=3306
修改其他行 datadir=/mysqldb/3306/data
socket=/mysqldb/3306/socket/mysql.sock
log-error=/mysqldb/3306/log/mariadb.log
pid-file=/mysqldb/3306/pid/mariadb.pid

vim /mysqldb/3307/etc/my.cnf
注释掉 includedir /etc/my.cnf.d 这行
添加 port=3307
修改其他行 datadir=/mysqldb/3307/data
socket=/mysqldb/3307/socket/mysql.sock
log-error=/mysqldb/3307/log/mariadb.log
pid-file=/mysqldb/3307/pid/mariadb.pid

vim /mysqldb/3308/etc/my.cnf
注释掉 includedir /etc/my.cnf.d 这行
添加 port=3308
修改其他行 datadir=/mysqldb/3308/data
socket=/mysqldb/3308/socket/mysql.sock
log-error=/mysqldb/3308/log/mariadb.log
pid-file=/mysqldb/3308/pid/mariadb.pid

这样各种文件就准备好了,接下来就是启动脚本了。
我们现在要准备三个脚本,三个配置文件,来适用于三个实例
vim /mysqldb/3306/mysqld
#!/bin/bash
 
port=3306
mysql_user="root"
mysql_pwd="centos"
cmd_path="/app/mysql/bin"
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
 
function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${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 ${mysql_user} -S ${mysql_sock} shutdown
#${cmd_path}/mysqladmin -u ${mysql_user} -p${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: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac


vim /mysqldb/3307/mysqld
#!/bin/bash 
port=3307
mysql_user="root"
mysql_pwd="centos"
cmd_path="/app/mysql/bin"
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
 
function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${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 ${mysql_user} -S ${mysql_sock} shutdown
# ${cmd_path}/mysqladmin -u ${mysql_user} -p${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: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac

vim /mysqldb/3308/mysqld
#!/bin/bash 
port=3308
mysql_user="root"
mysql_pwd="centos"
cmd_path="/app/mysql/bin"
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
 
function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${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 ${mysql_user} -S ${mysql_sock} shutdown
#${cmd_path}/mysqladmin -u ${mysql_user} -p${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: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac


接下来就可以启动服务脚本了,先给加上执行权限。
chmod 700 /mysqldb/3306/mysqld
chmod 700 /mysqldb/3307/mysqld
chmod 700 /mysqldb/3308/mysqld

然后就可以运行了
/ mysqldb/3306/mysqld start
/mysqldb/3307/mysqld start
/mysqldb/3308/mysqld start

启动后可以用命令查看下端口打开没 ss -ntl
启动后还会自动生成各自的日志文件,socket 文件,pid 文件等。

接下来就可以连接了。但是不能跟传统连接一样,要跟上socket 文件路径
mysql -s /mysqldb/3308/socket/mysql.sock

那怎么能知道连接的是哪个端口的呢。
用命令 show variables like '%port%'; 就可以查看详细信息
其他两个实例一样。

如果要停掉服务跟上 stop 参数就可以了。
/mysqldb/3308/mysqld stop
这样就把3308 端口的服务停掉了。其他两个实例一样。

到此多实例实验就实现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Tencent Cloud Shell 默认已经安装yum。如果您在使用 Cloud Shell 时遇到了 yum 安装包不存在的问题,可以尝试执行以下命令来更新 yum 源信息: ``` sudo yum update ``` 如果您需要安装其他软件管理工具,例如 apt-get,可以通过以下命令进行安装: ``` sudo yum install epel-release sudo yum install apt ``` 希望这能对您有所帮助。 ### 回答2: 要在Tencent Cloud Shell上安装yum,可以按照以下步骤进行操作: 1. 打开Tencent Cloud Shell控制台。 2. 在控制台左上角的搜索栏中输入“yum”,并选择“Tencent Cloud Shell”。 3. 在打开的Tencent Cloud Shell界面上,可以看到一个类似于Linux终端的命令行界面。 4. 输入以下命令,以安装yum工具: ``` sudo yum install yum -y ``` 这会下载并安装yum。 5. 安装完成后,可以通过输入以下命令检查yum是否成功安装: ``` yum --version ``` 如果成功安装,会显示yum的版本信息。 现在,您已成功在Tencent Cloud Shell上安装yum工具。yum是一个软件管理器,可以用于在Linux系统上安装、升级和删除软件安装yum后,您可以使用它来管理您的云服务器上的软件,从而提高系统的灵活性和功能。 请注意,Tencent Cloud Shell是在浏览器上运行的轻量级Linux终端工具,可以方便地访问和管理您的云服务器。 ### 回答3: Tencent Cloud Shell 是腾讯云提供的一个在线命令行工具,它可以在浏览器中直接访问,无需进行任何安装。因此,您不需要安装 yum,因为 Tencent Cloud Shell 已经预装了常用的工具和软件。 Tencent Cloud Shell 的操作类似于常规的 Linux 命令行界面,您可以通过命令来安装和管理软件,无论是通过 yum 还是其他管理工具。 要使用 yum 安装软件,您只需按照以下步骤操作: 1. 打开腾讯云控制台,登录您的账号。 2. 找到 Tencent Cloud Shell 的入口,一般位于控制台页面的右上方。 3. 点击进入 Tencent Cloud Shell,在浏览器中打开命令行界面。 4. 在命令行界面中,使用 yum 安装软件的命令,如:sudo yum install 软件名。 5. 等待软件安装完成。 请注意,在 Tencent Cloud Shell 中使用 yum 安装软件可能需要 root 或具有 sudo 权限的用户,因此可能需要使用 sudo 命令来执行安装命令。 总而言之,Tencent Cloud Shell 是一个灵活、便捷的在线命令行工具,可以满足您在腾讯云中管理和操作实例的需求,并且已经预装了常用的软件工具,因此您不需要额外安装 yum。使用 Tencent Cloud Shell,您可以轻松地在云端进行命令行操作和软件管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值