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


322

私の問題は、mysqlインストールでrootとしてログインできなくなったことから始まりました。パスワードをオンにせずにmysqlを実行しようとしましたが、コマンドを実行するたびに

# mysqld_safe --skip-grant-tables &

プロンプトが返ってこない。私はこれらの指示に従ってパスワードを回復しようとしました。

画面は次のようになります。

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

パスワードをリセットするためのSQLコマンドの入力を開始するように求めるプロンプトが表示されません。

CTRL+ を押して強制終了Cすると、次のメッセージが表示されます。

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

コマンドを再試行して十分に長い時間放置すると、次の一連のメッセージが表示されます。

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

しかし、次のようにしてrootとしてログインしようとすると、

# mysql -u root

次のエラーメッセージが表示されます。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

チェックしたところ、/var/run/mysqld/mysqld.sockファイルが存在しません。フォルダにはありますが、ファイルにはありません。

また、これが役立つかどうかはわかりませんが、実行するfind / -name mysqldと次のようになりました。

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

LinuxとMySQLは初めてなので、これが正常かどうかはわかりません。しかし、参考のためにこの情報を含めています。

ようやくmysqlをアンインストールして再インストールすることにしました。

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

上記と同じ順序ですべてのパッケージを再インストールした後、phpmyadminのインストール中に同じエラーが発生しました。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

だから私はもう一度アンインストール/再インストールを試みました。今回は、パッケージをアンインストールした後、すべてのmysqlファイルとディレクトリの名前をmysql.badそれぞれの場所に手動で変更しました。

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

それから私は再インストールしようとしたmysql-servermysql-client再び。しかし、パスワードの入力を求められないことに気づきました。管理者パスワードを要求するのではないですか?


同じ問題が発生しました。たった今解きました。 stackoverflow.com/questions/18150858/...
ロバート・


サーバーを再起動してmysqlサービスを再起動するだけで解決
bowpunya

@Antoこれは複製ではありません。これは/var/run/mysqld/mysqld.sock欠けています。リンクした問題にそのファイルがあります。
motorbaby 2018

ここで、または私が見つけた他のどこでも、私の問題は解決されませんでした。これは新しいプロジェクトだったので、PostgreSQLに切り替えて、うまくいきました。:-)
James Bradbury

回答:


195

システム上のすべてのソケットファイルを検索するには、次のコマンドを実行します。

sudo find / -type s

Mysqlサーバーシステムでソケットが開いていました /var/lib/mysql/mysql.sock

ソケットが開かれている場所を見つけたら、/ etc / my.cnfファイルに、ソケットファイルへのパスを含む行を追加または編集します。

socket=/var/lib/mysql/mysql.sock

コマンドライン実行可能ファイルを起動したシステム起動スクリプトがフラグを指定する場合があります--socket=path。このフラグは、my.cnfの場所を上書きする可能性があり、その結果、my.cnfファイルで指定されているはずの場所にソケットが見つかりません。次に、mysqlコマンドラインクライアントを実行しようとすると、my.cnfを読み取ってソケットを見つけますが、サーバーが作成した場所から外れているため、ソケットは見つかりません。したがって、ソケットの場所を気にしない限り、my.cnfを変更して一致させるだけで機能します。

次に、mysqldプロセスを停止します。これを行う方法はシステムによって異なります。

Linuxシステムのスーパーユーザーで、Mysqlセットアップが使用する特定の方法がわからない場合は、次のいずれかを試してください。

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • 一部のシステムは、mysqlを停止するエレガントな方法が設定されていない(または、何らかの理由でmysqlが応答しない)ため、次のいずれかを使用してmysqlを強制終了できます。
    • 一歩: pkill -9 mysqld
    • 2ステップ(優先度は最も低い):
      • pgrep mysqlまたはでmysqlのプロセスIDを検索しますps aux | grep mysql | grep -v grep
      • プロセスIDを仮定すると、であり、4969で終了しますkill -9 4969

これを行った後、pidファイルを探して/var/run/mysqld/削除することができます

