如何使用 apt-get 升级 Debian 中的 MySQL?

如何使用 apt-get 升级 Debian 中的 MySQL?

我正在使用 Turnkey Linux 虚拟机。那里的 Debian 版本显然处于“Wheezy”升级路径上(如果你这么称呼的话)。正如你所看到的,我对 Linux 并不完全满意。

我需要 MySQL 5.6 提供的一些新功能,而我当前安装的是 MySQL 5.5.35。我想要获取最新版本(截至本文发布时为 5.6.17)或至少任何 5.6.x。

我试过了apt-get updateapt-get upgradeapt-get dist-upgrade。这些成功地更新了很多东西,但没有一个是MySQL。我试过了apt-get upgrade mysql-server,它说我已经有最新版本了。

当我需要 5.6 时,网络上的 Debian Wheezy 软件包存储库列表显示 MySQL 5.5,没有其他任何内容。然后我读到了一些关于“向后移植”的内容,听起来它可能能让我得到我的特定 Debian 不应该拥有的东西——但我似乎无法让它工作。它需要添加行到/etc/apt/sources.list.d/sources.list.当我尝试这样做,然后运行 ​​时apt-get update,我收到 404 错误。

我还尝试了其他几种方法,其中一种是编译普通的 MySQL 下载,但我失败了,我不想再尝试了。

我对这是如何完成的感到非常困惑。论坛/博客上列出的大多数 URL apt-get,甚至是wget,似乎在发布后很快就消失了,所以我无法理解为什么有人会去寻找正确的信息。我已经连续两天尝试这样做,但无济于事。

所以假设你已经读到这里了,我很想知道是否有人有办法以某种相对轻松的自动化方式升级 Debian 中的 MySQL(一种我不必手动使用make或导出/导入我当前的数据库和配置的方式) )。

答案1

目前最好的选择是使用官方MySQL APT 存储库允许apt-get upgrade安装。

答案2

从 wheezy 上的实验重建实验性 5.6 MySQL 源代码非常简单,几乎微不足道。但是,您将需要大量的磁盘空间;构建完成后,构建目录使用了 5.2 GB。此外,它需要一段时间来构建,并运行大量的测试。我没有费心去计时,但留了几个小时。可以禁用测试,但我建议让它们运行 - 只要它们通过就无害。他们在我的机器上做了。好消息是我能够毫不费力地构建和安装它。我进行了以下基本测试。

faheem@orwell:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.6.16-1~exp1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

所以,我至少可以连接到服务器。以下是已安装的软件包的样子:

$ dpkg -l | grep mysql

ii  libdbd-mysql-perl                     4.021-1+b1              amd64                   Perl5 database interface to the MySQL database
ii  libmysqlclient18:amd64                5.5.35+dfsg-0+wheezy1   amd64                   MySQL database client library
ii  libqt4-sql-mysql:amd64                4:4.8.2+dfsg-11         amd64                   Qt 4 MySQL database driver
ii  mysql-client-5.6                      5.6.16-1~exp1           amd64                   MySQL database client binaries
ii  mysql-client-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database core client binaries
ii  mysql-common                          5.5.35+dfsg-0+wheezy1   all                     MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-common-5.6                      5.6.16-1~exp1           all                     MySQL 5.6 specific common files, e.g. /etc/mysql/conf.d/my-5.6.cnf
ii  mysql-server-5.6                      5.6.16-1~exp1           amd64                   MySQL database server binaries and system database setup
ii  mysql-server-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database server binaries
ii  python-mysqldb                        1.2.3-2                 amd64                   Python interface to MySQL

以下是步骤的细分。

  1. 如果您安装了任何令人惊叹的 MySQL 5.5 软件包,请将其删除,它们只会在以后造成麻烦。如果有任何依赖于这些的软件包,它们也必须被删除。
  2. 首先,获取来源。您需要添加以下内容(或类似内容,根据您的首选服务器进行调整)/etc/apt/sources.list

    deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free contrib
    
  3. 还将以下内容添加到/etc/apt/preferences.

    Package: *
    Pin: release a=experimental
    Pin-Priority: 1
    
  4. 然后运行

    apt-get update
    
  5. 然后运行

    apt-get source mysql-5.6
    

    在一些合适的目录中。我通常在 中创建一个目录/usr/local/src
    在本例中为/usr/local/src/mysql

  6. 然后 cd 到/usr/local/src/mysql.

  7. 跑步

    sudo apt-get build-dep mysql-5.6
    

    在我的机器上安装了几个软件包。

  8. 安装一些基本的构建包。

    apt-get install build-essential devscripts fakeroot
    

    然后 cd 进入生成的源目录/usr/local/src/mysql/mysql-5.6- 5.6.16并运行

    debuild -uc -us
    

    这需要一段时间来构建。在某些情况下,增加
    版本号是个好主意,但这里并不是真的有必要。因为其他 MySQL 5.6 软件包不太可能出现问题。

    如果您不想运行测试,可以使用

    DEB_BUILD_OPTIONS="nocheck" debuild -uc -us
    
  9. 现在您应该安装 libdbd-mysql-perl,它是 mysql 软件包的运行时依赖项。

     apt-get install libdbd-mysql-perl
    
  10. 然后 cd 上一级到/usr/local/src/mysql。那里应该有一些 deb 包。你至少需要安装

     mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

    例如,可以通过运行以下命令来完成此操作:

     dpkg -i mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

答案3

所有测试都玩得开心。

  1. .apt-get 安装 libaio1
  2. mysql 组添加
  3. useradd -r -g mysql mysql
  4. wget -O mysql-5.6.16-debian6.0-x86_64.deb
  5. http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.16-debian6.0-x86_64.deb
  6. dpkg -i mysql-5.6.16-debian6.0-x86_64.deb
  7. cd /usr/local
  8. ln -s /opt/mysql/server-5.6 mysql
  9. cd mysql
  10. 脚本/mysql_install_db --user=mysql
  11. chown -R 根。
  12. chown -R mysql数据
  13. cp 支持文件/mysql.server /etc/init.d/mysql
  14. mkdir -p /etc/mysql/conf.d/
  15. cp my.cnf /etc/mysql/
  16. echo $'!include /etc/mysql/my.cnf\n!includedir /etc/mysql/conf.d/' > my.cnf
  17. 服务mysql启动
  18. ./bin/mysql_secure_installation

相关内容