前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 多实例安装

MySQL 多实例安装

作者头像
星哥玩云
发布2022-08-16 21:26:13
1.5K0
发布2022-08-16 21:26:13
举报
文章被收录于专栏:开源部署开源部署

在生产中有时候会遇到一台主机要运行多个MySQL服务器----叫做多实例

下面演示多实例的安装

首先我们规划下

基于二进制安装 1、创建mysql用户

useradd -r -s /sbin/nologin -d /app/mysql -m mysql # #

2、解压下载的二进制mariadb包

tar xvf mariadb-10.2.16-linux-x86_64.tar.gz -C /usr/local/ # #

3、创建软连接

cd /usr/local/ # ln -s mariadb-10.2.16-linux-x86_64/ mysql #

4、修改权限

chown -R root.mysql /usr/local/mysql/ # #

5、环境变量(少了这步也可)

vim /etc/profile.d/mysql.sh # . /etc/profile.d/mysql.sh #

如果你已经二进制安装了mariadb包,可以从以下开始

指定数据库位置并初始化数据库 1、创建规划图上的目录

mkdir /mysqldb/{3306,3307,3308}/{etc,bin,data,pid,socket,log} -pv # #

2、更改主目录mysqldb的属性

chown -R mysql.mysql /mysqldb/ #

3、3306端口

cd /usr/local/mysql/ # scripts/mysql_install_db  --datadir=/mysqldb/3306/data --user=mysql #

4、3307端口

01 02 scripts/mysql_install_db  --datadir=/mysqldb/3307/data --user=mysql #

5、3308端口

scripts/mysql_install_db  --datadir=/mysqldb/3308/data --user=mysql #

修改配置文件 1、复制配置文件

cp /etc/my.cnf /mysqldb/3306/etc/ #

2、编辑配置文件

vim /mysqldb/3306/etc/my.cnf #

3、把上面的配置文件当模板传送给3307、3308

cp /mysqldb/3306/etc/my.cnf  /mysqldb/3307/etc/ cp /mysqldb/3306/etc/my.cnf  /mysqldb/3308/etc/ #

4、更改07、08配置文件的端口

sed -i 's/3306/3307/g' /mysqldb/3307/etc/my.cnf sed -i 's/3306/3308/g' /mysqldb/3308/etc/my.cnf #

启动程序 1、把事先编写的启动脚本复制到06、07、08的bin目录下

cp /root/mysqld /mysqldb/3306/bin/ cp /root/mysqld /mysqldb/3307/bin/ cp /root/mysqld /mysqldb/3308/bin/ #

2、更改7、8的启动脚本进程号为自己的

vim /mysqldb/3307/bin/mysqld #07的改为3307 vim /mysqldb/3308/bin/mysqld #08的改为3308

3、给启动脚本加执行权限

chown +x /mysqldb/3306/bin/mysqld chmod +x /mysqldb/3306/bin/mysqld chmod +x /mysqldb/3307/bin/mysqld chmod +x /mysqldb/3308/bin/mysqld #

4、启动服务脚本

/mysqldb/3306/bin/mysqld start # /mysqldb/3307/bin/mysqld start # /mysqldb/3308/bin/mysqld start

5、ss -ntl查看

数据库加固

1、给数据库root用户加密码

mysqladmin  -S /mysqldb/3306/socket/mysql.sock password 'CentOS' mysqladmin  -S /mysqldb/3307/socket/mysql.sock password 'centos' mysqladmin  -S /mysqldb/3308/socket/mysql.sock password 'centos'

2、进入数据库删除匿名登陆

mysql -S /mysqldb/3306/socket/mysql.sock -uroot -p #

select user,host from mysql.user; #查看有哪些用户 delete from mysql.user where user=''; #删除匿名用户

OK

exit 重新进入 ,如果不行,就重启下服务

附加启动脚本代码

#!/bin/bash

port=3306

mysql_user="root"

mysql_pwd=""

cmd_path="/usr/local/bin"

mysql_basedir="/mysqldb"

mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql()

{

    if [ ! -e "$mysql_sock" ];then

      printf "StartingMySQL...\n"

      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &

    else

      printf "MySQLis running...\n"

      exit

    fi

}

function_stop_mysql()

{

    if [ ! -e "$mysql_sock" ];then

      printf "MySQLis stopped...\n"

      exit

    else

      printf "StopingMySQL...\n"

      ${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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档