ソケットのアクセス許可が、mysqldが実行している任意のユーザーが読み取り/書き込みできるようになっていることを確認してください。簡単なテストは、それを完全な読み取り/書き込みで開き、それがまだ機能するかどうかを確認することです。

chmod 777 /var/run/mysqld/mysqld.sock

それで問題が解決した場合は、セキュリティ設定に基づいて、必要に応じてソケットの権限と所有権を調整できます。

また、ソケットが存在するディレクトリは、mysqldプロセスを実行しているユーザーが到達できる必要があります。


15
の使用はお勧めしませんkill -9。それに到達する前に試すべきいくつかの方法があります。
Ignacio Vazquez-Abrams

@dotこれをファイルroot 'findで実行します。-name mysqld.sock '。/ var / run以外の場所でソケットファイルを見たことがあります。見つかったら、my.cnfファイルを編集して、その場所を指すようにする必要があります。
レイ

@ray、元のコマンドを別の方法で実行しようとしました(別のサイトでubuntu固有の投稿を見つけました...)。ここに私が実行したコマンドがあります:「sudo service mysql stop」と「sudo mysqld --skip-grant-tables」。2番目のコマンドを実行した後、次のエラーが発生します。「InnoDB:./ibdata1をロックできません。エラー:11」。この./ibdata1ファイルが見つかりません... InnoDB:別のmysqldプロセスがないことを確認します
ドット

2
@dotを実行してps -aux | grep mysqld、他のmysqlプロセスが実行されているかどうかを確認します
Ray

@レイ。私は毛を抜く男です。私はmysqlを吹き飛ばして再試行することにしました...更新された投稿に注意してください。
ドット

251

このコマンドを試してください、

sudo service mysql start

MySQLサービスが死亡したことにより、1 my.cnfのは、右のディレクトリを指していた
wruckie

私は受け入れられた答えを試しましたが、mysql.sockが見つかりませんでした。これは私にとってはうまくいきました。ありがとう
Giovanne Afonso

1
私は使用しなければなりませんでしたsudo service mysqld start
Gavin Miller

10
sudo apt-get install mysql-serverまだインストールしていない場合:)
aimme

17
この問題が発生した場合は、必ず、この単純なコマンドを最初に実行してから、他のものをテストしてください。1秒しかかかりません。サーバーが実行されていないだけで、起動後に問題がなければ、それだけで問題はありませんでした。自動起動しないでください。これが解決する実際の問題になります。
Lizardx 2016

137

このエラーは、mysqlの複数のインストールが原因で発生します。次のコマンドを実行します。

ps -A|grep mysql

以下を使用してプロセスを強制終了します。

sudo pkill mysql

次にコマンドを実行します:

ps -A|grep mysqld

また、次のコマンドを実行してこのプロセスを強制終了します。

sudo pkill mysqld

これで、次のコマンドを実行するだけで完全に設定できます。

service mysql restart
mysql -u root -p

mysqlが再び正常に機能する


こんにちは、私はこれを修正しようとしてウェブ上を走っていました。私の問題は、Dockerをセットアップしようとしていたことでした。以前はDockerの外部のmysqlで使用されていたmysqlデータディレクトリを使用したいと思っていました... psコマンドが最高でした!
マイケル

3
4時間以上ウェブ全体で実行した後、これはようやく機能しました。トップの答えになるはずです:+1:
シヴァムガウル2017年

4
制御プロセスがエラーコードで終了したため、mysql.serviceのジョブが失敗しました。詳細については、「systemctl status mysql.service」および「journalctl -xe」を参照してください。
ジョンジョー

1
制御プロセスがエラーコードで終了したため、mysql.serviceのジョブが失敗しました。詳細については、「systemctl status mysql.service」および「journalctl -xe」を参照してください。
Adib Aroui 2018

Tnx、あなたは私の時間を節約します。
Aleksandur Atanasov

41

