美文网首页MYSQL
5.数据库多实例创建

5.数据库多实例创建

作者: Stone_説 | 来源:发表于2020-05-16 01:28 被阅读0次

声明:先使用CentOS7中yum源自带的mariadb版本安装,再使用其相关文件进行多实例配置
data:存放数据 bin:存放程序 log:存放日志
socket:存放套接字 pid:存放pid etc:存放配置文件

1.创建多实例数据文件目录

[root@centos7min ~]# mkdir -p /mysql/{3306,3307,3308}/{data,bin,log,socket,pid,etc}
[root@centos7min ~]# tree /mysql
/mysql
├── 3306
│   └── {data,bin,log,socket,pid,etc
├── 3307
│   └── {data,bin,log,socket,pid,etc
└── 3308
    └── {data,bin,log,socket,pid,etc

2.准备数据库初始文件

[root@centos7min ~]# which mysql_install_db
/usr/bin/mysql_install_db
[root@centos7min ~]# mysql_install_db --datadir=/mysql/3306/data/ --user=mysql 
[root@centos7min ~]# mysql_install_db --datadir=/mysql/3307/data/ --user=mysql 
[root@centos7min ~]# mysql_install_db --datadir=/mysql/3308/data/ --user=mysql 
[root@centos7min ~]# chown -R mysql.mysql /mysql/

3.创建配置文件并配置环境变量

[root@centos7min ~]# cp /etc/my.cnf /mysql/3306/etc
[root@centos7min ~]# vim /mysql/3306/etc/my.cnf 
[mysqld]
port=3306
datadir=/mysql/3306/data
socket=/mysql/3306/socket/mysql.sock

[mysqld_safe]
log-error=/mysql/3306/log/mariadb.log
pid-file=/mysql/3306/pid/mariadb.pid

[root@centos7min ~]# cp /mysql/3306/etc/my.cnf /mysql/3307/etc/
[root@centos7min ~]# cp /mysql/3306/etc/my.cnf /mysql/3308/etc/
[root@centos7min ~]# sed -i "s/3306/3307/g" /mysql/3307/etc/my.cnf 
[root@centos7min ~]# sed -i "s/3306/3308/g" /mysql/3308/etc/my.cnf 

4.数据库启动脚本

[root@centos7min ~]# cat /mysql/3306/bin/mysqld
#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd="centos"
cmd_path="/usr/bin"   命令的路径,数据库服务器软件的路径,mysqld_safe的路径,因为使用yum安装所以为此路径,二进制或源码编译安装,路径可能不一致
mysql_basedir="/mysql"
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
 
[root@centos7min ~]# chmod +x /mysql/3306/bin/mysqld
[root@centos7min ~]# cp /mysql/3306/bin/mysqld /mysql/3307/bin/
[root@centos7min ~]# cp /mysql/3306/bin/mysqld /mysql/3308/bin/
[root@centos7min ~]# sed -i 's/3306/3307/' /mysql/3307/bin/mysqld 
[root@centos7min ~]# sed -i 's/3306/3308/' /mysql/3308/bin/mysqld 
[root@centos7min ~]# /mysql/3306/bin/mysqld start
[root@centos7min ~]# /mysql/3307/bin/mysqld start
[root@centos7min ~]# /mysql/3308/bin/mysqld start
[root@centos7min ~]# ss -ntlu
Netid State      Recv-Q Send-Q              Local Address:Port                             Peer Address:Port                               
tcp   LISTEN     0      50                              *:3306                                        *:*                  
tcp   LISTEN     0      50                              *:3307                                        *:*                  
tcp   LISTEN     0      50                              *:3308                                        *:*


**使用mysqladmin修改密码与配置文件中一致,否则会无法使用脚本关闭服务**
[root@centos7min ~]# mysqladmin -S /mysql/3306/socket/mysql.sock password centos
[root@centos7min ~]# mysqladmin -S /mysql/3307/socket/mysql.sock password centos
[root@centos7min ~]# mysqladmin -S /mysql/3308/socket/mysql.sock password centos

5.测试

[root@centos7min ~]# mysql -S /mysql/3306/socket/mysql.sock -pcentos
MariaDB [(none)]> status
Server:         MariaDB
Server version:     5.5.65-MariaDB MariaDB Server
Protocol version:   10
UNIX socket:        /mysql/3306/socket/mysql.sock

MariaDB [(none)]> 
[root@centos7min ~]# /mysql/3306/bin/mysqld stop
[root@centos7min ~]# /mysql/3307/bin/mysqld stop
[root@centos7min ~]# /mysql/3308/bin/mysqld stop
[root@centos7min ~]# ss -ntlu   
**验证成功**

相关文章

  • 5.数据库多实例创建

    声明:先使用CentOS7中yum源自带的mariadb版本安装,再使用其相关文件进行多实例配置data:存放数据...

  • Mysql 多实例(3307 3308 3309)

    1. 创建相关目录 2. 创建配置文件 3. 初始化数据 4. 启动多实例 5. 测试 6. systemd管理多实例

  • 阿里云 RDS数据库

    1.什么是RDS数据库? RDS数据库是在一个实例下创建的逻辑单元,一个实例可以创建多个数据库,在实例内数据库命名...

  • Mysql主从复制-半同步复制

    创建多个数据库实例 docker创建多个数据库实例 初始化和启动数据库 进入docker 添加配置文件 主数据库添...

  • SQLServer创建数据库、登录账户、用户、并授权

    1.创建数据库 2.切换到创建数据库 3.创建登录账户 4.创建数据库用户 5.用户授权

  • mongodb数据库操作

    创建数据库 语法 mongodb创建数据库的语法如下 实例 我们创建数据库primeton 如果我们想看所有已经存...

  • 阿里云云数据库使用笔记!

    云数据库RDS 实例列表 点击实例名称 账号管理 创建账号和权限 数据库管理 创建数据库 数据安全性 白名单设...

  • 2018-09-26

    1. 盛放链接对应的内容 2.创建组件 3.配置路由 4.创建路由实例 5.路由实例挂载到vue实例上

  • mongodb数据库操作

    1. 创建数据库 2. 查看所有的数据库 3. 删除数据库 4.创建集合 5.文档插入

  • Mysql 多实例

    创建相关目录 创建配置文件 初始化数据 启动多实例 测试 systemd管理多实例

网友评论

    本文标题:5.数据库多实例创建

    本文链接:https://www.haomeiwen.com/subject/labkohtx.html