[英]Unatttended MySQL 8 community install on Ubuntu 18.04 WSL
我正在尝试在没有任何提示的情况下在 Ubuntu(即 Linux 的 Windows 子系统)上安装 MySQL 8。
我有以下脚本:
apt-key add --keyserver pgp.mit.edu --recv-keys 5072E1F5
echo 'deb http://repo.mysql.com/apt/ubuntu/ bionic mysql-8.0' > /etc/apt/sources.list.d/mysql.list
apt-get update --yes
apt-get install --yes debconf-utils
echo 'mysql-community-server mysql-community-server/root-pass password' | sudo debconf-set-selections
echo 'mysql-community-server mysql-community-server/re-root-pass password' | sudo debconf-set-selections
apt-get install --yes mysql-community-server
(部分构建感谢这个问题的答案)
它似乎工作正常,只是它提示我选择身份验证方法......我想选择 mysql_native_password 并且在没有交互提示的情况下这样做。
我猜这个解决方案是另一个 debconf-set-selections 设置,但是......除了问这个案例是什么之外......是否有所有可能选项的参考?
还有一个问题,apt-get 说为服务创建了一个符号链接,但没有创建服务......但这并不是真正的表演者,因为我使用 WSL 只是作为实际测试的试验场Ubuntu 服务器,我认为这会起作用......希望如此。
EDIT1:不要介意最初的问题......我设法在这里找到了一个答案,这导致偶然发现了这个 dockerfile
所以我最终添加了
echo 'mysql-community-server mysql-server/default-auth-override select Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)' | sudo debconf-set-selections
是我需要的线路吗...
然而,另一个可能是 WSL 特定的问题仍然存在……也就是说,没有创建 MySQL 服务。 我应该注意到,虽然我在 WSL 之外安装了 MySQL,但服务器已关闭,特别是为了让 WSL 可以运行。
我在安装时得到以下输出,接近尾声:
Setting up mysql-community-server (8.0.16-2ubuntu18.04) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
dpkg: error processing package mysql-community-server (--configure):
installed mysql-community-server package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Errors were encountered while processing:
mysql-community-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
我唯一能找到的与此相关的是完全重新安装的建议,但即使重新安装 WSL 实例也无法解决此问题。
EDIT2:添加
apt-get dist-upgrade --yes --allow-remove-essential --allow-change-held-packages
修复了上述错误,尽管没有任何错误,但仍未创建服务。
我通过将 /etc/init.d/mysql 文件从另一个 WSL 实例(通过升级安装的 mysql 8)复制到 /etc/init.d 来修复丢失的 mysql 服务
sudo service mysql start
返回 [fail],但 mysql 守护进程运行得很好。
否则,我已经看到人们通过首先从 MySQL 的 repo 安装较低版本,然后升级到 mysql 8 来更干净地实现这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.