web-dev-qa-db-ja.com

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

好奇心から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)

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

30
WebLearner

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

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

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

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

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

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

Sudo fallocate -l 4G /swapfile

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

Sudo chmod 600 /swapfile

交換する:

Sudo mkswap /swapfile

有効化:

Sudo swapon /swapfile

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

24
Arthur Wang

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

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

  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を正常にインストールしました。

3
Ritesh

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

innodb_buffer_pool_size = 20M

/etc/mysql/my.cnf

2
maxkoryukov

Performance_schemaを無効にすると、多くのメモリも節約されます。起動時に空のデータベースが400mから40mになります:

performance_schema=0

MySQL Docs: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html

1
dannrob

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)ENOENTのgrepを実行してください。先ほど言ったように、この解決策はおそらく私のコンピューターに固有のものですが、試してみたいと思うかもしれません。

1
apricot boy

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

service mysql start

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

my.cnfで行った以下の変更:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 
0
Lavina Chitara