web-dev-qa-db-ja.com

エラー2002(HY000):ソケット '/var/run/mysqld/mysqld.sock'を介してローカルのMySQLサーバーに接続できません(2)

_ lamp _ on Ubuntu 12.04 LTS (Precise Pangolin)をインストールし、 phpMyAdmin にrootパスワードを設定します。パスワードを忘れたので、ログインできません。ターミナルからパスワードを変更しようとすると、次のようになります。

エラー2002(HY000):ソケット '/var/run/mysqld/mysqld.sock'を介してローカルのMySQLサーバーに接続できません(2)

どうすればこれを修正できますか? LAMPを開く、アンインストールする、または再インストールすることができません。

356
sushmit sarmah

私はかつてこの問題を抱えていてmysql-serverをインストールすることによってそれを解決したので、あなたがmysql-serverまたは他の何かではなくmysql-clientをインストールしたことを確認してください。

そのエラーは、ファイル/var/run/mysqld/mysqld.sockが存在しないことを意味します。mysql-serverをインストールしなかった場合、ファイルは存在しません。 mysql-serverが既にインストールされていて実行中の場合は、設定ファイルを確認する必要があります。

設定ファイルは次のとおりです。

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

/etc/my.cnfでは、ソケットファイルconfigは/tmp/mysql.sockで、/etc/mysql/my.cnfではソケットファイルconfigは/var/run/mysqld/mysqld.sockです。そのため、/etc/mysql/my.cnfを削除または名前変更し、mysqlに/etc/my.cnfを使用させると、問題が解決する可能性があります。

212
towry

これを試して:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

また(それが実行されているかどうかを確認するために):

telnet 127.0.0.1 3306 

おそらくこれはmy.cnfファイルの/etc/somewhereファイルの誤設定にすぎません( Linuxディストリビューション に依存)。

172
Yannick

私はこれらすべての答えを見ていますが、 なし パスワードをリセットする 受け入れられない答え のオプションを提供します。実際の質問は彼 忘れた 彼のパスワードなので、これらの答えの大部分が示すように、彼はリセットする必要があります。


パスワードをリセットする

次の手順に従ってください(現在パスワードがわからなくても、パスワードを忘れた場合はいつでも試すことができます)。

  1. mysqlを停止

    Sudo /etc/init.d/mysql stop
    

    または他のディストリビューションバージョンの場合:

    Sudo /etc/init.d/mysqld stop
    
  2. セーフモードでMySQLを起動する

    Sudo mysqld_safe --skip-grant-tables &
    
  3. Rootを使用してMySQLにログインします

    mysql -uroot
    
  4. 使用するMySQLデータベースを選択してください

    use mysql;
    
  5. パスワードをリセットする

    update user set password=PASSWORD("mynewpassword") where User='root';
    
  6. 特権をフラッシュする

    flush privileges;
    
  7. サーバーを再起動します

    quit
    
  8. サーバーを停止して再起動します

    UbuntuとDebian:

    Sudo /etc/init.d/mysql stop
    ...
    Sudo /etc/init.d/mysql start
    

    CentOS、Fedora、およびRHELの場合

    Sudo /etc/init.d/mysqld stop
    ...
    Sudo /etc/init.d/mysqld start
    
  9. 新しいパスワードでログイン

    mysql -u root -p
    
  10. 新しいパスワードを入力して、何も起こらなかったようにもう一度サーバーを楽しんでください。

これはMySQLのrootパスワードをリセットするから取得されました。


下記の@ Danielのコメントからの最新情報:

MySQL 5.7では、mysql.userテーブルフィールドのパスワードフィールドは削除され、フィールド名は 'authentication_string'になりました。そのため、手順5は次のようになります。

 update user set authentication_string=password('mynewpassword') where user='root';
101
davejal

