Debian

如何使用 apt-get 在 Debian 中升級 MySQL?

  • October 29, 2016

我正在使用交鑰匙 Linux 虛擬機。那裡的 Debian 版本顯然在“Wheezy”升級路徑上(如果你這麼稱呼它的話)。如您所見,我對 Linux 並不完全滿意。

我需要 MySQL 5.6 提供的一些新功能,而我目前安裝的是 MySQL 5.5.35。我想獲得最新版本(截至本文發佈時為 5.6.17)或至少任何 5.6.x。

我試過了apt-get update,,,apt-get upgradeapt-get dist-upgrade這些成功更新了一堆東西,但沒有一個是 MySQL。我試過apt-get upgrade mysql-server了,它說我已經有了最新版本。

當我需要 5.6 時,Web 上的 Debian Wheezy 軟體包儲存庫列表顯示 MySQL 5.5,僅此而已。然後我讀了一些關於“backports”的東西,聽起來它可能能讓我得到我的特定 Debian 不應該有的東西——但我似乎無法讓它工作。它需要在/etc/apt/sources.list.d/sources.list. 當我嘗試這樣做,然後執行apt-get update時,我得到 404 錯誤。

我也嘗試了其他幾條路線,其中一條正在編譯香草 MySQL 下載,我失敗得很慘,不想再試一次。

我對如何做到這一點感到非常困惑。apt-get論壇/部落格上列出的大多數 URLwget似乎在發布後不久就消失了,所以我無法理解任何人是如何尋找正確資訊的。我已經連續兩天嘗試這樣做了,但無法到達任何地方。

因此,假設您已經閱讀到這裡,我很想知道是否有人可以通過某種相對輕鬆的自動化方式在 Debian 中升級 MySQL(我不必make手動使用或導出/導入我目前的數據庫和配置) )。

從 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
  1. 還將以下內容添加到/etc/apt/preferences.
Package: *
Pin: release a=experimental
Pin-Priority: 1
  1. 然後執行
apt-get update
  1. 然後執行
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
  1. 現在您應該安裝 libdbd-mysql-perl,它是 mysql 包的執行時依賴項。
apt-get install libdbd-mysql-perl
  1. 然後 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

目前最好的選擇是使用允許安裝的官方MySQL APT repo 。apt-get upgrade

引用自:https://unix.stackexchange.com/questions/125327