解決策ははるかに簡単です。

  1. 最初に、mysql.sockファイルが置かれている場所を(「sudo find / -type s」を使用してターミナルで)見つける必要があります。私の場合は/opt/lampp/var/mysql/mysql.sock
  2. ターミナルをsudo Nautilus
    起動して発行 これにより、スーパーユーザー権限でファイルマネージャーが起動します
  3. Nautilusからmysql.sockファイルのある場所に 移動します
  4. ファイルを右クリックして[ リンクを作成]を選択します
  5. リンクファイルの名前をmysqld.sock次に変更し、ファイルを右クリックしてカットします。
  6. に移動し/var/run、というフォルダを作成してmysqld入力します
  7. 右クリックしてリンクファイルを貼り付け
  8. 出来上がり!これでmysqld.sockファイルが/var/run/mysqld/mysqld.sock:)に作成されます。

4
mysql.sockファイルをどのように見つけますか?find / -name 'mysql.sock'を試しましたが、何も返されません。
マシューロック

2
@MatthewLockまず、mysqlが実行されていることを確認します(「ps aux | grep mysql」によって)。そうでない場合、mysql.sockは表示されません。次に、「sudo find / -type s」を使用します。これにより、システム上のすべてのソケットからmysql.sockが見つかります
narengi

35
の出力に何もsudo find / -type s含まれていない場合はどうなりますかmysql.sock
jeff 2015

1
できます。しかし、なぜこれらの開発者が過去数年間この仕事をしないのか、私にはわかりませんか?
Yi Jiang

2
「find / -type s」を使用してmysql.sockの場所を取得するのが面倒な場合は、「mysql_config --socket」コマンドを使用してみてください。sudo apt-get install libmysqlclient-dev
alexche8

26

インストール後にMySQLサービスを開始するだけです:

Ubuntuの場合:

sudo service mysql start;

CentOSまたはRHELの場合:

sudo service mysqld start;

まずこれsudo systemctl status mysql.serviceとで確認してくださいsudo systemctl start mysql.service。これは私にとっては
有効

16

MySQL 5.6および5.7のUbuntuには、var/run/mysqld/MySQLサービスが停止または再起動されるたびに表示されなくなるバグがあります。これにより、MySQLがまったく実行されなくなります。この回避策は見つかりましたが、完璧ではありませんが、少なくとも停止/再起動後には実行されます。

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

ありがとう-私のために修正しました、ディレクトリを作り直し、サービスmysqlを再起動するたびに所有権をリセットする必要があります-公式に報告されたエラーを見つけることができなかったか、リンクをここに投稿しました:)
djoe

1
これを試していませんが、多分それはあなたを助ける:NEWFILE /etc/tmpfiles.d/mysql.confを作成します。 # systemd tmpfile settings for mysql # See tmpfiles.d(5) for details そして、その後、 d /var/run/mysqld 0755 mysql mysql - 再起動後、mysqlは正常に起動する必要があります。これはバグからです。launchpad.net/ ubuntu / + source / mysql-5.6 / + bug / 1435823、コメント3。MySQL5.7でこの問題が発生した場合は、Launchpadにコメントしてください。問題に取り組むユーザーが多いほど、注目が高まります。
motorbaby

私のために働いた...しかしmysqldではなくmysqlをユーザー名として使用しなければならなかった
Evan Parsons

/etc/tmpfiles.d/mysql.confmotorbabyのコメントごとに行を追加すると、 この問題が修正されました。Centos 7 OSおよびを使用している場合mysql Ver 15.1 Distrib 10.3.11-MariaDB,
turrican_34

これで問題が解決しました。
志方

14

さて、これらのコードをコピーして貼り付けてください:これは、mysqlデータベースが適切にインストールされていない場合、およびこのエラーが発生した場合に、サーバー内のターミナルで実行する必要があります: 'ソケットを介してローカルMySQLサーバーに接続できません' / var / run / mysqld / mysqld.sock '(2)'。

MySqlを停止する

sudo /etc/init.d/mysqld stop

再起動するか、起動します

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

このようなリンクを作成し、システムに与えます

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

mysqlの構成に必要なすべてのプロセスをガイドする安全なインストールを実行します

