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 账号下进行创建

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...