亲爱的所有专业人士
我们在FreeBSD操作系统上创建Mysql实例存在严重问题。 以下是我制作实例的进展情况:
1-在新目的地上创建新数据库实例
mkdir /mysql2/mysql
mkdir /mysql2/mysql/data
mkdir /mysql2/mysql/log
mkdir /mysql2/mysql/run
mkdir /mysql2/mysql/lock
chown -R mysql:mysql /mysql2/mysql
/usr/local/libexec/mysqld --initialize --datadir= /mysql2/mysql/data --user= mysql2
但是在这个进展的开始,我有一个错误,我不知道如何解决它:
[Warning] Could not increase number of max_open_files to more than 28782 (request: 263271)
[Warning] Changed limits: table_open_cache: 14310 (requested 131555)
[Warning] Ignoring user change to '' because the user was set to 'mysql' earlier on the command line
[ERROR] --initialize specified but the data directory has files in it. Aborting.
[ERROR] Aborting
FreeBSD 10.3 Mysql57 - 服务器 - 5.7.20_1
我们想知道是否有人可以帮我们处理这个问题
答案 0 :(得分:0)
拥有多个MySQL实例的一种方法是使用jails,这样你就可以像往常一样安装包,继承更多的安全性。
一个简单的方法是使用ZFS + jails来获取图像,你可以使用fabrik.red,无论如何,这是在当前系统中创建jail的基本步骤,你可以在此处查找更多内容:https://www.freebsd.org/doc/handbook/jails-build.html
对于此示例,jail将位于home/jail/mysql1
:
# mkdir -p /home/jail/mysql1
获取基本文件并将其解压缩到jail:
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/10.3-RELEASE/base.txz -o /tmp/base.txz
# tar -xvf /tmp/base.txz -C /home/jail/mysql1
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/10.3-RELEASE/lib32.txz -o /tmp/lib32.txz
# tar -xvf /tmp/lib32.txz -C /home/jail/mysql1
在每个监狱中创建/etc/rc.conf/
和/etc/resolv.conf
,/etc/rc.conf
可以是:
cron_flags="$cron_flags -J 60"
sendmail_enable="NONE"
对于/etc/rc.conf
,您可以复制主主机中的那个:
# cp /etc/resolv.conf /home/jail/mysql1/resolv.conf
# cp /etc/resolv.conf /home/jail/mysql1/resolv.conf
接下来创建一个/etc/jail.conf
:
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
allow.raw_sockets;
securelevel=3;
host.hostname="$name.your.tld";
mysql1 {
ip4 = inherit;
path = "/home/jail/mysql1";
}
mysql2 {
ip4 = inherit;
path = "/home/jail/mysql2";
}
请注意ip4 = inherit
它将使您的jail在主机上使用相同的网络,这样您就不必进行NAT或添加唯一的IP,但因此您需要为每个MySQL实例使用不同的端口。
启动jails:
# /etc/rc.d/jail start
要检查正在运行的jail类型jls
,它将打印如下内容:
JID IP Address Hostname Path
1 mysql1.your.tld /home/jail/mysql1
2 mysql2.your.tld /home/jail/mysql2
使用jexec
进入监狱,例如,访问jail 1:
# jexec 1
进入jail后,使用pkg或ports。
安装软件包