Ubuntu 14.04へのMySQL 5.6のインストールが失敗したのはなぜですか?


30

好奇心からUbuntu 14.04でMySQL 5.6を見てみたいと思いました。そして、この記事に基づいてインストールは簡単で簡単なはずであるように見えました。そこで、Ubuntu 14.04(64ビット)を実行しているAWS EC2マイクロサーバーを起動し、(PuTTYを介して)そのままのインスタンスにログインして、次のコマンドを発行しました。

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(最初の2つのコマンドは、単にapt-get install単独で実行することは以前は機能しなかったため、必死の動きでした。しかし、3つのコマンドすべてを使用しても、インストール手順はまだ機能しませんでした。)

上記で参照した記事に基づいて、最終コマンドからの次の出力を確認すると予想した時点で:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

代わりにこれを得ました:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

誰が何が間違っていたのか見ることができますか?


1
ログには何と書かれていますか?cat /var/log/mysql.err
パテ14

回答:


22

あなたが抱えている問題はこのバグレポートと同じに見えます。起動に失敗したのは、デフォルトのMySQL 5.6構成がマイクロインスタンスで取得できる以上のメモリを必要とするためと思われます。

このエラーの解決策は、次のいずれかを実行することです。

  • EC2インスタンスのメモリ量を増やします
  • MySQLのmax_connections変数により小さな値を設定します

1
はい、この問題はまさにそのバグレポートに示されているエラーです。ありがとう!これまでのところ、/ etc / apparmor.d / local / usr.sbin.mysqldが存在することを保証するために提案されたクイックフィックスを試しましたが、残念ながらそれはできませんでした。そこで、今度はメモリを増やしてインストールを試みます。
WebLearner 14

1
次の試行では、EC2インスタンスを使用する代わりに、Oracle VM Virtualboxを使用して2GBのメモリを備えたUbuntu 14.04仮想マシンを作成しました。この環境では、MySQL 5.6インストールはを使用して問題なく実行されましたsudo apt-get install mysql-server-5.6。したがって、EC2 microインスタンスには、apt-getを使用してMySQL 5.6をインストールするための十分なメモリがないようです。
WebLearner

1
MySQL 5.6をインストールする前に、MySQLのmax_connectionsを減らすことを提案する追加のコメントがバグレポートに追加されました。そのアドバイスを受けて、「[mysqld]」と「max_connections = 20」という2行を含む.cnfファイルを/etc/mysql/conf.dに追加しました。そのファイルを適切な場所に置いて、新鮮なEC2マイクロにMySQLをインストールしました。(ドキュメントによると、max_connectionsのデフォルト値は151です。20に設定することはおそらく極端です。しかし、少なくともMySQLをインストールすることが可能であることを示しています。)
WebLearner

追加情報:/var/lib/dpkg/info/mysql-server-5.6.postinstを確認し、失敗した正確な手順を再現するためにそのスクリプトを実行できることを発見しました
-shakaran

それは私の浮浪者に取り組んでいます、私は1G RAMを設定し、それを修正しました。ありがとうございました。:D
チュ-シャン・ライ

24

小さなVPSを初期化すると、同じ問題が発生します。この問題は、メモリが少ないために発生します。したがって、不要なメモリを増やすために余分なお金を費やすことなく、単にスワップファイルを作成してインストールを支援することができます。はい、スワップは遅いですが、必要なのはインストールを完了させることだけです。

Ubuntu 14.04では、以下を実行して問題を解決します。

4Gスワップファイルを作成します。

sudo fallocate -l 4G /swapfile

そのアクセス権を、rootのみがアクセスおよび変更できるように変更します。

sudo chmod 600 /swapfile

交換する:

sudo mkswap /swapfile

有効化:

sudo swapon /swapfile

これでmysqlを再度インストールできます。今回は成功するはずです。削除する前に、前回失敗したインストールを削除することを忘れないでください。


うん、完璧な答え。絶対に素晴らしい。
レン

3

同じ問題に遭遇しました。VMに12Gbのメモリを十分に備えていましたが、それでも問題のように失敗していました。しばらく時間を費やした後、デフォルトのapt getには、構成変換およびツール変換パッケージの一部が欠落していることがわかりました。