私は以下のステップを試しました:

  1. super userとしてログインするかSudoを使用してください
  2. gedit を使用して/etc/mysql/my.cnfを開きます。
  3. bind-addressを見つけて、その値をデータベースサーバのホストマシンのIPアドレスに変更します。私にとっては、それはlocalhostまたは127.0.0.1でした
  4. ファイルを保存して閉じます。
  5. 端末に戻ってSudo service mysql startを実行

そしてそれは私のために働いた。

61
rshahriar

次のコマンドを実行してこの問題を解決しました。

mysql.server start

あなたがMacを使用していてmysqlをインストールするためにbrewを使用していたなら、単に使用してください:

brew services start mysql
36
sbodanis

私は同様の問題を抱えていました。 MySQLは起動しませんでした。

Sudo service mysql start
start: Job failed to start

Apparmorを無効にした場合

Sudo aa-complain /etc/apparmor.d/*

問題は解決しました。問題は、mysqldが/run/mysqld/mysqld.sockにアクセスしようとしていたが、apparmorプロファイルが/var/run/mysqld/mysqld.sock(/ var/runが/ runにシンボリックリンクされている)にしか許可を与えていなかったことです。同じ)。 mysqldがすべての設定ファイルに設定されているのでなぜmysqldがvarパスを使用しないのかわからないが、/etc/apparmor.d/usr.sbin.mysqldに以下を追加することで問題を解決することができる。

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,
29
dkoes

私はmysqlプロセスを殺すことでこれを解決しました:

ps -ef | grep mysql
kill [the id]

それから私は再びサーバを起動しました:

Sudo /etc/init.d/mysql restart

しかしstartも同様に機能します。

Sudo /etc/init.d/mysql start

それから私はadminとしてログインしました、そして、私はされました。

27
Wartari

私の場合、それはディスクがいっぱいでmysqldがもう起動できなかったということでした。

MySQLサービスを再起動してみてください。

サービスMySQL再起動

または

サービスMySQL停止

サービスMySQLの開始

それが「停止」コマンドを認識しないならば、それは間違いなくディスクスペースです。 mysqlが割り当てられているパーティション内のスペースをいくらか増やすか、ディスクを大きくしてください。

でディスク容量を確認します。

df -h

26
Martin Schultz

どういうわけかMySQLサーバプロセスはソケットを作成しませんでした、またはクライアントは間違った場所でソケットを探しています。

私の最初の提案は、MySQLサーバーが稼働しているかどうかを確認することです。もう1つの提案は、MySQLサーバーは別のホストで稼働しているのでしょうか。そうであれば、端末のMySQLクライアントに-h <hostname>フラグを追加してください。

MySQLが実際に実行されていて、ローカルで実行されている場合は、my.cnfファイルを確認してください。のような行があるはずです

socket = /var/run/mysqld/mysqld.sock

それがあなたの投稿で述べたソケットの位置と一致するかどうかを確認してください。

経験上、最も可能性の高いシナリオは、MySQLサーバーがまったく実行されていないか、端末からMySQLクライアントを実行しているのと同じホストで実行されていないことです。

19
Wouter

運用サーバーを再起動しなければならなくなった後、私はちょうど同じ問題を経験しました。私はDigitalOceanのドロップレットでDebian 8.1(Jessie)を実行しています。

これが私の問題を解決するために私がしたことです:

  1. ファイル/var/run/mysqld/mysqld.sockが存在するか確認してください。そうでない場合は、touch /var/run/mysqld/mysqld.sockを入力して手動で作成します(これが私のしなければならなかったことです)。

  2. そのため、MySQLプロセスはこのファイルを使用できます。 chown mysql /var/run/mysqld/mysqld.sockを入力して、ファイルの所有権を変更してください。

  3. '2'が完了したら、service mysql restartまたは/etc/init.d/mysql restartを入力してMySQLサービスを再起動します。

上記の手順を経て、私の問題は解決しました。私はめったにこの問題を抱えていません、そしておそらくよりよい方法があるので、もし必要なら建設的なフィードバックを提供してください:).

18
Rob

あなたのmysqlサーバーは稼働していないかもしれません。端末にmysql.server startを入力して実行されることを確認してください。

15
Moses Wasswa

これは私のために働いたものです:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart

これでリンクが作成されます。

11
User

My.cnfの"bind-adress"パラメータを確認してください。

そうでない場合は、次のコマンドを試してください。

mysql -h 127.0.0.1 -P 3306 -u root -p
  • ホスト127.0.0.1、つまりlocalhostの場合は-h

  • ポート3306の場合は-P(-Pを大文字にする)

11
Amit Girme

Amazon EC2 を使用していて、インスタンスでこの問題が発生している場合は、次の手順を実行するだけです。

Sudo yum install mysql-server
Sudo service mysqld restart

Amazon EC2にはサーバーがインストールされていない(クライアントのみがインストールされている)ので、その場合はインスタンスにインストールする必要があります。その後、試してください。

 mysql -u root -p

それがうまくいったかどうか確認するため。

10

私はあなたがエラーを受けるたびに私は思います

エラー2002(HY000):ソケット '/var/lib/mysql/mysql.sock'を介してローカルのMySQLサーバーに接続できません

mysqlデーモンが実行中かどうかを最初に確認することをお勧めします。ほとんどの場合、デフォルトでは実行されません。 /etc/init.d/mysqld statusで確認できます。

実行されていない場合は、最初に起動してください。

.../etc/init.d/mysqld start.

110%うまくいくでしょう。

9

Localhostを使う代わりに、

mysql -u myuser -pmypassword -h localhost mydatabase

127.0.0.1を使用

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(また、-pとmypasswordの間にスペースは入れないでください)

楽しい :)

9
mpinvidio

重要なデータベースのバックアップがあることを確認してから、 MySQLのアンインストールを試してください 関連するもの:

apt-get remove --purge mysql\*

それから もう一度インストールしてください

apt-get install mysql-server mysql-client

これは私のために働き、データは保存されました。

PHP MySQLにエラーが表示された場合は、 PHP MySQL を再インストールする必要があります。

apt-get install php5-fpm php5-mysql
8
user3162468

Linuxマシンに _ xampp _ がインストールされている場合は、my.cnfファイルを/opt/lampp/etc/my.cnfから/etc/my.cnfにコピーしてみてください。

それから、mysql -u rootをもう一度実行します。これで正しいソケットがあり、MySQLクライアントを実行できるはずです。

7
Toni Widiarto

また、mysql serverがデフォルトで実行されていない場合に発生する同じ問題に直面します。数秒後に再び停止するので、($ Sudo service mysql start)コマンドを再度実行します。

その使用コマンド

$ Sudo service mysql start   

(必要に応じてSudoを使用するため、ユーザーのパスワードを入力して)実行します

$ Sudo mysql -u root -p          (put user password if required )

今、あなたはあなたのデータベースを手に入れました

7
Roko

私もこの問題を抱えていました、しかし私はただしました:

Sudo service mysql restart 

それは私のために働きました。

7
Kenny Ong

私はソリューションを見つけました

発射前 コマンド:mysql_secure_installation

  • ステップ1:Sudo systemctl stop mariadb
  • ステップ2:Sudo systemctl start mariadb
  • ステップ3:mysql_secure_installation

それからそれはrootパスワードを尋ねるでしょう、そしてあなたは単にpress Enter そしてあなたの新しいrootパスワードをセットすることができます。

6
sagar mahajan

私の場合、それはいくつかのR&Dをすることによって働いた:

私はMySQLに接続することができます

root-debian#mysql -h 127.0.0.1 -u root -p

しかしmysql -u root -pでは動作しません。

my.cnf bind-addressが見つかりませんでした。そのため、socket=/var/lib/mysql/mysqld.sockのパラメータmy.cnfをコメントアウトしたため、ログインに問題が生じました。

サービスを再開した後、それはうまくいきました:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)
6
Swapna Kumar

私の場合は、デフォルトのポート3306が他のプロセスによって使用されていたため、起動していませんでした。私が他のサービスを止めてSudo service mysql startをした後、それはうまくいった。ところで、Sudo lsof -Pn -iTCP:3306のようなものを使って、誰がそのポートを使っているのかを知ることができます。

6
Bhaskar

端末を開き、次のように入力します。

Sudo apt-get purge mysql-client-core-5.6

Sudo apt-get autoremove

Sudo apt-get autoclean

Sudo apt-get install mysql-client-core-5.5

Sudo apt-get install mysql-server  

MySQLデータベースコアクライアントパッケージとMySQL Serverパッケージはどちらも同じバージョン5.5になります。 MySQL Client 5.5およびMySQL Server 5.5は、パッケージメンテナの判断によると、Ubuntu 14.04でこれらのパッケージの現在の「ベスト」バージョンです。

MySQLクライアント5.6とMySQLサーバ5.6をインストールする場合は、Ubuntuソフトウェアセンターにmysql-client-core-5.6とmysql-server-5.6のパッケージもあります。重要なことは、クライアントとサーバーのバージョン番号がどちらの場合でも一致することです。

これは私のために働きました。

5
Akshay

あなたのインストールが最近のものであれば、あなたのインストールがmysql-server-5.5のようにインストールSERVERであるかどうかを確認する必要があります。

5
Leandro Souza

私の場合は、実行したときにmysqlプロセスを強制終了できなかったようです。

Sudo service mysql stop
ps -ef | grep mysql

Mysqlプロセスは常にそこにありました、それはそれがソケットファイルをブロックしていて、新しいmysqlプロセスがそれ自身を作成することができなかったように見えます。

だからこれは助けた

cd /var/run
Sudo cp mysqld/ mysqld.bc -rf
Sudo chown mysql:mysql mysqld.bc/
Sudo service mysql stop
Sudo cp mysqld.bc/ mysqld -rf
Sudo chown mysql:mysql mysqld -R
Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

今を使用してデータベースにログインすることができます

mysql -u root

それからrootパスワードを更新します。

UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;

_ ps _ :rootパスワードの更新がうまくいかなかった、 "auth_socket"プラグインに問題があるようですので、フル権限を持つ新しいユーザーを作成しなければなりません

insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";

これにより、パスワードなしでユーザー "super"が作成され、mysql -u superで接続できます。

5
Buksy

経験上、最初にサーバーが稼働しているかどうかを確認してからMySQLの設定を試す必要があると私は言います。最後の解決策はMySQLを再インストールすることです。

5
elmaazouz

DebianサーバJessieでは、私の解決策は単純にすることでした。

service mysql restart
service mysql reload

rootユーザーとして

5
Thomas Webber

私は同じ問題を抱えていました。 MySQLサービスが停止していると、時々これが起こります。

それであなたはそれを始めなければなりません:

Sudo service mysql start
5
Rahul Mohanraj
mysqld stop
mysql.server start
5
vimx

それは今働きます...

私はこの問題を克服するためにチュートリアルHomebrewを使ってMac OS XにMariaDB 10.1.16をインストールしました。

しかし、MariaDBの古いインストールを強制終了またはアンインストールすることを忘れないでください。

4
Hany Sakr

私は再起動mysqlでこの問題を解決しました

/etc/init.d/mysql stop

そして

/etc/init.d/mysql start

それでおしまい。

4
Jazuly

私は同じ問題を抱えていました。何度も検索しても、答えが見つかりませんでした。

最後に、/tmpディレクトリをチェックしたところ、その権限は755でした。その権限を777に変更したところ、mysqldは問題なく起動しました。

4
shgnInc

Ubuntu 14.04(Trusty Tahr)でも同じです。

あなたがXAMPPをインストールしたなら、mysql-serverをインストールすることは解決策ではありません、あなたは別のMySQLにアクセスするでしょうから!

あなたはアクセスするために正しいソケットを使わなければなりません。通常これです:

/opt/lampp/var/mysql/mysql.sock

代わりに、次のように変更してください。

/var/run/mysqld/mysqld.sock
4
Luca122131

正しい権限があるかどうかを確認してください。

Sudo chmod 755 /var/lib/mysql/mysql

私は同じ問題を抱えていて、これは私のために働きました。これを行った後、私はMySQLを起動することができました。

4
user3599321

私のサーバーのストレージがいっぱいだった、これはMysqlの起動を妨げていました。 ここ からアイデアを得ました。 HDを上げて再起動すると問題が解決しました。

2
Dawoodjee

まず、サービスが実行されているかどうかを確認できます。

ps ax | grep mysql

私はこの応答を得ました:

6104 pts/0    S      0:00 /bin/sh /usr/bin/mysqld_safe
6431 pts/0    Sl     0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/m

応答がないということは、サービスが実行されていないということです。

service  mysql start
2
Amos Kosgei

/opt/lampp/etc/my.cnfファイルを/etc/mysql/my.cnfにコピーするだけです。

そして端末タイプでは:

mysql -u root

mysql>プロンプトが表示されます。

mysql> Update mysql.user set Password=PASSWORD('your_password') where user='root';

mysql> FLUSH PRIVILEGES;

説明できませんが、後のkubuntu 12.04.2で

Sudo apt-get自動削除linux-headers-3.2.0-37 linux-headers-3.2.0-37-generic

それは働き始めました

2
alsator

/ var/run/mysqldディレクトリを作成する権限がありません。次のように作成して権限を付与してください。

  • mkdir -p/var/run/mysqld
  • chys mysql:mysql/var/run/mysqld
2
Namjith Aravind

私にとってはアップデートで問題は解決しました。

Ubuntuの場合:

Sudo apt-get update
Sudo apt-get upgrade

CentOSでは:

Sudo yum update
2
mFlorin

Mysql-serverをインストールします。

Sudo apt-get install mysql-server
enter password as root

ログイン:

mysql -u root -p root

ここではMySQLサーバのインストール中に-u user name-p passwordが与えられました。それは私のために働いたようにそれは動作します。

2
Mohit Singh

私の場合、問題は私のすべてのデータベースのページ破損でした(mysqlエラーログを確認してください)。

Forcing InnoDB Recovery で解決しました。トリックは/etc/mysql/my.cnfを編集して追加することです

innodb_force_recovery = 4

すぐ下

[mysqld]

そして、mysqlを再起動してください。すべてが正しく動作したことを確認したら、もう一度その行を削除します。

2
Michiel
For CentOS Linux release 7.3
The mysql.sock file path is /var/lib/mysql/mysql.sock
Edit /etc/my.cnf file and put below entry
This will solve your problem.

[client]
user=root
password=Passw0rd
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
bind-address=0.0.0.0

この後サービスを再起動します

service mysql restart
2

この回答は、少量のRAM を搭載したマシンでMySQL 5.6にアップデートすることに関連しています

私のDebian 8(Jessie)でMySQL 5.5から5.6にアップグレードしたときにも同じ問題がありました。 service mysql startログファイルからわかるように、MySQLは起動されておらず(ステータスはアクティブ/終了を示していました)、単に/var/logs/mysql/error.logを作成することはできませんでした。

InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
Cannot allocate memory for the buffer pool

メモリが足りなかった:私は256 MBのRAMしか持っていなかった。

MySQLにはperformance_schemaという設定があります。デフォルトでは、MySQL 5.5では無効になっています。

https://dev.mysql.com/doc/refman/5.5/en/performance-schema-startup-configuration.html

しかしMySQL 5.6ではデフォルトがオンになっていて、/etc/mysql/my.cnfファイルに次の行を追加して再起動するだけでうまくいきました。

performance_schema = off

警告: この設定をオフにするとパフォーマンスの問題が発生する可能性がありますが、開発環境では問題にならないと思います。

また、これはMySQLが最小メモリを使うように設定するのに役立つ記事、最小メモリを使うようにMySQLを設定するです。

1
dav

あなたがUbuntuを使っているなら、それは特権の問題かもしれません。

ディレクトリの権限を確認してください。 rootグループに入るだけでは十分ではありません。MySQLが書き込むディレクトリに chmod を使用することもできます(たとえば、/var/run/mysqld/ファイルの作成にはmysqld.pid)。

これは私にとって役に立ちました。

1
blackpanther

でサーバーを再起動してみてください

Sudo /usr/local/mysql/support-files/mysql.server start

エラーがある場合は、以下の手順に従ってください。

  1. mysqld

あなたは以下のログを見るでしょう。ここでMySQLディレクトリのハイライト部分に注目してください。

mysqld:dirを'/usr/local/mysql-5.7.14-osx10.11-x86_64/data/'に変更できません)(エラーコード:13 - 権限が拒否されました)2016-10-04T14:09:19.392581 Z 0 [警告]暗黙のDEFAULT値を持つTIMESTAMPは推奨されません - --explicit_defaults_for_timestampサーバーオプションを使用してください(詳細はドキュメントを参照)。 -priv:現在の値は生成されるファイルの場所を制限しないため、有効な空でないパスに設定することを検討してください。2016-10-04T14:09:19.392921Z 0 [注意] mysqld(mysqld 5.7.14)はプロセス1402以降... 2016-10-04T14:09:19.397569Z 0 [警告]テストファイルを作成できません
/usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test
2016-10-04T14:09:19.397597Z 0 [警告]テストファイル/usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-testを作成できません
2016-10-04T14:09:19.397712Z 0 [エラー] datadirを/usr/local/mysql-5.7.14-osx10.11-x86_64/data/に設定できませんでした
2016-10-04T14:09:19.397776Z 0 [エラー]中止中
2016-10-04T14:09:19.397795Z 0 [注意] Binlogの終わり
2016-10-04T14:09:19.397925Z 0 [注] mysqld:シャットダウン完了

  1. Sudo chown -R _mysql:_mysql /usr/local/mysql-5.7.14-osx10.11-x86_64

前のログではMySQLフォルダーのパス /usr/local 、そして私の場合は mysql-5.7.14-osx10.11-x86_64 、そしてあなたは あなたが得たログに基づいてそれを更新する必要があります MySQLディレクトリへのread access)を提供するために

  1. Sudo /usr/local/mysql/support-files/mysql.server start

MySQLの起動
成功!

1
Sudharshan

また、my.conf/etc/mysql/my.cnf)を調べて、bind-addressが127.0.0.1に設定されているかどうか確認してください。

そうでなければ、これはこの問題を引き起こすかもしれません。

1
BonifatiusK

私にとってはそれでした:

/etc/mysql/my.cnfまたは/etc/my.cnfを開き、 'bind-address'を検索してください。それは127.0.0.1でした。これをlocalhostに変換したので、行の結果は 'bind-address = localhost'になります。

それ以外の場合は、MySQLサーバーをbind-addressディレクティブに存在するIPアドレス、つまりmysql -h 127.0.0.1で実行します。

1
Omar Alahmed

私は今この問題を抱えてそれを解決しました。

Mysql-serverをインストールしましたが、クライアントが接続するためにはデーモンが実行されている必要があります。

まずmysqlサーバーが起動しているか確認してください。

netstat -tap | grep mysql

このようなものが見えるはずです。

$ Sudo netstat -tap | grep mysql
tcp        0      0 localhost:mysql         *:*          LISTEN     6639/mysqld     

サーバーが稼働していない場合は、次のコマンドでデーモンを起動してください。

/etc/init.d/mysql restart

インストールされていれば、これで問題は解決します。

1
user1527227

私のサーバーでの簡単な解決策:私のMySQLデータベースで新しいDebian 7サーバーに移行した後、2番目の ローカルIPアドレス 127.0.1.1が私の hostsファイル にありませんでした。これを追加して警告を解決しました:

echo -e "\n127.0.1.1       $(hostname)" >> /etc/hosts
1
rubo77

この問題が発生しないようにするには、サーバーの電源を切るのではなく、コマンドラインからサーバーを適切にシャットダウンする必要があります。

shutdown -h now

これにより、マシンの電源を切る前に実行中のサービスが停止します。

Centosに基づき、この問題に遭遇したときに再びバックアップを取得するための追加の方法は、mysql.sockを移動することです。

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

service mysqld start

サービスを再起動すると、mqsql.sockという新しいエントリが作成されます。

1
Ali Hashemi

ローカルで実行しています。つまり、クライアントはサーバーと同じマシン上で実行されています。

あなたのUnixユーザーが実際に/var/run/mysqld/mysqld.sockにアクセスしたり読んだりできることを確認してください:

ls -als /var
ls -als /var/run
ls -als /var/run/mysqld
ls -als /var/run/mysqld/mysqld.sock

そうでない場合は、システム管理者または データベース管理者 に問い合わせて、それらのディレクトリへの適切な読み取り/実行アクセス権を付与するか、ソケットファイルを別の場所に移動してください。

1
TVNshack

私は同じ問題を抱えていました。私はこれを見つけました。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

これは、MySQLクライアントを起動する前にmysqldデーモンを実行していないためです。 MySQLの最初のインスタンスを実行すると、ファイル/var/lib/mysql/mysql.sockが自動的に作成されます。

修正するには:

まずMySQLデーモンを起動してから、mysqlと入力します。

/etc/init.d/mysqld start
mysql

MySQLルートパスワードの変更

デフォルトでは、MySQLデータベースのrootパスワードは空です。セキュリティの観点から、MySQLのrootパスワードを新しいものに変更することをお勧めします。

mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;

完了したら、ログインして確認します。

mysql -u root -p
Enter Password: <your new password>
1
user3742084
Sudo touch /var/lib/mysql/.force_upgrade
Sudo rcmysql restart

私はこの問題を抱えていたとき私のために働いた

0
t0dbld

このエラーは、データベースが格納されているディレクトリを変更しようとしたが、設定ファイル内で間違ったディレクトリを入力しようとした場合にも発生する可能性があります(2番目のドライブのタイプミスのように正確なD_ではなくDとして)。 typoディレクトリが存在しないと言うのではなく、あなたがそれにアクセスする許可を持っていないことを教えてくれます(typoディレクトリの許可を変更しようとすると、そうすることができます)。そのため、ディレクトリを変更しているときにこのエラーが発生した場合は、設定ファイルをもう一度確認し、間違いがないことを確認してください。

0
Michael

LAMPPが実行されているかどうかを確認しましたか?

Sudo bash <path>/lampp start

私にとっては、道は

Sudo bash /opt/lampp/lampp start
0
thecheech

私もこの問題を抱えていました、そしてこれらの答えのどれも私を助けませんでした。問題は異なりましたが、エラーはOPによって記述されたものです。

私は/var/log/mysqlでMySQLのログをチェックします、そして私はこれを見ました:

150309  5:03:19 [ERROR] /usr/sbin/mysqld: unknown variable   'lower_case_tables_names=1'

/etc/mysql/my.cnfファイルを開き、その行#をコメントアウトしました。それをした後、私はデータベースに接続することができました。

正直なところ、私は問題が何であったのかわかりません。 linodeサーバーはメンテナンスのために再起動するようにスケジュールされていましたが、このエラーはどこからも発生しませんでした。

0
Camauu

/var/run/mysqldのグループの所有者を確認してください。 mysql.mysqlではない場合は、次のようにします。

su root
chown mysql.mysql /var/run/mysqld

構成ファイルに問題がある可能性があります。私は同様の問題を抱えていました、そして私はウェブ上で解決策を見つけることができませんでした。私は2つのmy.cnfファイルがあり、1つは/etc/mysqlに、もう1つは/etcにあります。以下の手順に従ってください。

  1. my.cnfを使用して、コンピューター上のlocate my.cnfファイルを確認してください。

  2. /etc/my.cnf/etc/mysql/my.cnfの2つのエントリがある場合は、/etc/mysql/my.cnfを別のものに変更します。例えば/etc/mysql/my.cnf.old

もう一度MySQLを実行してみてください。

0
enowman

私の場合は、/var/log/mysqlで定義されている/etc/mysql/my.cnfフォルダーが見つからないためにmysqlが停止されたためです。それを作成した後、私はmysqlを起動することができ、それはいつものように走りました。

0
ownking

MySQLをアップグレードすることでそれが解決しました。 RHELベースのサーバーでは、単に実行します。

Sudo yum upgrade mysql-server
0
sffc

mysqldセクション([mysqld])の/etc/mysql/my.confからこの行を削除することで、この問題を解決しました。

default-character-set=utf8

再起動すればうまくいきます。

0
aotero

私はUbuntuでこれを持っていました、そして私が考え出したように、mysqldのインスタンスが複数ありました。

前のものは完全に停止されていなかったようですが、新しいものはすでに開始されています。 '/etc/init.d/mysql stop'を実行しても意味がありません。常に 'OK'が返され、その後すぐに新しいインスタンスが自動的に起動されます。

        $ Sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28315
        $ Sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28570
        $ Sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28763
        ..... etc ...

幸い、次のコマンドで問題が解決しました。

    $ Sudo service mysql stop
    mysql stop/waiting

    $ ps -ef | grep mysql
    29841 26858  0 10:59 pts/8    00:00:00 grep --color=auto mysql <--- IT's gone ! 

その後、私は再びmysqlを起動し、mysql.sockが正常に作成されたことを確認することができました。

0
Oleg Gryb

アドバイス:いつもMySQLに何が問題なのか尋ねてください。私の場合はless /var/log/mysql/error.logで、これを見てください。

2015-07-28 12:01:48 23224 [ERROR] /usr/sbin/mysqld: unknown variable 'log_slow_queries=/var/log/mysql/mysql-slow.log'
2015-07-28 12:01:48 23224 [ERROR] Aborting

私はmy.cnfでこのオプションのコメントを外したので文句を言っていますが、このオプションをコメントした後、問題なく起動しました。

0
K-Gun

/etc/mysql/my.cnfで、最後の行を確認します。

!includedir /etc/mysql/conf.d/
0
FS Karimi

この答えはここで溺れそうですが、誰かが偶然それにつまずくかもしれません。

私の場合、SELinuxはユーザー/アプリケーションがMySQL(MariaDB)サーバーソケットに接続するのを防ぎました。 RHELでは、SELinuxが有効になっている場合は/var/log/audit/audit.logを確認してください。

0
Richlv

Ubuntu 18:10 Linode 1GB Ramでは、このエラーが発生しました。 /var/log/mysql/error.logを調べた後、私はこれに遭遇しました:

[注意] InnoDB:バッファプールサイズが小さいため、innodb_empty_free_list_algorithmはレガシーに変更されました。バックオフを使用するには、最低20MBまでバッファプールを増やします。

私のlinodeを2GBにアップグレードし、そしてSudo mysqlでmariadbを再起動しました。次にmysql_secure_adminが実行されましたが、rootパスワードがmysql_native_passwordプラグインを使用するようにrootユーザーを変更しているため、ユーザーとして設定されませんでした。確信はありませんが、靴下は作成されたようですが、VPSのメモリ不足によりサーバーがシャットダウンしました。

0
uberdave