私の問題は私が私の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-server
とmysql-client
を再インストールしようとしました。しかし、パスワードの入力を要求されないことに気付きました。管理者パスワードを要求するのではないでしょうか。
システム上のすべてのソケットファイルを見つけるには、次のコマンドを実行します。
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セットアップが使用する特定の方法が分からないならば、次のうちの1つを試してください:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
またはps aux | grep mysql | grep -v grep
を使用してmysqlのプロセスIDを見つけます。4969
であると仮定すると、kill -9 4969
で終了します。これを行った後は、/var/run/mysqld/
でpidファイルを探してそれを削除したいかもしれません。
あなたのソケットに対するパーミッションが、mysqldが実行しているどのユーザでも読み書きできるようになっていることを確認してください。簡単なテストは、それを完全に読み書きできるように開いて、まだ動作するかどうかを確認することです。
chmod 777 /var/run/mysqld/mysqld.sock
それでも問題が解決する場合は、セキュリティ設定に基づいて必要に応じてソケットのアクセス許可と所有権を調整できます。
また、ソケットが存在するディレクトリには、mysqldプロセスを実行しているユーザーがアクセスできる必要があります。
このコマンドを試してください、
Sudo service mysql start
このエラーはmysqlの複数のインストールが原因で発生します。コマンドを実行します。
ps -A|grep mysql
以下を使用してプロセスを強制終了します。
Sudo pkill mysql
それからコマンドを実行します。
ps -A|grep mysqld
次のコマンドを実行してこのプロセスを終了します。
Sudo pkill mysqld
これで、次のコマンドを実行するだけで完全に設定できました。
service mysql restart
mysql -u root -p
再び非常によく働いているMySQLを持っている
解決策はずっと簡単です。
mysql.sock
ファイルがある場所を探します。私の場合は/opt/lampp/var/mysql/mysql.sock
にありましたSudo Nautilus
を発行するmysql.sock
ファイルがある場所に移動します。mysqld.sock
に変更してから、ファイルを右クリックして 切り取り it/var/run
に移動してmysqld
という名前のフォルダーを作成し、それを入力してくださいmysqld.sock
:)に/var/run/mysqld/mysqld.sock
ファイルができました。インストール後にMySQLサービスを起動するだけです。
Ubuntuの場合:
Sudo service mysql start;
CentOSまたはRHELの場合:
Sudo service mysqld start;
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
私は同じエラーに直面し、それがパッケージのアップグレードによるものであることがわかったので、私のシステムを再起動した後、私はエラーを解決しました。
私は、SQLライブラリ/パッケージのアップデートがエラーを起こしたためだと思うので、アップグレードをしているならこれを試してください:)
MySQL 5.6および5.7のUbuntuには、MySQLサービスが停止または再起動されるたびにvar/run/mysqld/
が消えるというバグがあります。これはMySQLの実行をまったく妨げます。この回避策を見つけました。これは完璧ではありませんが、少なくとも/ rebootを停止した後に実行されます。
mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
この問題には多くの理由がありますが、時々mysqlサーバーを再起動するだけで問題が解決します。
Sudo service mysql restart
ユーザーロードステップの答えは私のために働きました。時には/etc/mysql/my.cnf
add行でファイルを編集する必要があります
[client]
password = your_mysql_root_password
port = 3306
Host = 127.0.0.1
socket = /var/lib/mysql/mysql.sock
UbuntuでXAMPPを使う:
mysqld inside /var/run ディレクトリという名前のフォルダを作成します。あなたはそれをSudo mkdir /var/run/mysqld
コマンドを使って達成することができます。
XAMPPサーバの起動時に作成される mysql.sock ファイルへのシンボリックリンクを作成します。あなたはコマンドSudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
を使うことができます。
注: (mysql.sock)ファイルはサーバーの起動時に作成され、サーバーの停止時に削除されるため、作成したリンクが壊れているように見えることがありますが、
Sudo /opt/lampp/lampp start
またはその他の方法でサーバーを起動しました。
がんばろう!私はあなたが今回それでうまくいかないことを願っています。
ソリューション
最後にmysqlをアンインストールして再インストールします。 **
それから再度インストールしてください
この操作の後、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(データベース名)を使用してください。
ありがとう。**
多分誰かがこの問題に直面しています。 Mysql Workbench on 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
これはすでに数回言及されていましたが、これは私にとってすぐにうまくいきました:
サービスMySQL再起動
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
でサービスを再開してください。
これは私のために働いた
すでにmysqld.sock
by /var/run/mysqld
をインストールしている場合は、mysql-server
にSudo apt-get install mysql-server
があります。
私の場合、2つのmysqldプロセスが実行されていました。pkill-9 mysqldを使用してオプションのプロセスを強制終了しました。
あなたのシステムにたくさんのデータベースとテーブルがあり、my.cnfにinnodb_file_per_table
が設定されている場合、mysqlサーバーは開いているオブジェクト/ファイル(あるいはこれらのオブジェクトのためのディスクリプタ)を使い果たしているかもしれません。番号付き
open-files-limit = 2048
そしてmysqlを再起動してください。このアプローチは、ソケットがまったく作成されていない場合には役立つ可能性がありますが、実際には実際の問題ではない可能性があり、根本的な問題があります。
私はちょうどUbuntu 14.10でこの問題を抱えていました
mysql-server
はもうインストールされていない(どういうわけか削除されています)が、壊れたパッケージや依存関係の問題/衝突があったため、インストールできませんでした。
最後に私はmysqlを再インストールしなければなりませんでした
Sudo apt-get remove mysql-client
Sudo apt-get install mysql-server
Ubuntu 16.04でmysqlをアンインストールしました https://askubuntu.com/questions/172514/how-do-i-uninstall-mysql
私はmysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04 を再インストールしました
これはうまくいったようです。
私は自分のMySQLをUbuntuの仮想マシン上で走らせていたので、起こったことは私が自分のホストとVMを再起動した時でした。私はIP 192.168.0.5で実行するようにmysqlを設定していましたが、現在はIPの動的割り当てにより、私の新しいIPは192.168.0.8でした
同じ問題がある場合は、コマンドifconfig
を使用してIPを確認してください。
MySQLのバインディングをコマンドcat /etc/mysql/my.cnf | grep bind-address
で確認してください。
両方のIPアドレスが同じ場合は、MySQLサーバーを再インストールしてください。
そうでない場合は、nano、vi、vimまたはその他の好みのものを使用して/etc/network/interfaces
内のIPを変更します。
私はSudo nano /etc/network/interfaces
が好きです
以下を入力してください
auto eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
Interfacesファイルを保存し、インタフェースを再起動しますSudo ifdown eth0
&& Sudo ifup eth0
"eth0"をあなたのネットワークインタフェースに置き換えます
MySQLを再起動して、Sudo service mysql stop
に続いてSudo service mysql start
を再起動します。
私と同じ問題があるのなら、行ってもいいですよ!
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
私は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を回復する。
がんばろう!
端末プロンプトで次のことを試してください。
Sudo mysql
それができたら、新しいユーザーを作成して、アクセスを必要とする特定のデータベースに対して必要な特権を付与できます。
Mysql 5.7ではいくつかのことが変更され、アカウントがハッキングされるのを防ぐためにデフォルトで(mysql_native_passwordとは対照的に)auth_socketプラグインを使用します。 rootのpluginフィールドを設定することでこれを無効にすることができます、しかしあなたが非常に良い理由がない限りあなたはおそらく保護を迂回するべきではありません。特にSudo mysql
がmysql -u root -p
よりも簡単な場合は特にそうです。
Raspberry Pi helpのサイトから - 私はこの情報を見つけました - すべての場所の - 。 Lubuntu 18.04が数時間私の外にいらいらしてから魅力のように働きました。
MySQLサーバーが起動していないと思います。そのため、次のいずれかのコマンドを使用してサーバーを起動します。
#services mysql start
または
#/etc/init.d/mysql start
アクセスできないソケットファイルのパスが '/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
私はまたMySQLの設定を確認します。私は自分のサーバーでこの問題に遭遇していましたが、私はちょっと早すぎると私のマシンのinnodb_buffer_pool_sizeを誤って設定しました。
innodb_buffer_pool_size = 4096M
それは通常2048年まで正常に動作しますが、私は4ギグをサポートするために必要なメモリがないと思います。
私はこれが他のmysql設定でも起こり得ると思います。
場合によっては、サーバーに十分なスペースがないこと、ログスペースのクリアなどのスペースを空けてmysqlを起動することなどがあります。
/etc/init.d/mysql start
私はUbuntuでXAMPPを使っています。ターミナルを介してデータベースに接続しているときにこのエラーが発生しました。 XAMPPのデフォルトのソケットファイルパスは "/opt/lampp/etc/my.cnf"に次のように書かれているので、何も設定せずに解決します。
[client]
#password = your_password
port = 3306
socket = /opt/lampp/var/mysql/mysql.sock
これで、端末上でmysqlコマンドでこのソケットパスパラメータを指定するだけで接続できます。
mysql -u root --socket /opt/lampp/var/mysql/mysql.sock
そしてそれは設定なしで行われます。
毎回ソケットパスを入力したくない場合は、my.cnfの "/var/run/mysqld/mysqld.sock"でデフォルトパスを変更してください。許可を与えて、mysqlサーバーを再起動してください。
最初にdir/var/run/mysqldを作成します
コマンド付き:
mkdir -p /var/run/mysqld
次に、ディレクトリに権限を追加します
chown mysql:mysql /var/run/mysqld
この試行の後
mysql -u root
私の場合、問題は/etc/mysql/my.cnfのバインドアドレスにあります。
nano /etc/mysql/my.cnf
バインドアドレスを検索し、ホストIP(127.0.0.1ではなく)で特定のアドレスを削除します。
デジタルオーシャンでドロップレットのサイズを変更すると、このような問題が発生しました。私はMySQLのバージョンをアップグレードしていたし、私のために働きます。ここに私が適用したものがチュートリアルです - https://serverpilot.io/community/articles/how-to-upgrade-mysql-5.5-to-5.6-on-ubuntu-14.04.html
私は全く同じ問題を抱えていました。 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
そして、あなたはそれがうまくいくことを見るでしょう!そしてそれをやめても問題ないでしょう。
Mysql.sockファイルはMariaDBの起動時に作成され、MariaDBのシャットダウン時に削除されます。 MariaDBが稼働していない場合は存在しません。 MariaDBをインストールしていないのかもしれません。あなたは以下の指示に従うことができました: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST
私はマシンを再起動し、コマンド "service mysql restart"を発行したときにmysqlサーバーが再起動するまで、私はほとんどすべてのリストされた解決策を試してみました、私のために働いていませんでした。
archlinuxでは、私はこのエラーに直面し、問題はmysqld
-サービスが実行されていなかったことでした。
しかし、Archlinuxのドキュメントで説明されているように、mysqlサービスをsystemctl start mysqld
で有効にすることはできませんでした。エラーはこんな感じだったと思う
mysqld.serviceが見つかりません
私は最初にシステムを再起動する必要がありました。
それから私は再びコマンドを入力し(そしてsystemctl enable mysqld
を入力し)そして今mysql
は作成されたmysql.sock
を見つけることができました。
私の解決策。
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