好奇心から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)
誰が何が間違っていたのか見ることができますか?
あなたが抱えている問題は このバグレポート と同じに見えます。起動に失敗したのは、デフォルトのMySQL 5.6構成がマイクロインスタンスで取得できる以上のメモリを必要とするためと思われます。
エラーの解決策は、次のいずれかを実行することです。
max_connections
変数により小さな値を設定します小さなVPSを初期化すると、同じ問題が発生します。この問題は、メモリが少ないために発生します。したがって、不要なメモリを増やすために余分なお金を費やすことなく、単にスワップファイルを作成してインストールを支援することができます。はい、スワップは遅いですが、必要なのはインストールを完了させることだけです。
Ubuntu 14.04では、以下を実行して問題を解決します。
4Gスワップファイルを作成します。
Sudo fallocate -l 4G /swapfile
そのアクセス権を、rootのみがアクセスおよび変更できるように変更します。
Sudo chmod 600 /swapfile
交換する:
Sudo mkswap /swapfile
有効化:
Sudo swapon /swapfile
これでmysqlを再度インストールできます。今回は成功するはずです。削除する前に、前回失敗したインストールを削除することを忘れないでください。
同じ問題に遭遇しました。 VMに12Gbのメモリを十分に備えていましたが、それでも問題のように失敗していました。しばらく時間を費やした後、デフォルトのapt getには、構成変換およびツール変換パッケージの一部が欠落していることがわかりました。
MySQL aptリポジトリは、apt-get
を使用して、最新のソフトウェアパッケージでMySQL製品をインストールおよび更新するためのシンプルで便利な方法を提供します。従うべきことは次のとおりです。
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 APTリポジトリからパッケージ情報を更新します(この手順は必須です)。
Sudo apt-get update
APTを使用したMySQLのインストール
次のコマンドでMySQLをインストールします。
Sudo apt-get install mysql-server
これにより、MySQLサーバー用のパッケージと、クライアント用およびデータベース共通ファイル用のパッケージがインストールされます。
インストール中に、ダイアログボックスから2つの要求があります。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
を正常にインストールしました。
私の場合、私は追加しました
innodb_buffer_pool_size = 20M
/etc/mysql/my.cnf
へ
Performance_schemaを無効にすると、多くのメモリも節約されます。起動時に空のデータベースが400mから40mになります:
performance_schema=0
MySQL Docs: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html
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を実行してください。先ほど言ったように、この解決策はおそらく私のコンピューターに固有のものですが、試してみたいと思うかもしれません。
私の場合、my.cnf
にいくつかの変更を加え、ib_logfile0
とib_logfile1
という名前の2つのログファイルを削除して、mysqlを起動するだけでした。
service mysql start
Mysqlを再インストールする必要はありません。これら2つのログファイルを削除してmysqlサーバーを再起動するだけです
my.cnf
で行った以下の変更:
max_connections = 1000
max_allowed_packet = 1024M
wait_timeout = 7200