私はすでに this を調べましたが、XAMPPの代わりにUbuntu 10.04で実行しており、すでにphpmyadminデータベースを作成しているので、rootユーザーとphpmyadminユーザーの両方で端末からログインできます。
インストール方法:Sudo apt-get install lamp-server ^ Sudo apt-get install phpmyadmin
Rootユーザーとphpmyadminユーザーの両方を使用して、ターミナルでローカルにログインできます。 phpmyadminログインページを表示できます。サーバーに投稿したphpinfo.phpページが機能します。
プロトコルをtcpに切り替えて、「localhost」ではなく「127.0.0.1」に接続することにより、正常に接続しました。 MySqlデーモンソケットが実行されていても、Unixソケット経由で接続することはできません。
端末でcontroluserとしてログオンできるため、設定ファイルにcontroluserの適切なユーザー名またはパスワードが含まれていない可能性が高いです。
開くconfig.inc.php
テキストエディタで、controluserおよびcontrolpassの行を確認します。これらが正常に使用しているユーザー名とパスワードと完全に一致することを確認してください。これらの2行を完全にコメントアウトして、別のエラーメッセージが表示されるかどうかを確認してください。
パッケージマネージャーを使用してインストールした場合は、構成ファイルが/etc/phpmyadmin
そしてこれらの行を手動で追加した場合、別の構成ファイルによって上書きされる可能性があります。 grep -Ri controluser /etc/phpmyadmin/*
複数のファイルに表示されるかどうかを確認します。
パッケージマネージャーを使用したため、データベースの構成を処理させる必要があります。構成ファイルに加えた編集をすべて削除して、dpkg-reconfigure -plow phpmyadmin
(これはコマンドプロンプトで実行するシェルコマンドです);これにより、phpmyadminパッケージが再構成され、dbconfig-commonがコントロールユーザーと同様にphpMyAdminテーブルを作成できるようにするかどうかを尋ねられます。
ちょうどコメント解除行:
$cfg['Servers'][$i]['Host'] = 'localhost';
それを試してみてください。
これは、phpmyadminで接続しているユーザーがmySQLで更新された場合にも発生する可能性があります。 phpmyadminをアンインストール/更新/再インストールし、同時にいくつかのmySQL設定を変更するときにこれがありました。
修正方法は、適切なログイン資格情報(ユーザー名、パスワードなど)でconfig-db.phpファイルを更新することです。
Ubuntu 12.04では、これは/etc/phpmyadmin/config-db.phpにあります。
より詳細な手順は http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/ にあります。
データベースphpmyadminを作成します
ファイルを開く
/etc/phpmyadmin/config-db.php
config-db.phpファイルでルートパスワードを設定します。
$dbuser='root';
$dbpass='password'; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';
問題は解決されます。
2つのエラーがあります。
1。構成で定義されている制御ユーザーの接続に失敗しました
溶液:
a。ターミナルを開きます:Sudo gedit /etc/phpmyadmin/config.inc.php
b。次の行のコメントを解除します(両方ともバージョンによって2回発生する場合があります):$ cfg ['Servers'] [$ i] ['AllowNoPassword'] = TRUE;
c。次の行にコメントを追加します(両方ともバージョンによって2回発生する場合があります):// $ cfg ['Servers'] [$ i] ['controluser'] = $ dbuser; // $ cfg ['Servers'] [$ i] ['controlpass'] = $ dbpass;
2。ユーザー 'root' @ 'localhost'のアクセスは拒否されました
これは、phpmyadminを開いたとき、またはSudoコマンドなしで(rootユーザーからではなく)端末でmysqlを開いたときに発生します。このエラーは、rootユーザーが原因です。このエラーの原因は、現在のubuntuユーザーがmysqlをターミナルで開くための特権を持っていないことです。 Sudoコマンドでmysqlを開くと開きますが、現在のユーザーからは開きません。例えば:
lenovo @ lenovo-ThinkPad-E460:/ etc $ mysql -u root -pパスワードを入力してください:エラー1698(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました
現在のubuntuユーザーはレノボです。そのため、rootユーザーに許可を与える必要があります。プロセス:
1-最初に、Sudo mysqlに接続します
Sudo mysql -u root
2-データベースに存在するアカウントを確認します
SELECT User、Host FROM mysql.user;
+ ------------------ + ----------- + |ユーザー|ホスト| + ------------------ + ----------- + |管理者|ローカルホスト| | debian-sys-maint |ローカルホスト| | magento_user |ローカルホスト| | mysql.sys |ローカルホスト| |ルート|ローカルホスト|
3-現在のroot @ localhostアカウントを削除する
mysql> DROP USER 'root' @ 'localhost';クエリOK、影響を受ける行はありません(0,00秒)
4-ユーザーを再作成する
mysql> CREATE USER 'root' @ '%' IDENTIFIED BY '';クエリOK、影響を受ける行はありません(0,00秒)
5-ユーザーに許可を与え、特権をフラッシュすることを忘れないでください
mysql> GRANT ALL PRIVILEGES ON。TO 'root' @ '%';クエリOK、影響を受ける行はありません(0,00秒)
mysql> FLUSH PRIVILEGES;クエリOK、影響を受けた行0(0,01秒)
6-mysqlを終了し、Sudoなしで再接続を試みます
これが役立つことを願っています。そして今、あなたはパスワードなしでphpmyadminを開くことができます。
Xammpを使用してWindowsを使用している場合は、C:\xammp\phpMyAdmin\ config.inc
、それを開いてこの行を見つけ、今確認してください
/* User for advanced features*/
$cfg['servers'][$i]['controluser'] = 'pma';
$cfg['servers'][$i]['controlpass'] = '';
およびphpMyAdminデータベースのユーザーpmaユーザー名とパスワードは同じです
phpmyadmin documentation を読んでください
まず、このファイルに正しいusername
&password
があることを確認してください。
/etc/dbconfig-common/phpmyadmin.conf
/etc/phpmyadmin/config-db.php
:
## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include
このusername
とpassword
は、phpmyadmin database
。
したがって、phpmyadmin database
には少なくとも同じ名前とパスワードが割り当てられたuser
が少なくともDatabase-specific privileges
それで解決しました。
に:
私の場合、ソケット接続を使用しています。 $ cfg ['Servers'] [$ i] ['controlhost'] = '';を設定することにより(空にするため)「構成に定義されているcontroluserの接続に失敗しました」というメッセージが消えました。理由は、「controlhost」を設定すると、phpMyAdminがデータベースへの新しい接続を試み、ソケットを無視するためだと思います。
あなたが見つけるコードで:
if (! empty($cfg['Server']['controlhost'])
|| ! empty($cfg['Server']['controlport'])
Ifブロックの終わりに、新しい接続が作成されます。