/usr/bin/mysql_secure_installation

Can't connect上記のコマンドを実行しようとすると、同じエラーが発生します。
cjmling

ubuntuを実行している人のために、私が発見したものだけです。/etc/init.d/mysqld startを使用してmysqldを起動すると、とにかくこの問題が発生します。代わりにサービスmysql startを使用してください。問題はありません。腹立たしいが、私は結局それを理解した。
Adam Short

11

同じエラーが発生し、パッケージのアップグレードが原因であることがわかりました。システムを再起動した後、エラーを解決しました。

SQLライブラリ/パッケージの更新によりそのエラーが発生したと思うので、アップグレードをしている場合はこれを試してください:)


1
再インストール(またはアップグレード)した後でこれを実行しましたが、現在は機能しています。これ以上ソケットメッセージはありません。ありがとう!
wraithie

8

この問題にはさまざまな理由がありますが、mysqlサーバーを再起動するだけで問題が解決する場合があります。

sudo service mysql restart

7

ubuntuでのXAMPPの使用:

  1. / var / runディレクトリ内にmysqldというフォルダーを作成します。コマンドを使用してこれを実行できます。sudo mkdir /var/run/mysqld

  2. XAMPPサーバーの起動時に作成されるmysql.sockファイルへのシンボリックリンクを作成します。コマンドを使用できますsudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

注:にmysql.sockのファイルはサーバーの起動時に作成され、サーバーが停止されたときに、その時々のリンクはあなたが壊れているように見えるかもしれません作成されますが、それは限り、あなたは使用してサーバーを開始しているように動作するはずです削除されるか、sudo /opt/lampp/lampp startまたはその他の手段。

  1. サーバーがまだ実行されていない場合はサーバーを起動し、プログラムを再実行してください。

幸運を!今回はそれでうまくいけばいいのですが。


@MohsinKhanはlocalhost / phpmyadminに移動し、そこからデータベースをインポートします
Robert Odoch

6

ユーザーロードステップの答えは私のために働いた。時々/etc/mysql/my.cnfクライアントに追加行でファイルを編集する必要があります

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

これは私に与えます:mysql: unknown variable 'Host=127.0.0.1'
Splaktar 2014年

@Splaktar:タイプミスがあります。Host小文字にする必要があり、host機能します。また、このソリューションは私のために働いた。
Mohammad Faisal

ブリリアント-これは私と私のドッカー環境で機能しています-私は私の場合、ドッカーmysqlコンテナーのIP 172.17.xxであるIPを調整するだけでした
InforMedic

6

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

ソリューション

最後にmysqlをアンインストールして再インストールします。**

  • sudo apt-get remove mysql-server
  • sudo apt-get remove mysql-client
  • sudo apt-get remove mysql-common
  • sudo apt-get remove phpmyadmin

次に、再度インストールします

  • sudo apt-get install mysql-server-5.6

この操作の後、164 MBの追加ディスク容量が使用されます。

  • 続けたいですか?[はい/いいえ]インストールを完了するには、[はい]を押します

...... .......

  • やっとこれらの行が表示されます...

    libhtml-template-perl(2.95-1)の設定...

    mysql-common-5.6(5.6.16-1〜exp1)のセットアップ... libc-bin(2.19-0ubuntu6)のトリガーの処理ureadahead(0.100.0-16)のトリガーの処理...

  • その後

    root @ ubuntu1404:〜#mysql -u root -p(すべてのパスワードに対して、最初にuを使用する必要があります)

  • パスワードを入力する:

  • 注:入力したパスワードは、mysqlのインストール時のパスワードと同じである必要があります(.root、system、admin、rahulなど...)

    次に、

  • rahul_db(データベース名);

ありがとう**


回答の質を向上させてください
Mo.

複数のmysqlバージョンがインストールされているため、これは私にとってうまくいきました。も削除しmysql-server-5.6/5.5, mysql-client-5.6/5.5ます。ありがとう!
Luuk Skeur 16

を得たE: Package 'mysql-server-5.6' has no installation candidate、それはUbuntu 18.04には存在しない
juliocesar '16

