您的位置:首页 > 博客中心 > 数据库 >

MariaDB单机多实例

时间:2022-03-14 09:00

我们在同一台服务器上运行3个mysql服务分别开启3306,3307,3308端口
##############################################
###            安装mariadb                        ##
##############################################


##############################################
###            初始化环境                        ##
##############################################
1) 创建3个目录分别保存3个实例对应的数据
[root@localhost ~]# mkdir -p /mariadb/data{3306,3307,3308}

2) 更改所属组和所有者
[root@localhost ~]# chown -R mysql:mysql /mariadb

###############################################
###   为数据实例目录初始化                    ###
###############################################
[root@localhost ~]# mysql_install_db  --datadir=/mariadb/data3306 --user=mysql
[root@localhost ~]# mysql_install_db  --datadir=/mariadb/data3307 --user=mysql
[root@localhost ~]# mysql_install_db  --datadir=/mariadb/data3308 --user=mysql

##############################################
###            创建实例                        ##
##############################################
1)编辑源配置文件
[root@localhost ~]# cp -a /etc/my.cnf /etc/my.cnf.bak
[root@localhost ~]# vi /etc/my.cnf # 添加如下代码,里面没有列出来的值都是保持默认的值
[mysqld_multi]
mysqld     = /usr/bin/mysqld_safe
user       = mysql

# 添加三个实例
[mysqld3306]
# 占用的端口(每一个实例占用一个端口)
port=3306
# 指定套接字文件所在的目录
socket=/tmp/mysql3306.sock
# 指定锁文件所在的位置
pid-file=/tmp/mysql3306.pid
# 指定数据库实例目录
datadir=/mariadb/data3306


[mysqld3307]
port=3307
socket=/tmp/mysql3307.sock
pid-file=/tmp/mysql3307.pid
datadir=/mariadb/data3307

[mysqld3308]
port=3308
socket=/tmp/mysql3308.sock
pid-file=/tmp/mysql3308.pid
datadir=/mariadb/data3308


##############################################
###                启动实例                    ##
##############################################
[root@localhost ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf start 3306
[root@localhost ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf  report  # 查看启动的实例
Reporting MySQL servers
MySQL server from group: mysqld3306 is running
MySQL server from group: mysqld3307 is not running
MySQL server from group: mysqld3308 is not running
启动其他的实例
[root@localhost ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf start 3307
[root@localhost ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf start 3308

###############################################
###           客户端登录                        ###
###############################################
1 通过TCP/ip连接
[root@localhost ~]# mysql -P3306 -hlocalhost --protocol=tcp # 当服务启动参数中有--skip-networking,则无法使用tcp协议连接

2 通过连接实例的方式
[root@localhost ~]# mysql -S /tmp/mysql3307.sock # 不能远程连接

################################################
###            对此实例进行操作                ####
################################################
MariaDB [(none)]> create database database_3306;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create database database_3307;
Query OK, 1 row affected (0.00 sec)


MariaDB [(none)]> create database database_3308;
Query OK, 1 row affected (0.00 sec)

[root@localhost ~]# ll /mariadb/data3306
total 110632
。。。。。。。。
drwx------ 2 mysql mysql     4096 May 12 01:16 database_3306
。。。。。。。。

[root@localhost ~]# ll /mariadb/data3307
total 110632
。。。。。。
drwx------ 2 mysql mysql     4096 May 12 01:16 database_3307
。。。。。。

[root@localhost ~]# ll /mariadb/data3308
total 110632
。。。。。。
drwx------ 2 mysql mysql     4096 May 12 01:16 database_3308
。。。。。。
################################################
###             关闭实例                     ###
################################################
[root@localhost ~]# /usr/bin/mysqladmin -u root -p -S /tmp/mysql3306.sock shutdown
Enter password:





本类排行

今日推荐

热门手游