在 Ubuntu 20.04 上安装 MySQL 5.7

在 Ubuntu 20.04 上安装 MySQL 5.7

我正在尝试在全新安装的 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

经过一番努力,我终于按照以下方式安装和使用它,

  1. 从 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
    
  2. 然后按照官方教程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
  1. 如果你已经按照上面的教程操作过,那么你的 mysql 基础目录是/usr/本地/mysql/并寻求.cnf文件在那里,所以如果你需要像套接字或其他东西,你可以把我的cnf/usr/本地/mysql/以及任何常规指令,例如:

    [mysqld]
    #
    # * Basic Settings
    #
    user            = mysql
    socket          = /usr/local/mysql/data/mysqld.sock
    
  2. 安装后,不要忘记登录并更改 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 中对我有用

相关内容