6

アクセスできないソケットファイルのパスが「/var/run/mysqld/mysqld.sock」と同じであることを確認します。それ以外の場合は、パスを自分のものに変更します。mysqldを停止します

$ sudo /etc/init.d/mysqld stop

プロセスがまだ実行中の場合。

$ sudo pkill -9 mysqld

ソケットが作成するmysqlディレクトリを削除します。私にはそれを削除することは許されなかったので、私は強制的に削除しなければなりませんでした。

$ sudo mkdir -p /var/run/mysqld

所有権をディレクトリに設定します

$ sudo chown mysql:mysql /var/run/mysqld

mysqlを起動

$ sudo /etc/init.d/mysql start

mysqlに接続しようとしています

$ sudo mysql -u dbuser -p

はい、私は11時56分で2月14日'19で与えた同じ回答のthats(下記参照)
インゴ・

あなたは命の恩人です。
Sahib Khan

5

MySQLサーバーが起動していません。したがって、次のいずれかのコマンドを使用してサーバーを起動します。

#services mysql start

または

#/etc/init.d/mysql start

5

一時的な解決策

多分この問題に直面している誰か。私が使用していますMySQLのワークベンチをのUbuntu 14と、このエラーを得ました。

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

sudo find / -type s私の場合はを実行してソケットファイルを見つけます/run/mysqld/mysqld.sock

そのため、このファイルへのリンクをtmpディレクトリに作成しました。

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

ご覧のとおり、ファイルの場所は/tmpフォルダの下にあるため、確実に削除されます。.sockファイルの場所を変更できます。@ user3002884の回答を参照してください。
ビラル

私が知っている、私はあなたの答えを完了していたので、他のユーザーは、解決策が一時的なものであることを、フォルダーとして、その前に知っています
Alex Burdusel

あなたは私の命を救った:)
マシュピーラーマン

4

あなたは見つけることができるmysqld.sock/var/run/mysqldすでにインストールしている場合mysql-serversudo apt-get install mysql-server


4

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

/etc/my.cnfこの行を追加:

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

そして、次のコマンドでサービスを再起動します。 service mysql restart

これは私のために働いた


4

これはすでに2、3回言及されましたが、これは私にとってすぐに機能しました。

サービスmysql再起動


これが単純な「mysql」コマンドを使用するのとどのように異なるのか興味深い
luminol

3

私の場合、2つのmysqldプロセスが実行されていました.. pkill -9 mysqldを使用してオプションのプロセスを強制終了しました


「sudo」を追加してプロセスを強制終了する必要がありました。
noti

3

システムに多くのデータベースとテーブルがありinnodb_file_per_table、my.cnfで設定している場合、mysqlサーバーで開いているオブジェクト/ファイル(またはこれらのオブジェクトの記述子)が不足している可能性があります新しい最大数を設定しますと

open-files-limit = 2048

mysqlを再起動します。このアプローチは、ソケットがまったく作成されない場合に役立ちますが、実際にはこれは実際の問題ではなく、根本的な問題があります。


2

Ubuntu 14.10でこの問題が発生しました

それを回す mysql-serverインストールされなくなった(どういうわけかそれは削除されました)が、いくつかの壊れたパッケージと依存関係の問題/競合があったため、それをインストールすることはできませんでした。

最後に、mysqlを再インストールする必要がありました

sudo apt-get remove mysql-client
sudo apt-get install mysql-server


2

私の解決策。

Ubuntu 18.04(WSL)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

ポートを変更しました。それは私のために働いた。別のポートを書き込むことができます。例3355


2

このエラーが発生する理由

mysqlライブラリの新しい更新を受け取ったので、これらのエラーが発生した後にKubuntu OSを更新しました。


私が試したコマンドとそれをどのように修正したか。

MySql-serverは正しく実行されてますが、接続を試みたとき

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

/var/run/mysqld/mysqld.sock'.このディレクトリを確認しました。私のファイルは存在しませんでした。

