我正在尝试在全新安装的 Ubuntu 20.04 上安装 MySQL 5.7。我按照 Kulfy 的步骤进行操作这个帖子在 Ubuntu 20.04 上安装 MySQL 5.7。我可以安装 mysql-client,但不能安装 mysql-server。
输出
apt-cache policy mysql-server
是
mysql-server:
Installed: (none)
Candidate: 8.0.19-0ubuntu5
Version table:
8.0.19-0ubuntu5 500
500 http://ro.archive.ubuntu.com/ubuntu focal/main amd64 Packages
500 http://ro.archive.ubuntu.com/ubuntu focal/main i386 Packages
5.7.30-1ubuntu18.04 500
500 http://repo.mysql.com/apt/ubuntu bionic/mysql-5.7 amd64 Packages
5.7.29-0ubuntu0.18.04.1 500
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main i386 Packages
我使用以下命令安装 mysql-server。
sudo apt install mysql-server=5.7.29-0ubuntu0.18.04.1
上述命令的输出是:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mysql-server : Depends: mysql-server-5.7 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
您能给我指明正确的方向吗?
谢谢你!
答案1
我设法让它工作了!我不是经验丰富的 Linux 用户,因此请随意评论/编辑/改进我的答案。正如你所看到的,我不明白为什么有些事情有效,而有些却无效……
因此,我安装了 mysql-apt-config 作为辅助程序。这将注释掉/etc/apt/sources.list.d/mysql.list
(根据 Kulfy 在这个帖子)
本文也有帮助。
wget http://repo.mysql.com/mysql-apt-config_0.8.10-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
运行以下命令并从列表中选择 MySQL 5.7:
sudo dpkg-reconfigure mysql-apt-config
sudo apt update
sudo apt-cache policy mysql-server
不知道为什么,但是如果没有下面的内容,安装mysql-community-server时就会出错,并且失败。
sudo mkdir /etc/mysql/conf.d
按此顺序安装组件。否则将显示与我原始问题类似的错误。基本上,我尝试安装 mysql-server - 请求 mysql-community-server 失败。我尝试安装后者,它再次失败,请求 mysql-client。我尝试安装这个,它成功了。然后我追溯了我的步骤 - 安装 mysql-community-server,然后安装 mysql-server。它成功了,没有错误。
sudo apt install -f mysql-client=5.7.30-1ubuntu18.04
sudo apt install -f mysql-community-server=5.7.30-1ubuntu18.04
sudo apt install -f mysql-server=5.7.30-1ubuntu18.04
我使用以下命令来保护 MySQL 安装 sudo mysql_secure_installation
防止升级到 MySQL 8 - 感谢 NSwanson7这个帖子
sudo nano /etc/apt/preferences.d/mysql
在上面创建的文件中添加以下内容。
Package: mysql-server
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-client
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-community-server
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-community-client
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001
Package: mysql-apt-config
Pin: version 0.8.10-1
Pin-Priority: 1001
希望这可以帮助!
答案2
我跟着这答案是有效的。
首先,我从我的电脑中删除了mysql删除 Mysql
然后在下载我选择的部分
通常我会遵循错误提示。
我还会
sudo apt-get install libaio1
在错误提示的地方安装需要的东西。
更新时间:2020/05/31 我认为顺序如下:
sudo dpkg -i mysql-common_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient20_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqld-dev_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-source_5.7.30-1ubuntu18.04_amd64.deb
sudo apt-get install libaio1
sudo apt install libmecab2
sudo dpkg -i mysql-community-client_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-server_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-server_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-test_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-testsuite_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient20_5.7.30-1ubuntu18.04_amd64.deb
答案3
经过一番努力,我终于按照以下方式安装和使用它,
从 mysql 下载档案中,下载通用 5.7,最好先导航到 /usr/local/,这样
sudo su cd /usr/local wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
然后按照官方教程https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql shell> cd /usr/local shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> mkdir mysql-files shell> chown mysql:mysql mysql-files shell> chmod 750 mysql-files shell> bin/mysqld --initialize --user=mysql shell> bin/mysql_ssl_rsa_setup shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server
如果你已经按照上面的教程操作过,那么你的 mysql 基础目录是/usr/本地/mysql/并寻求.cnf文件在那里,所以如果你需要像套接字或其他东西,你可以把我的cnf在/usr/本地/mysql/以及任何常规指令,例如:
[mysqld] # # * Basic Settings # user = mysql socket = /usr/local/mysql/data/mysqld.sock
安装后,不要忘记登录并更改 root 密码,否则 mysql 将无法正常工作!
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
故障排除:
如果您收到一些缺少库的消息,请尝试安装:
apt install libncurses5 libaio1 libmecab2
答案4
最好使用 docker。降级是一场噩梦。我写了一篇简短的教程,教你如何在 ubuntu 20.04 中安装带有 MySQL 5.7 的 Docker 容器 https://assen.xyz/easy-way-to-deploy-mysql-5-7-container-in-ubuntu-20-04/
我的 xp 降级了:正如 @tsotzolas 所说,使用它来清除 v 8.0 安装 如何卸载 MySQL?
但这会清除您的用户、密码...所以,如果您进行了升级,请先备份!
然后按照以下步骤操作 https://marabesi.com/mysql/2019/12/23/mysql-5.7-on-ubuntu-19.html
这在 Kubuntu 19.10 和 20.04 中对我有用