MySQL aptリポジトリは、を使用してMySQL製品を最新のソフトウェアパッケージでインストールおよび更新するためのシンプルで便利な方法を提供しapt-getます。従うべきことは次のとおりです。

  1. MySQL APTリポジトリの追加まず、MySQL aptリポジトリをシステムのソフトウェアリポジトリリストに追加します。次の手順を実行します:

    • http://dev.mysql.com/downloads/repo/apt/にあるMySQL aptリポジトリのダウンロードページに移動します

    • リリースパッケージを選択してダウンロードします。

    • 次のコマンドでダウンロードしたリリースパッケージをインストールし、version-specific-package-nameをダウンロードしたパッケージの名前に置き換えます(パッケージがあるフォルダー内でコマンドを実行していない場合は、パスが前に付きます)。

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    同じパッケージが、サポートされているすべてのDebianおよびUbuntuプラットフォームで機能することに注意してください。

    • パッケージのインストール中に、インストールするMySQLサーバーと他のコンポーネント(たとえば、MySQL Workbench)のバージョンを選択するよう求められます。選択するバージョンがわからない場合は、選択したデフォルトのオプションを変更しないでください。特定のコンポーネントをインストールしたくない場合は、noneを選択することもできます。すべてのコンポーネントを選択したら、[OK]を選択して、リリースパッケージの構成とインストールを完了します。

    バージョンの選択は後からいつでも変更できます。
    手順については、メジャーリリースバージョンの選択を参照してください。

    • 次のコマンドを使用して、MySQL APTリポジトリからパッケージ情報を更新します(この手順は必須です)。

      sudo apt-get update
      
  2. APTを使用したMySQLのインストール

    • 次のコマンドでMySQLをインストールします。

      sudo apt-get install mysql-server
      

これにより、MySQLサーバー用のパッケージと、クライアント用およびデータベース共通ファイル用のパッケージがインストールされます。

インストール中に、ダイアログボックスから2つの要求があります。MySQLインストールのルートユーザーのパスワードを指定します。

  1. MySQLサーバーの起動と停止

MySQLサーバーはインストール後に自動的に開始されます。-次のコマンドを使用して、MySQLサーバーのステータスを確認できます。

sudo service mysql status
  • 次のコマンドでMySQLサーバーを停止します。

    sudo service mysql stop
    
  • MySQLサーバーを再起動するには、次のコマンドを使用します。

    sudo service mysql start
    

このhttp://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-installに従いました。これはスムーズに機能し、すべてのパッケージをダウンロードして正常にインストールされましたmysql 5.6


どうもありがとう。これは理にかなっています。より詳細な手順の答えを変更しました。ありがとう。
リテッシュ

改善された回答の場合は+1。
デビッドフォースター

最後は私だった...それは本当に私ですか?:)
迅速に

2

私の場合、私は追加しました

innodb_buffer_pool_size = 20M

/etc/mysql/my.cnf


1
ユーザーは、MySQLをインストールするのに問題があり、それを使用していません。

ありがとう、私は質問を読みました)私はインストール中に同じ問題を抱えました。実際にインストールは完了し、mysqlはすでにサービスとしてアクセス可能であり、実行できました。しかし、インストールプロセスの最後のステップ(mysqldの開始)で、この迷惑なエラーをキャッチします。
maxkoryukov


1

Ubuntu 15.10でこの問題が発生しました。私にとっては、メモリの問題ではありませんでした(2GBのRAMと18GBのスワップがあり、そのうち合計で約300MBしか使用されていません)。

私の場合は、dpkg/etc/mysql/conf.d存在しませんでした(ただし、存在/etc/mysql/mysql.conf.dしました!)を探していました。mysqlを再インストールし、手動でフォルダーを作成すると/etc/mysql/conf.d、問題が解決しました。

これはどのように発生しましたか?何も思いつきません。この解決策は私のコンピューターに固有のものだと思うので、ほとんど答えを共有したくありませんでした。

この問題を解決するには、ユーティリティを使用しますstrace。これは、非常に冗長な場合でも、この種の処理には最適です。

私はこれを次のように使用しました:

  • ctrlc半分押した後、インストールを完了するapt-get install mysql-serverために実行dpkg --configure -aする必要がありました。

  • 走ったstrace 2>/tmp/trace dpkg --configure -a。それで私はいいstraceログになりました/tmp/trace

  • 私はログを、特に一番下を見て、失敗しました。

  • 私はそれがアクセスしようとしたことに気づき/etc/mysql/conf.d、エラーコードENOENT、そのようなファイルまたはディレクトリはありませんでした

これを試してみたい人のために、strace 2>/tmp/trace (command)とgrepを実行してくださいENOENT。先ほど言ったように、この解決策はおそらく私のコンピューターに固有のものですが、試してみたいと思うかもしれません。


0

私の場合、私がする必要があるのは、いくつかの変更を加えて、my.cnfとという名前の2つのログファイルを削除ib_logfile0ib_logfile1、mysqlを起動することだけでした。

service mysql start

mysqlを再インストールする必要はありません。これら2つのログファイルを削除してmysqlサーバーを再起動するだけです

私が行った以下の変更my.cnf

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 

他の人がフォローできるように、回答にもう少し追加してください。
ジョージウドセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.