そのため、最初はphpmyadminで使用するデータベースを作成しようとしたときにこのエラーが発生していました。 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
私はいくつかの場所を調べましたが、昨日サーバーを再インストールしたばかりなので、私の仲間からmysqlの再インストールを試みるように言われました。
そこで、mysqlを再インストールすることにしました。今では、次のエラーが発生せずにインストーラーを実行することもできません:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
作成したデータベースでスクリプトをインストールしようとすると、'root'@'localhost'
エラーも発生しました。これは、スクリプトをインストールしようとしたときに発生するエラーです:Centos6の実行
PHP 5.3.3(私が使用しているスクリプトはIoncubedであり、PHP 5.4、私はそれを必要としません)。
編集:
なぜ私が最初に見回さないのか疑問に思うなら、私は周りを見回しました!私のように問題を抱えている人を見つけることができません。
編集2:
MySQLを正常にインストールしました。戻ってもう一度やり直したいと思ったので、インストーラーはうまくいきました。しかし、上の画像に示されているroot @localhostエラーが発生します。構成が「root」@「localhost」を魔法のように使用していないことを確認しました。
データベースの構成ではroot @ localhostが使用され、そのパスワードはデータベースを初めてインストールしたときに選択されました。システムのrootパスワードではありません。 MySQLルートとシステムのルートは異なるアカウントであり、パスワードが異なる可能性があります。
mysql -u root -p
を使用して、覚えて推測してみてください。運が悪い場合は、MySQL構成を削除して新たに開始する方法をGoogleで検索してください。
MySQLは「localhost」と「127.0.0.1」を異なる方法で処理します。 1つ目は、/var/lib/mysql/mysql.sock
などでUnixソケット接続を実行するために使用されます。したがって、mysql.user
テーブルに2つの異なるGRANT
命令が必要です(少なくともOpenSuSE Linuxでは必要です。たとえば、Windowsではマイレージが異なる場合があります)。
(rootとしてのmysql接続)
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
次に、スクリプトが実際に「root @localhost」としてインストールしようとしていることは明らかです。スクリプトまたはインストーラー構成を編集できない場合は、一時的に rootパスワードを無効にすることでそれを処理できます。
USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
...安全性を高めるために、これを行った後はmysqlからログアウトしないでください。インストールが完了したら、rootパスワードをリセットする必要があります。
GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
これはインストール後にスクリプトが何をするかの問題を解決しません。 stilllocalhostでrootを使用し、stillを使用する可能性がありますパスワードなし。そのため、パスワードをリセットするとすぐに機能しなくなります。スクリプトの構成でrootとlocalhostへの参照を見つける必要があります(これらは別々に指定できます):次のようなものが必要です
user = root
Host = localhost
dbname = somedb
または多分
'username' => 'root',
"hostaddr" => "localhost",
...
そしてそれらを変更します。新しいGRANT
ステートメントを発行するだけで、MySQLで新しいユーザーを作成できます。
通常の場合、 stack_overflow が役立ちます。ただし、異なるバージョンの競合の場合、パスワードは正常にリセットできません。この場合、mysqlを再インストールしてください。 それが私が出会うものです!!
手順は次のとおりです。1)インストールされているmysqlを見つけます
#rpm -qa | grep mysql
2)mysqlを削除します
#rpm -e 'プログラム'
3)lib&includeを削除します
#rm -rf/usr/lib/mysql
#rm -rf/usr/include/mysql
4)mysqlの日付を削除するか、バックアップします。
#mv/var/lib/mysql〜/mysql_backup
5)mysqlを再インストールします
#yum install mysql mysql-server
6)mysqlサービスを開始して試してください
#chkconfig mysqld on
#service mysqld start
#mysql -uroot -p
-このステップでは、インストールが成功した場合、パスワードはnullである必要があります。 Enterキーを押して、mysqlデータベースにアクセスするだけです。