微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux-Mysql创建多实例

(一)创建数据库实例

此为数据库内的操作

create database 数据库实例名称     

(二)创建多服务实例

多实例是在一个服务器中配置多个MysqL服务端口,启动了多个MysqL服务。配置多实例时,每个实例的端口、配置文件和数据目录、socket还有日志都需要独立出来,但是共用一个MysqL软件。
实例之间的所有数据都是独立的,也就是说,在不同实例下进行的数据库操作不会互相影响。
(1)创建多实例
1)新建多实例所需要的数据目录

mkdir -p /data/3307/data 
mkdir -p /data/3308/data 

2)为新实例分别新建my.cnf配置文件,以下先为3307创建

vim /data/3307/my.cnf

将以下信息添加进去,个别信息根据实际情况修改

[MysqLd]
basedir=/opt/MysqL              
datadir=/data/3307/data
user=MysqL
socket=/data/3307/MysqL.sock
port=3307 
server_id=3307

3)复制文件到其他实例目录下

cp /data/3307/my.cnf /data/3308

4)修改文件内的对应内容

sed -i 's#3307#3308#g' /data/3308/my.cnf

5)初始化数据库

MysqLd --initialize-insecure  --user=MysqL --datadir=/data/3307/data --basedir=/opt/MysqL
MysqLd --initialize-insecure  --user=MysqL --datadir=/data/3308/data --basedir=/opt/MysqL

6)启动实例
① 先修改数据目录的使用权限

chown -R MysqL.MysqL /data/*

② 测试环境下的启动

MysqLd_safe --defaults-file=/data/3307/my.cnf &
MysqLd_safe --defaults-file=/data/3308/my.cnf &

③ 查看实例状态

netstat -lnp|grep 330

④ 通过测试后启动正式的数据库软件,即可查看到数据库已成功启动

MysqL -S /data/3307/MysqL.sock
MysqL -S /data/3308/MysqL.sock

7)配置systemd管理多实例
修改指定数据库服务端的服务配置文件

vim /etc/systemd/system/MysqLd3307.service

添加以下信息

[Unit]
Description=MysqL Server
Documentation=man:MysqLd(8)
Documentation=http://dev.MysqL.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=MysqL
Group=MysqL
ExecStart=/opt/MysqL/bin/MysqLd --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000

②拷贝给其他实例

cp  /etc/systemd/system/MysqLd3307.service   /etc/systemd/system/MysqLd3308.service

修改拷贝文件内容

sed -i 's#3307#3308#g'   /etc/systemd/system/MysqLd3308.service

④ 设置开机自动启动

systemctl enable  MysqLd3307
systemctl enable  MysqLd3308

以上参考博文https://blog.csdn.net/qq_33961117/article/details/86495883
(2)根据创建好的实例的 sock 登入对应的实例,初始密码为空,直接回车即可登入数据库

MysqL -uroot -p -S /data/3307/MysqL.sock   

(3)关于远程连接问题(Dbeaver连接)
1)连接超时:linux 防火墙端口未开放

firewall-cmd --list-all  #查看开放哪些服务端口
firewall-cmd --add-port=3306/tcp --permanent    #开放端口号的命令
systemctl restart firewalld.service   # 重启防火墙,使配置生效

2)主机不允许被连接:主机没有权限连接MysqL,更改MysqL连接权限
登入数据库修改user表中的host栏位值,查询后看到,host为localhost,那么只支持本机连接MysqL,将host修改为‘%’,%为任意主机均可连接,刷新权限,连接成功。

select user,host from user

刷新权限

flush privileges

3)账号不允许:root 账号不允许用来作远程连接。需要重新创建新账号,host为’%’ ,并授予权限,此步需要在 root 账号下进行创建

原文地址:https://www.jb51.cc/wenti/3287549.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