Mariadb单机多实例

半城伤御伤魂 提交于 2020-02-02 17:41:14

首先非常感谢原创的无私奉献,自己在实验中学到了很多。此文大部分来自于原创,同时有自己在解决遇到故障的一些方法。随便百度了一些文章,但还是没有那么顺利,故写出来和大家一起分享。

原创网址: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: 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!