是否可以在Ubuntu 16.04上安装MySQL 5.5或5.6?


13

我最近升级到Ubuntu 16.04。不幸的是,我需要使用MySQL 5.5或5.6。我尝试了许多解决方案,使MySQL 5.5或5.6在Ubuntu 16.04上运行,例如在Ubuntu 16.04上安装MySql 5.6。但是他们都不在工作。Ubuntu检测到未满足的依赖关系,但对于5.5则说“但不会安装”,或者说包'mysql-server-5.6'没有候选安装...

无法在Ubuntu上强制使用MySQL的早期版本吗?这是为什么?


1
官方的Ubuntu 16.04存储库不包含5.7以外的任何MySQL版本。如果要使用其他版本,则必须从其他来源查找软件包。如果不进行此项检查,您实际上应该没有升级到16.04。
fkraiem '16


您尝试了链接问题的哪个答案?有些人使用来自Oracle的Deb软件包,甚至从源代码进行编译,无论软件存储库的状态如何,该软件包都应该起作用。
David Foerster

@fkraiem“您真的应该没有进行任何升级……而不进行检查” –您假设在升级时就已经知道MySQL 5.5的必要性。我最近开始使用需要MySQL 5.5(没有更新)的旧软件开始新工作-因此,在升级之前,我应该检查所有可能的雇主以及他们正在做什么?
内森·克劳斯

Answers:


22

分步指南*在Ubuntu 16.04 Xenial-Xerus上安装mysql5.5.x。请参阅此文档

要么

请参阅以下步骤:

在Ubuntu 16.06上安装MySQL 5.5.51

  1. 卸载任何现有版本的MySQL

    sudo rm /var/lib/mysql/ -R
    
  2. 删除MySQL配置文件

    sudo rm /etc/mysql/ -R
    
  3. 自动卸载mysql

    sudo apt-get autoremove mysql* --purge
    sudo apt-get remove apparmor
    
  4. 从MySQL网站下载5.5.51版

    wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.56-linux-glibc2.5-x86_64.tar.gz
    
  5. 添加mysql用户组

    sudo groupadd mysql
    
  6. mysql(不是当前用户)添加到mysql用户组

    sudo useradd -g  mysql mysql
    
  7. 提取mysql-5.5.51-linux2.6-x86_64.tar.gz/usr/local

    cd /usr/local
    sudo tar -xvf mysql-5.5.49-linux2.6-x86_64.tar.gz
    
  8. 在以下位置创建mysql文件夹/usr/local

    sudo mv mysql-5.5.49-linux2.6-x86_64 mysql
    
  9. 设置mysql目录所有者和用户组

    cd mysql
    sudo chown -R mysql:mysql *
    
  10. 安装所需的lib软件包

    sudo apt-get install libaio1
    
  11. 执行mysql安装脚本

    sudo scripts/mysql_install_db --user=mysql
    
  12. 从mysql目录外部设置mysql目录所有者

    sudo chown -R root .
    
  13. 从mysql目录内部设置数据目录所有者

    sudo chown -R mysql data
    
  14. 复制mysql配置文件

    sudo cp support-files/my-medium.cnf /etc/my.cnf 
    
  15. 启动mysql

    sudo bin/mysqld_safe --user=mysql &
    sudo cp support-files/mysql.server /etc/init.d/mysql.server
    
  16. 初始化root用户密码

    sudo bin/mysqladmin -u root password '111111'
    
  17. 启动mysql服务器

    sudo /etc/init.d/mysql.server start
    
  18. 停止mysql服务器

    sudo /etc/init.d/mysql.server stop
    
  19. 检查mysql状态

    sudo /etc/init.d/mysql.server status
    
  20. 在启动时启用myql

    sudo update-rc.d -f mysql.server defaults 
    
  21. 启动时禁用mysql(可选)

    sudo update-rc.d -f mysql.server remove
    
  22. 将mysql路径添加到系统

    sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
    
  23. 现在直接使用下面的命令来启动mysql

    mysql -u root -p 
    

PS:需要重新启动才能进行更改。

基于中文博客


1
就像一个沙姆!谢谢。只有一件事-如果您在Ubuntu 16上安装MySQL-不要创建systemctl脚本-重启后它会自动创建。
1nstinct '16

1
重新启动需要在步骤#16和#17之间进行,才能使步骤#17-21工作。
e_i_pi

完成了所有这些操作,但最终遇到了依赖性问题(大概是某些共享库陷入了错误的版本)。
Amichai Schreiber

是否真的有必要删除 apparmor吗?我看不到要重新安装的生产线。我对apparmor也不太了解,但是卸载似乎是一个安全问题。
Parag

无需拆卸AppArmor的还是工作
维托尔Vezani

4

试试这个,首先您必须删除

sudo rm /var/lib/mysql/debian-5.7.flag

然后

sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6
sudo apt install mysql-client-5.6


2

一个更简单的替代方法是使用Percona服务器。通过他们的文档

从Percona apt存储库安装Percona Server

  1. 从Percona网站获取存储库软件包:

    wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
    
  2. 使用dpkg安装下载的软件包。为此,请以超级用户身份或使用sudo运行以下命令

    dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
    

    安装此软件包后,应添加Percona存储库。您可以在/etc/apt/sources.list.d/percona-release.list文件中。

  3. 记住要更新本地缓存:

    apt-get update
    
  4. 之后,您可以安装服务器软件包:

    apt-get install percona-server-server-5.5
    

HTTP请求已发送,正在等待响应...找不到404
simhumileco

1
@simhumileco他们更改了版本。从今天开始,使用wget repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb,然后使用dpkg -i percona-release_0.1-4。$(lsb_release -sc) _all.deb
Leonel Martins
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.