_ lamp _ on Ubuntu 12.04 LTS (Precise Pangolin)をインストールし、 phpMyAdmin にrootパスワードを設定します。パスワードを忘れたので、ログインできません。ターミナルからパスワードを変更しようとすると、次のようになります。
エラー2002(HY000):ソケット '/var/run/mysqld/mysqld.sock'を介してローカルのMySQLサーバーに接続できません(2)
どうすればこれを修正できますか? LAMPを開く、アンインストールする、または再インストールすることができません。
私はかつてこの問題を抱えていて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
を使用させると、問題が解決する可能性があります。
これを試して:
mysql -h 127.0.0.1 -P 3306 -u root -p <database>
また(それが実行されているかどうかを確認するために):
telnet 127.0.0.1 3306
おそらくこれはmy.cnf
ファイルの/etc/somewhere
ファイルの誤設定にすぎません( Linuxディストリビューション に依存)。
私はこれらすべての答えを見ていますが、 なし パスワードをリセットする と 受け入れられない答え のオプションを提供します。実際の質問は彼 忘れた 彼のパスワードなので、これらの答えの大部分が示すように、彼はリセットする必要があります。
次の手順に従ってください(現在パスワードがわからなくても、パスワードを忘れた場合はいつでも試すことができます)。
mysql
を停止
Sudo /etc/init.d/mysql stop
または他のディストリビューションバージョンの場合:
Sudo /etc/init.d/mysqld stop
セーフモードでMySQLを起動する
Sudo mysqld_safe --skip-grant-tables &
Rootを使用してMySQLにログインします
mysql -uroot
使用するMySQLデータベースを選択してください
use mysql;
パスワードをリセットする
update user set password=PASSWORD("mynewpassword") where User='root';
特権をフラッシュする
flush privileges;
サーバーを再起動します
quit
サーバーを停止して再起動します
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
新しいパスワードでログイン
mysql -u root -p
新しいパスワードを入力して、何も起こらなかったようにもう一度サーバーを楽しんでください。
これはMySQLのrootパスワードをリセットするから取得されました。
下記の@ Danielのコメントからの最新情報:
MySQL 5.7では、mysql.userテーブルフィールドのパスワードフィールドは削除され、フィールド名は 'authentication_string'になりました。そのため、手順5は次のようになります。
update user set authentication_string=password('mynewpassword') where user='root';
私は以下のステップを試しました:
super user
としてログインするかSudo
を使用してください/etc/mysql/my.cnf
を開きます。bind-address
を見つけて、その値をデータベースサーバのホストマシンのIPアドレスに変更します。私にとっては、それはlocalhost
または127.0.0.1
でしたSudo service mysql start
を実行そしてそれは私のために働いた。
次のコマンドを実行してこの問題を解決しました。
mysql.server start
あなたがMacを使用していてmysqlをインストールするためにbrewを使用していたなら、単に使用してください:
brew services start mysql
私は同様の問題を抱えていました。 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,
私はmysql
プロセスを殺すことでこれを解決しました:
ps -ef | grep mysql
kill [the id]
それから私は再びサーバを起動しました:
Sudo /etc/init.d/mysql restart
しかしstart
も同様に機能します。
Sudo /etc/init.d/mysql start
それから私はadmin
としてログインしました、そして、私はされました。
私の場合、それはディスクがいっぱいでmysqldがもう起動できなかったということでした。
MySQLサービスを再起動してみてください。
サービスMySQL再起動
または
サービスMySQL停止
サービスMySQLの開始
それが「停止」コマンドを認識しないならば、それは間違いなくディスクスペースです。 mysqlが割り当てられているパーティション内のスペースをいくらか増やすか、ディスクを大きくしてください。
でディスク容量を確認します。
df -h
どういうわけかMySQLサーバプロセスはソケットを作成しませんでした、またはクライアントは間違った場所でソケットを探しています。
私の最初の提案は、MySQLサーバーが稼働しているかどうかを確認することです。もう1つの提案は、MySQLサーバーは別のホストで稼働しているのでしょうか。そうであれば、端末のMySQLクライアントに-h <hostname>
フラグを追加してください。
MySQLが実際に実行されていて、ローカルで実行されている場合は、my.cnf
ファイルを確認してください。のような行があるはずです
socket = /var/run/mysqld/mysqld.sock
それがあなたの投稿で述べたソケットの位置と一致するかどうかを確認してください。
経験上、最も可能性の高いシナリオは、MySQLサーバーがまったく実行されていないか、端末からMySQLクライアントを実行しているのと同じホストで実行されていないことです。
運用サーバーを再起動しなければならなくなった後、私はちょうど同じ問題を経験しました。私はDigitalOceanのドロップレットでDebian 8.1(Jessie)を実行しています。
これが私の問題を解決するために私がしたことです:
ファイル/var/run/mysqld/mysqld.sock
が存在するか確認してください。そうでない場合は、touch /var/run/mysqld/mysqld.sock
を入力して手動で作成します(これが私のしなければならなかったことです)。
そのため、MySQLプロセスはこのファイルを使用できます。 chown mysql /var/run/mysqld/mysqld.sock
を入力して、ファイルの所有権を変更してください。
'2'が完了したら、service mysql restart
または/etc/init.d/mysql restart
を入力してMySQLサービスを再起動します。
上記の手順を経て、私の問題は解決しました。私はめったにこの問題を抱えていません、そしておそらくよりよい方法があるので、もし必要なら建設的なフィードバックを提供してください:).
あなたのmysqlサーバーは稼働していないかもしれません。端末にmysql.server start
を入力して実行されることを確認してください。
これは私のために働いたものです:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart
これでリンクが作成されます。
My.cnfの"bind-adress"
パラメータを確認してください。
そうでない場合は、次のコマンドを試してください。
mysql -h 127.0.0.1 -P 3306 -u root -p
ホスト127.0.0.1
、つまりlocalhostの場合は-h
ポート3306
の場合は-P(-Pを大文字にする)
Amazon EC2 を使用していて、インスタンスでこの問題が発生している場合は、次の手順を実行するだけです。
Sudo yum install mysql-server
Sudo service mysqld restart
Amazon EC2にはサーバーがインストールされていない(クライアントのみがインストールされている)ので、その場合はインスタンスにインストールする必要があります。その後、試してください。
mysql -u root -p
それがうまくいったかどうか確認するため。
私はあなたがエラーを受けるたびに私は思います
エラー2002(HY000):ソケット '/var/lib/mysql/mysql.sock'を介してローカルのMySQLサーバーに接続できません
mysql
デーモンが実行中かどうかを最初に確認することをお勧めします。ほとんどの場合、デフォルトでは実行されません。 /etc/init.d/mysqld status
で確認できます。
実行されていない場合は、最初に起動してください。
.../etc/init.d/mysqld start.
110%うまくいくでしょう。
Localhostを使う代わりに、
mysql -u myuser -pmypassword -h localhost mydatabase
127.0.0.1を使用
mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase
(また、-pとmypasswordの間にスペースは入れないでください)
楽しい :)
重要なデータベースのバックアップがあることを確認してから、 MySQLのアンインストールを試してください 関連するもの:
apt-get remove --purge mysql\*
それから もう一度インストールしてください :
apt-get install mysql-server mysql-client
これは私のために働き、データは保存されました。
PHP MySQLにエラーが表示された場合は、 PHP MySQL を再インストールする必要があります。
apt-get install php5-fpm php5-mysql
Linuxマシンに _ xampp _ がインストールされている場合は、my.cnf
ファイルを/opt/lampp/etc/my.cnf
から/etc/my.cnf
にコピーしてみてください。
それから、mysql -u root
をもう一度実行します。これで正しいソケットがあり、MySQLクライアントを実行できるはずです。
また、mysql server
がデフォルトで実行されていない場合に発生する同じ問題に直面します。数秒後に再び停止するので、($ Sudo service mysql start
)コマンドを再度実行します。
その使用コマンド
$ Sudo service mysql start
(必要に応じてSudo
を使用するため、ユーザーのパスワードを入力して)実行します
$ Sudo mysql -u root -p (put user password if required )
今、あなたはあなたのデータベースを手に入れました
私もこの問題を抱えていました、しかし私はただしました:
Sudo service mysql restart
それは私のために働きました。
私はソリューションを見つけました
発射前 コマンド:mysql_secure_installation
Sudo systemctl stop mariadb
Sudo systemctl start mariadb
mysql_secure_installation
それからそれはrootパスワードを尋ねるでしょう、そしてあなたは単にpress Enter そしてあなたの新しいrootパスワードをセットすることができます。
私の場合、それはいくつかの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)
私の場合は、デフォルトのポート3306が他のプロセスによって使用されていたため、起動していませんでした。私が他のサービスを止めてSudo service mysql start
をした後、それはうまくいった。ところで、Sudo lsof -Pn -iTCP:3306
のようなものを使って、誰がそのポートを使っているのかを知ることができます。
端末を開き、次のように入力します。
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のパッケージもあります。重要なことは、クライアントとサーバーのバージョン番号がどちらの場合でも一致することです。
これは私のために働きました。
あなたのインストールが最近のものであれば、あなたのインストールがmysql-server-5.5のようにインストールSERVERであるかどうかを確認する必要があります。
私の場合は、実行したときに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
で接続できます。
経験上、最初にサーバーが稼働しているかどうかを確認してからMySQLの設定を試す必要があると私は言います。最後の解決策はMySQLを再インストールすることです。
DebianサーバJessieでは、私の解決策は単純にすることでした。
service mysql restart
service mysql reload
rootユーザーとして
私は同じ問題を抱えていました。 MySQLサービスが停止していると、時々これが起こります。
それであなたはそれを始めなければなりません:
Sudo service mysql start
mysqld stop
mysql.server start
それは今働きます...
私はこの問題を克服するためにチュートリアルHomebrewを使ってMac OS XにMariaDB 10.1.16をインストールしました。
しかし、MariaDBの古いインストールを強制終了またはアンインストールすることを忘れないでください。
私は再起動mysqlでこの問題を解決しました
/etc/init.d/mysql stop
そして
/etc/init.d/mysql start
それでおしまい。
私は同じ問題を抱えていました。何度も検索しても、答えが見つかりませんでした。
最後に、/tmp
ディレクトリをチェックしたところ、その権限は755でした。その権限を777に変更したところ、mysqldは問題なく起動しました。
Ubuntu 14.04(Trusty Tahr)でも同じです。
あなたがXAMPPをインストールしたなら、mysql-serverをインストールすることは解決策ではありません、あなたは別のMySQLにアクセスするでしょうから!
あなたはアクセスするために正しいソケットを使わなければなりません。通常これです:
/opt/lampp/var/mysql/mysql.sock
代わりに、次のように変更してください。
/var/run/mysqld/mysqld.sock
正しい権限があるかどうかを確認してください。
Sudo chmod 755 /var/lib/mysql/mysql
私は同じ問題を抱えていて、これは私のために働きました。これを行った後、私はMySQLを起動することができました。
私のサーバーのストレージがいっぱいだった、これはMysqlの起動を妨げていました。 ここ からアイデアを得ました。 HDを上げて再起動すると問題が解決しました。
まず、サービスが実行されているかどうかを確認できます。
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
/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
それは働き始めました
/ var/run/mysqldディレクトリを作成する権限がありません。次のように作成して権限を付与してください。
私にとってはアップデートで問題は解決しました。
Ubuntuの場合:
Sudo apt-get update
Sudo apt-get upgrade
CentOSでは:
Sudo yum update
Mysql-serverをインストールします。
Sudo apt-get install mysql-server
enter password as root
ログイン:
mysql -u root -p root
ここではMySQLサーバのインストール中に-u user name
と-p password
が与えられました。それは私のために働いたようにそれは動作します。
私の場合、問題は私のすべてのデータベースのページ破損でした(mysqlエラーログを確認してください)。
Forcing InnoDB Recovery で解決しました。トリックは/etc/mysql/my.cnfを編集して追加することです
innodb_force_recovery = 4
すぐ下
[mysqld]
そして、mysqlを再起動してください。すべてが正しく動作したことを確認したら、もう一度その行を削除します。
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
この回答は、少量の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を設定するです。
あなたがUbuntuを使っているなら、それは特権の問題かもしれません。
ディレクトリの権限を確認してください。 rootグループに入るだけでは十分ではありません。MySQLが書き込むディレクトリに chmod を使用することもできます(たとえば、/var/run/mysqld/
ファイルの作成にはmysqld.pid
)。
これは私にとって役に立ちました。
でサーバーを再起動してみてください
Sudo /usr/local/mysql/support-files/mysql.server start
エラーがある場合は、以下の手順に従ってください。
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:シャットダウン完了
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)を提供するために
Sudo /usr/local/mysql/support-files/mysql.server start
MySQLの起動
成功!
また、my.conf
(/etc/mysql/my.cnf
)を調べて、bind-addressが127.0.0.1に設定されているかどうか確認してください。
そうでなければ、これはこの問題を引き起こすかもしれません。
私にとってはそれでした:
/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
で実行します。
私は今この問題を抱えてそれを解決しました。
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
インストールされていれば、これで問題は解決します。
私のサーバーでの簡単な解決策:私のMySQLデータベースで新しいDebian 7サーバーに移行した後、2番目の ローカルIPアドレス 、127.0.1.1
が私の hostsファイル にありませんでした。これを追加して警告を解決しました:
echo -e "\n127.0.1.1 $(hostname)" >> /etc/hosts
この問題が発生しないようにするには、サーバーの電源を切るのではなく、コマンドラインからサーバーを適切にシャットダウンする必要があります。
shutdown -h now
これにより、マシンの電源を切る前に実行中のサービスが停止します。
Centosに基づき、この問題に遭遇したときに再びバックアップを取得するための追加の方法は、mysql.sockを移動することです。
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
service mysqld start
サービスを再起動すると、mqsql.sockという新しいエントリが作成されます。
ローカルで実行しています。つまり、クライアントはサーバーと同じマシン上で実行されています。
あなたの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
そうでない場合は、システム管理者または データベース管理者 に問い合わせて、それらのディレクトリへの適切な読み取り/実行アクセス権を付与するか、ソケットファイルを別の場所に移動してください。
私は同じ問題を抱えていました。私はこれを見つけました。
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データベースの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>
Sudo touch /var/lib/mysql/.force_upgrade
Sudo rcmysql restart
私はこの問題を抱えていたとき私のために働いた
このエラーは、データベースが格納されているディレクトリを変更しようとしたが、設定ファイル内で間違ったディレクトリを入力しようとした場合にも発生する可能性があります(2番目のドライブのタイプミスのように正確なD_
ではなくD
として)。 typoディレクトリが存在しないと言うのではなく、あなたがそれにアクセスする許可を持っていないことを教えてくれます(typoディレクトリの許可を変更しようとすると、そうすることができます)。そのため、ディレクトリを変更しているときにこのエラーが発生した場合は、設定ファイルをもう一度確認し、間違いがないことを確認してください。
LAMPPが実行されているかどうかを確認しましたか?
Sudo bash <path>/lampp start
私にとっては、道は
Sudo bash /opt/lampp/lampp start
私もこの問題を抱えていました、そしてこれらの答えのどれも私を助けませんでした。問題は異なりましたが、エラーは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サーバーはメンテナンスのために再起動するようにスケジュールされていましたが、このエラーはどこからも発生しませんでした。
/var/run/mysqld
のグループの所有者を確認してください。 mysql.mysql
ではない場合は、次のようにします。
su root
chown mysql.mysql /var/run/mysqld
構成ファイルに問題がある可能性があります。私は同様の問題を抱えていました、そして私はウェブ上で解決策を見つけることができませんでした。私は2つのmy.cnf
ファイルがあり、1つは/etc/mysql
に、もう1つは/etc
にあります。以下の手順に従ってください。
my.cnf
を使用して、コンピューター上のlocate my.cnf
ファイルを確認してください。
/etc/my.cnf
と/etc/mysql/my.cnf
の2つのエントリがある場合は、/etc/mysql/my.cnf
を別のものに変更します。例えば/etc/mysql/my.cnf.old
もう一度MySQLを実行してみてください。
私の場合は、/var/log/mysql
で定義されている/etc/mysql/my.cnf
フォルダーが見つからないためにmysqlが停止されたためです。それを作成した後、私はmysqlを起動することができ、それはいつものように走りました。
MySQLをアップグレードすることでそれが解決しました。 RHELベースのサーバーでは、単に実行します。
Sudo yum upgrade mysql-server
mysqld
セクション([mysqld])の/etc/mysql/my.conf
からこの行を削除することで、この問題を解決しました。
default-character-set=utf8
再起動すればうまくいきます。
私は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が正常に作成されたことを確認することができました。
アドバイス:いつも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
でこのオプションのコメントを外したので文句を言っていますが、このオプションをコメントした後、問題なく起動しました。
/etc/mysql/my.cnf
で、最後の行を確認します。
!includedir /etc/mysql/conf.d/
この答えはここで溺れそうですが、誰かが偶然それにつまずくかもしれません。
私の場合、SELinuxはユーザー/アプリケーションがMySQL(MariaDB)サーバーソケットに接続するのを防ぎました。 RHELでは、SELinuxが有効になっている場合は/var/log/audit/audit.log
を確認してください。
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のメモリ不足によりサーバーがシャットダウンしました。