コマンドラインからMySQLにログインしようとすると、このエラーが発生します。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
これはMySQLがまだ開始されていないことを意味すると思います。だから私はそれを始めようとします:
Sudo /etc/init.d/mysql start
そして私はこのメッセージを受け取ります:
* Starting MySQL database server mysqld [fail]
MySQLを起動するためにどこを参照/何をしますか? Ubuntu 8.04を実行していて、apt-getを使用してMySQLをインストールしています。私はそれを始めることができ、それを数回使用したので、なぜそれが機能しなくなったのか分かりません。
pdate: Sudo /etc/init.d/mysql statusを実行すると、次のメッセージが表示されます。
* MySQL is stopped.
pdate#2:私のログファイル(/var/log/mysql.log&/var/log/mysql.err)は空です(これらが正しい場合)
Ubuntu 12.04では、/ etc/mysql/my.cnfファイルのバッファーサイズを変更した後も同じ問題が発生しました。少し夢中になっているようです。とにかく、デフォルトの設定に戻そうとしても、MySQLはまだ起動しません。
それを解決するためにいくつかの異なる方法を試しましたが、/ var/run/mysql/mysql.sockが見つからないことに気付きました。これは問題となる可能性があるため、そこで確認し、欠落している場合は、次の手順で置き換えることができます。
Sudo touch /var/run/mysql/mysql.sock
Sudo chown mysql /var/run/mysql/mysql.sock
これは[〜#〜]ない[〜#〜]私のために問題を修正しました!しかし、それはいくつかの場合があります。
私がしなければならなかったことは、MySQLを完全に再インストールすることでした。これを行うには、Sudoコマンドを使用する必要があります。 MySQLを完全に削除して再インストールする手順は次のとおりです。
MySQLを削除
Sudo apt-get --purge remove mysql-server
Sudo apt-get --purge remove mysql-client
Sudo apt-get --purge remove mysql-common
オプションで、apt-get --purgeをaptitudeで置き換えることにより、aptitudeを使用できます。
クリーンアップ
Sudo apt-get autoremove
Sudo apt-get autoclean
MySQL dirを削除
Sudo rm -rf /etc/mysql
MySQLをインストール
Sudo apt-get install mysql-server mysql-client
これでMySQLが実行されているはずです。これを確認するには、次のようにします。
Sudo service mysql status
見るべき
mysql start/running, process xxxxx
これが役に立てば幸いです。これを実行した後、まだ使用可能なすべてのデータベースとテーブルを追加すると思いますが、それらのデータベースのユーザーとパスワードを再作成する必要がありました。
注:phpのmysql拡張機能がある場合は、これも再インストールする必要があります。
Sudo apt-get install php5-mysql
警告:これは危険です。mysqlは安全ではなく、誰もがテーブルに接続、編集などできるようになるため、このコマンドでサーバーを実行したままにしないでください。
セーフモードで起動してみてください:/usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables
これが機能する場合、情報スキーマまたはmysqlテーブルに問題がある可能性があります。それが機能しない場合は、インストールに問題があります。
512MBのデジタルオーシャンドロップレットでも同じ問題が発生しました。
メモリ不足が原因であることが判明しました。
当面の解決策は、他のサービスを再起動してメモリを解放することです。
Sudo service Apache2 restart
次に、うまくいけば、十分なメモリがあれば、mysqlを再起動できるはずです
Sudo service mysql restart
長期的な解決策は、RAMを増やすか、 スワップメモリを作成 することです。
最近、ubuntuを更新した後もこの問題が発生しました。正確には何が問題なのかまだわかりません。現時点でmysqlを実行するために機能していた1つの回避策は、次のとおりです。
Sudo aa-complain /etc/apparmor.d/*mysql*
これにより、apparmorがmysqlの実行を停止したことを示し、おそらくログも空である理由を説明します。mysqlの実行は許可されませんでした。
これまでのところ/var/log/apparmor
に「苦情」がないため、これは奇妙な問題であり、kern.logの唯一の監査エントリは、プロファイルを苦情モードに変更することからのものです。
これを行う際に、aa-complainコマンドがこのファイルを見つけられないという不満を言ったので、(空の)/etc/apparmor.d/local/usr.sbin.mysql
ファイルも追加したことに注意してください。
他の回答と同様にログファイルを確認します。また、十分な(または任意のディスク領域)があることを確認します。 MySQLは、空のパーティションでこのように動作できます。
df -h
そうでない場合は、MySQLのドキュメントで サーバーのデバッグ を確認してください。それらのmyisamchk
(MyISAMを使用している場合)は特に便利です。
ログファイルを確認します。 Debianでは少なくとも、mysql *ログを/var/log
。
この同じ問題があった場合、解決策は私を正面から見つめていたことがわかりました。ドライブがいっぱいでした。ログを書き込む場所がないため、ログは取得されません。
これは他の人を助けるかもしれないと考えています...だから、ここにあります。
Mysql 5.5(ubuntuのデフォルト)を新しい5.7に移行したかった
(新しいネイティブJSON型を使って遊びたい)
指示に従って最新バージョンをインストールしました...
しかしMySQLは開始したくありませんでした。
かなりの時間をかけて調べたところ、/var/log/mysql/errors.log
にこの行が見つかりました。
unknown variable 'key_buffer=16M'
これは/etc/mysql/my.cnf
で設定されるもので、アップグレード中に保持することを選択しました。
したがって、その後は非常に簡単です:
同じディレクトリにあるmy.cnf
バージョンでmy.cnf.dpkg-dist
を置き換えました...
その後、実行する必要がありました
Sudo mysql_upgrade -u root -p Sudo service mysql restart
そして今、MySQLはバックアップして実行されています
何が悪いのかについて別のバリエーションを見つけました。データディレクトリを移動したところ、mysqlユーザーのディレクトリを変更するのを忘れたことがわかりました。これも失敗し、何も出力されません。後から見ると明らかに間違っていますが、エラーメッセージがないため、すべてのささいな問題を見つけるのが難しくなっています。
同じ問題が、PPAからmysql 5.6がインストールされたUbuntu 12.04 Digital Ocean VPSで古くから私を悩ませました。症状は、/var/run/mysqld/mysql.sock
のmysql.sockファイルが削除されても再作成されないというものでした。そのため、mysqlが更新されるか、サーバーが再起動するたびに、次のコマンドを手動で実行する必要がありました。
Sudo touch /var/run/mysqld/mysql.sock
Sudo chown mysql /var/run/mysqld/mysql.sock
これは、カイルCの回答によるものです(mysqlではなくmysqldを除く)。最後に、通常Sudo apt-get install mysql-server
コマンドを実行するときに来るmysql 5.5にダウングレードしました。しかし、それは簡単ではなかったので、ここに私がしなければならなかったことがあります:
# Manually get mysql running if it is not
Sudo touch /var/run/mysqld/mysql.sock
Sudo chown mysql /var/run/mysqld/mysql.sock
Sudo service mysql start
# take a dump of all databases
# we are going to remove the mysql files so don't skip this)
mysqldump -u root -p > all-databases.sql
# Completely remove mysql
Sudo apt-get remove --purge mysql-server mysql-client mysql-common
Sudo apt-get autoremove
Sudo apt-get autoclean
# Remove mysql 5.6 from debs (otherwise it will reinstall 5.6)
rm /etc/apt/sources.list.d/ondrej-(mysql something please check)
# remove a flag that would prevent the installation
# because it is seen as a downgrade
Sudo rm /var/lib/mysql/debian-5.6.flag
# I had to remove the mysql files as well
# reference http://ubuntuforums.org/showthread.php?t=1998260&page=3
rm -rf /var/lib/mysql
rm -rf /etc/mysql*
# Install mysql
Sudo apt-get install mysql-server mysql-client mysql-common php5-mysql
# manually update the all-databases.sql file and
# remove all STATS_PERSISTENT clauses on table creation statments
# re import the databses
mysql -u root -p < all-databases.sql
# restart Apache
Sudo service Apache2 restart
# at this point my wordpress site stated error connecting to database.
# This was resolved by logging into mysql and running:
FLUSH PRIVILEGES
うまくいけば、これは同じ痛みを持っている他の誰かを助けるでしょう。