在Debian Jessie上安装无人值守的Percona Server 5.7

时间:2016-04-16 17:18:34

标签: debian install percona

我试图从Percona的Debian Jessie存储库中无人值守地安装Percona Server 5.7。我真的不在乎最终的root密码,如果有的话。这是次要的。

到目前为止,我一直处于不成功状态,最终导致了三种不同的情景,每种情况都失败了:

1)DEBIAN_FRONTEND=noninteractive apt-get -y install percona-server-server-5.7无限期挂起:http://pastebin.com/QiYUsSJW

服务器已启动,我甚至可以使用mysql -S /var/run/mysqld/mysqld.sock连接到它,这很奇怪,因为"无法连接到套接字"上面的粘贴警告。

挂起时没有/etc/mysql/my.cnf个文件,但目录就在那里。

2)使用debconf-set-selections将debconf数据库预先设置为:

  

percona-server-server-5.7 percona-server-server-5.7 / root-pass password supersecret

     

percona-server-server-5.7 percona-server-server-5.7 / re-root-pass password supersecret

然后继续apt-get install percona-server-server-5.7

在此步骤中,apt失败,因为密码仍显然为空白:http://pastebin.com/hMsjn0wJ包含以下日志:http://pastebin.com/61KPgTth

在这种情况下,mysql服务甚至无法启动,因此我无法判断密码是否实际设置。但是,在/var/cache/debconf/passwords.dat检查debconf数据库我可以看到密码值字段为空。回到日志回到

  

Apr 16 16:14:53 gtest mysql-systemd-start [2659]:/ usr / share / mysql / mysql-systemd-start:第37行:[:参数太多

并分析文件,我到了my_print_defaults二进制执行点,并且应该返回mysqld配置值。相反,它不打印任何导致启动脚本失败并出现上述错误。它为什么空?不知道。可能是因为/etc/mysql/my.cnf不存在,很像以前的情况。这也在这里提到:

  

Apr 16 17:01:51 gtest mysql-systemd-start [12214]:在/etc/mysql/my.cnf找不到Percona Server配置。请使用update-alternatives安装一个。

但是我希望在安装时可以使用apt来填充它。看起来像某种鸡蛋和鸡蛋循环,但超出了我的能力。

3)与2相同,但密码被故意设置为空。结果与步骤1 中的结果相同。

我没有想法。有什么提示吗?

THX。

3 个答案:

答案 0 :(得分:1)

在SO上查看错误答案后花了好几个小时。这似乎适用于Ubuntu。我没有使用export DEBIAN_FRONTEND=noninteractive,也没有提示我输入密码。我觉得使用不正确的debconf条目,noninteractive只需输入密码为空白的提示。

echo "percona-server-server-5.7 mysql-server/root_password password supersecret" | debconf-set-selections
echo "percona-server-server-5.7 mysql-server/root_password_again password supersecret" | debconf-set-selections

Percona'挂钩' MySQL所以你可以检查它确实在运行

service mysql status

如果你看到类似

的话,你会知道它是percona
  

mysql.service - LSB:启动和停止mysql(Percona Server)守护程序

然后测试登录

mysql -u user -psupersecret

我实际上从你关于检查/var/cache/debconf/passwords.dat的一次性评论中得到了这个,所以谢谢你

答案 1 :(得分:0)

大家好消息!我弄清楚真正的问题是什么。

上述所有情况很可能是由于我一再试图在已经设置好的盒子上取得成功。这导致了一个典型的拆分包依赖地狱问题。通过依赖树我发现,除其他外,有一个依赖包mysql-common令人惊讶地只包含一个文件,/etc/mysql/my.cnf加上一些空目录和典型的Debian docs结构。

在考虑此软件包后,无人参与的安装使用所有三种方法按预期工作。现在唯一剩下的就是如何自动执行mysql_secure_installation

答案 2 :(得分:0)

对于Debian 10,myol所描述的答案不适用于percona-server-server-5.7,但预播效果很好,如mikky在其初始文章中所述:

echo "percona-server-server-5.7 percona-server-server-5.7/root-pass password supersecret" | debconf-set-selections
echo "percona-server-server-5.7 percona-server-server-5.7/re-root-pass password supersecret" | debconf-set-selections

运行以下命令显示预种子数据库中当前的内容:

debconf-show percona-server-server-5.7

安装并访问数据库:

apt-get install percona-server-server-5.7
mysql -u root -psupersecret

安装后,/var/cache/debconf/passwords.dat中预种子数据库中密码的“值”字段确实为空,但是预种子密码仍然有效。因此,我想这可能是一种清理实际值的新安全措施。

要重试进程运行(请谨慎使用,它将删除数据库!):

dpkg -P percona-server-server-5.7