首先非常感谢原创的无私奉献,自己在实验中学到了很多。此文大部分来自于原创,同时有自己在解决遇到故障的一些方法。随便百度了一些文章,但还是没有那么顺利,故写出来和大家一起分享。
原创网址:https://blog.51cto.com/bingdonghuoyan/1650347
实验目的:我们在同一台服务器上运行3个mysql服务分别开启3306,3307,3308端口
第一步: 安装mariadb
yum install mariadb -y
yum install mariadb-server -y
第二步:开始配置多实例
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
_________________________________________________________________________________
以上初始化的时候会报错:
[root@mysql01 ~]# mysql_install_db --datadir=/mvpbang/data33343--user=mysql
Neither host 'mysql01' nor 'localhost' could be looked up with
'/usr/libexec/resolveip'
Please configure the 'hostname' command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the --force option
The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
[root@mysql01 ~]# mysql_install_db --user=mysql
Neither host 'mysql01' nor 'localhost' could be looked up with
'/usr/libexec/resolveip'
Please configure the 'hostname' command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the --force option
The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
解决方法:
1、故障提示是解析问题。在/etc/hosts中添加主机名和ip的对应关系,我这儿添加:192.168.1.21 mysql01
2、shell命令下which resolveip,查看resolveip文件在哪个目录下,然后拷贝一份到/usr/libexec/
我这里是: cp /usr/local/mysql/bin/resolveip /usr/libexec/
重新运行上面的初始化命令,问题解决。
____________________________________________________________________________________
### 创建实例
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
### 启动实例
此次需要先停止3306服务:systemctl stop mariadb.service
[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:
来源:CSDN
作者:pizi110
链接:https://blog.csdn.net/pizi110/article/details/104145727