如何使用 apt-get 在 Debian 中升級 MySQL?
我正在使用交鑰匙 Linux 虛擬機。那裡的 Debian 版本顯然在“Wheezy”升級路徑上(如果你這麼稱呼它的話)。如您所見,我對 Linux 並不完全滿意。
我需要 MySQL 5.6 提供的一些新功能,而我目前安裝的是 MySQL 5.5.35。我想獲得最新版本(截至本文發佈時為 5.6.17)或至少任何 5.6.x。
我試過了
apt-get update
,,,apt-get upgrade
。apt-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
這是步驟的細分。
- 如果您安裝了任何令人喘不過氣的 MySQL 5.5 軟體包,請將它們刪除,它們只會在以後造成麻煩。如果有任何依賴於這些的包,它們也必須去。
- 首先,獲取來源。您需要將以下內容(或類似內容,針對您的首選伺服器進行調整)添加到
/etc/apt/sources.list
:deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free contrib
- 還將以下內容添加到
/etc/apt/preferences
.Package: * Pin: release a=experimental Pin-Priority: 1
- 然後執行
apt-get update
- 然後執行
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
- 現在您應該安裝 libdbd-mysql-perl,它是 mysql 包的執行時依賴項。
apt-get install libdbd-mysql-perl
- 然後 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