我们在同一台服务器上运行3个mysql服务分别开启3306,3307,3308端口
##############################################
### 安装mariadb ##
##############################################
略
##############################################
### 初始化环境 ##
##############################################
1) 创建3个目录分别保存3个实例对应的数据
[[email protected] ~]# mkdir -p /mariadb/data{3306,3307,3308}
2) 更改所属组和所有者
[[email protected] ~]# chown -R mysql:mysql /mariadb
###############################################
### 为数据实例目录初始化 ###
###############################################
[[email protected] ~]# mysql_install_db --datadir=/mariadb/data3306 --user=mysql
[[email protected] ~]# mysql_install_db --datadir=/mariadb/data3307 --user=mysql
[[email protected] ~]# mysql_install_db --datadir=/mariadb/data3308 --user=mysql
##############################################
### 创建实例 ##
##############################################
1)编辑源配置文件
[[email protected] ~]# cp -a /etc/my.cnf /etc/my.cnf.bak
[[email protected] ~]# 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
##############################################
### 启动实例 ##
##############################################
[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf start 3306
[[email protected] ~]# 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
启动其他的实例
[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf start 3307
[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf start 3308
###############################################
### 客户端登录 ###
###############################################
1 通过TCP/ip连接
[[email protected] ~]# mysql -P3306 -hlocalhost --protocol=tcp # 当服务启动参数中有--skip-networking,则无法使用tcp协议连接
2 通过连接实例的方式
[[email protected] ~]# 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)
[[email protected] ~]# ll /mariadb/data3306
total 110632
。。。。。。。。
drwx------ 2 mysql mysql 4096 May 12 01:16 database_3306
。。。。。。。。
[[email protected] ~]# ll /mariadb/data3307
total 110632
。。。。。。
drwx------ 2 mysql mysql 4096 May 12 01:16 database_3307
。。。。。。
[[email protected] ~]# ll /mariadb/data3308
total 110632
。。。。。。
drwx------ 2 mysql mysql 4096 May 12 01:16 database_3308
。。。。。。
################################################
### 关闭实例 ###
################################################
[[email protected] ~]# /usr/bin/mysqladmin -u root -p -S /tmp/mysql3306.sock shutdown
Enter password: