阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL 多实例安装

140次阅读
没有评论

共计 2771 个字符,预计需要花费 7 分钟才能阅读完成。

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

下面演示多实例的安装

首先我们规划下

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
#

MySQL 多实例安装

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

MySQL 多实例安装

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 查看

MySQL 多实例安装

数据库加固

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 “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} -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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2771字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中