私もこれらのコマンドで接続を試みましたが、うまくいきませんでした。

 mysql -h 127.0.0.1 -P 3306 -u root -p

 sudo service mysql start

2時間無駄にした後、私は解決策を見つけました

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

その後、すべてが修正されました。


これは私が問題を修正するのに役立ちました。私はそれが私が持っていた
靴下の

1

変更hostには127.0.0.1を私働くようにしました。

でファイルを編集し/etc/mysql/my.cnf、以下の行をセクションに追加します。client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

あなたがそれを終えた後。以下のコマンドを実行します。

sudo service mysql start

この私の友人、私を助けてくれました:)
Bhargav Nanekalva '

@NBhargav私は..乾杯の仲間uがウル問題を解決することができるように幸せです..😇😇
Dulithデ・コスタ

1

mysqlの設定も確認します。私は自分のサーバーでこの問題に遭遇していましたが、少し速すぎて、私のマシンのinnodb_buffer_pool_sizeの設定を誤っていました。

innodb_buffer_pool_size = 4096M

通常は2048まで問題なく動作しますが、4ギグをサポートするのに必要なメモリがないと思います。

これは他のmysql構成設定でも発生する可能性があると思います。


1

CentOS VPSでも同様の問題がありました。MySQLが起動しないか、起動直後にクラッシュし続ける場合は、次の手順を試してください。

1)my.cnfファイル(私のものは/etc/my.cnfにあります)を見つけて、次の行を追加します。

innodb_force_recovery = X

Xを1から6までの数字に置き換えます。1から始まり、MySQLが起動しない場合は増分します。4、5、または6に設定するとデータが削除される可能性があるため、注意してhttp://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.htmlをお読みください前に。

2)MySQLサービスを再起動します。SELECTのみが実行され、これは現時点では正常です。

3)mysqldumpを使用してすべてのデータベース/スキーマを1つずつダンプします。とにかく後で解凍する必要があるため、ダンプを圧縮しないでください。

4)/ var / lib / mysql内のbdのディレクトリのみを移動(または削除)して、ルートの個々のファイルを保持します。

5)MySQLを停止し、1)で追加した行のコメントを外します。MySQLを起動します。

6)3)でダンプされたすべてのbdを回復します。

幸運を!


1

端末プロンプトで次のことを試してください。

sudo mysql

それが許可されたら、新しいユーザーを作成し、アクセスが必要な特定のデータベースで必要な権限を付与できます。

Mysql 5.7はいくつかの点を変更し、デフォルトではrootにauth_socketプラグイン(mysql_native_passwordではなく)を使用して、アカウントがハッキングされないように保護しています。rootのpluginフィールドを設定することでこれをオーバーライドできますが、非常に正当な理由がない限り、おそらく保護を回避すべきではありません。特に、とにかくsudo mysql簡単mysql -u root -pです。

私は、Raspberry Piのヘルプサイトから、あらゆる場所のこの情報を見つけました。Lubuntu 18.04が数時間私を悩ませた後の魅力のように働きました。


1

最初にdir / var / run / mysqldを作成します

コマンドで:

mkdir -p /var/run/mysqld

次に、リグをディレクトリに追加します

chown mysql:mysql /var/run/mysqld

この試みの後

mysql -u root

1

私はまったく同じ問題を抱えていました。1時間苦労した後、mysql-common、mysql-client、mysql-serverを再インストールせずに修正する方法を見つけました。

まず、「/ var / run / mysqld」に移動します。mysql.sockが存在しないことがわかります。mysqldディレクトリ全体を削除して再作成し、必要な権限を付与するだけです。

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

さて、mysqlプロセス全体を終了します。サービスをシャットダウンした後でも、「/ etc / init.d / mysql status」コマンドを実行すると、「ページクリーナーの待機中」と表示される可能性があります。

サービスを完全に閉じるには、

# pkill -9 mysqld

プロセスが強制終了されたら、次のコマンドを使用して再起動してください

# /etc/init.d/mysql start

そして、あなたはそれがうまくいくのを見るでしょう!また、停止しても問題はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.