35

これについては他にもいくつかの投稿がありましたが、どれも私にとってはうまくいかなかったようです.

ローカル マシンで CakePHP ページに移動すると、エラーが 1 つあります。

Cake がデータベースに接続できません。データベース接続「Mysql」が見つからないか、作成できませんでした。

この便利なコードを home.ctp で実行すると、次の応答が返されます。

エラー!: SQLSTATE[42000] [1049] 不明なデータベース 'test'

ただし、私のUsers/Ben/Sites/myapp/app/Config/database.php見た目は次のようになります (MAMP を設定して、Users/Ben/Sites のドキュメント ルートを検索します)。

<?php
class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'Ben',
        'password' => 'mypass',
        'database' => 'CV',
    );
}

Benパスワードで呼び出されるmysqlユーザーmypassを作成し、その下で呼び出されるデータベースを作成しましたCV。さらに、testデータベースについての言及はどこにもありません。ヘルプ?

4

19 に答える 19

49

ソケットを追加してみてください:

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
于 2013-10-09T21:07:56.223 に答える
22

unix_socket(特にOS Xの人々にとって)代替手段はlocalhost127.0.0.1

次のようになります:

public $default = array(
                'datasource' => 'Database/Mysql',
                'persistent' => false,
                'host' => '127.0.0.1',
                'login' => 'user',
                'password' => 'password',
                'database' => 'database-name',
                'prefix' => '',
                'encoding' => 'utf8',
        );
于 2015-01-20T10:17:59.250 に答える
10

Mac では、MAMP を開発プラットフォームとして使用します。正しい解決策は、Domingo Casarubio ソリューションを使用することです。

unix_socketパラメータをデータベース構成に追加します。

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
于 2014-03-19T02:05:40.263 に答える
5

あなたが 1 年前にこの質問をしていたことに気付きましたが、おそらく今では解決しているはずです。ただし、XAMPP に CakePHP をインストールしようとしたときに同じ問題に直面した場合は、'login' を 'root' (XAMPP のデフォルトのログイン) に変更し、'password' を '' のままにします。空欄。database.php ファイルの完全なコードは次のようになります。

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'ckblog',//replace with your own database name
    'prefix' => '',
    //'encoding' => 'utf8',
);

それでおしまい。

于 2014-08-14T00:42:38.083 に答える
2

It can be that mysql PDO support is missing.

as root (or using sudo):

apt-get install php5-mysql
于 2014-10-28T18:00:47.527 に答える
2

OSX Yosemite にアップグレードし、次の行を挿入してからこの問題が発生しました。

 'unix_socket' => '/tmp/mysql.sock'
于 2014-10-20T15:12:04.233 に答える
1

Ubuntuユーザーを支援するためだけに:最新のxamppがapachefriendsから直接ダウンロードされたubuntu 13.10マシンで同じエラーが発生しました。このエラーについて見つけたすべての投稿でほとんどのものを試しましたが、Mac 固有のものは試しませんでした。結局、修正はたまたまここで選択された回答と同じでした:

プログラムが接続するために mysqld が作成するソケットを見つけます。

user@host /opt$ find . -name mysql.sock
/opt/lampp/var/mysql/mysql.sock

CakePHP データベース構成ファイル (cakePHP)/app/Config/database.php に追加します。

'unix_socket' => '/opt/lampp/var/mysql/mysql.sock'

私にとっては、これにより最終的に「エラー: データベース接続 "Mysql" が見つからないか、作成できませんでした。」なしでケーキコマンドを実行できるようになりました。

于 2014-02-03T17:58:11.270 に答える
1

Cake Baker はデータベースへの接続に unix ソケットを使用するため、
接続文字列に unix_socket を追加する必要があります。
WAS で mysql.sock を保存する場所を確認する必要があります
例: 私の場合、MACOS 10.11 で xampp を使用してい
ます (ファイル Config/database.php を編集)

public $default = array(
  ‘datasource’ => ‘Database/Mysql’,
  ‘persistent’ => false,
  ‘host’ => ‘localhost’,
  ‘login’ => ‘root’,
  ‘password’ => ‘root’,
  ‘database’ => ‘cakephp’,
  ‘encoding’ => ‘utf8’,
  ‘unix_socket’ => ‘/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock’
);

最後に、それは私のための仕事です!

于 2016-05-04T02:23:27.663 に答える
0

私は週末ずっとこれに苦労してきましたが、ついに解決しました。php.ini が存在しない「extensions dir」を指していることが判明しました。phpinfo() ファイルを作成し、このフィールドの値を確認します。 extensions_dir

mamp php がインストールされたフォルダーに no-debug-non-zts-20131226 フォルダーがあり、phpinfo() に表示される値とは異なることに気付きました。私がしたことは、このフォルダーのクローンを作成し、名前を phpinfo() の値に変更することでした。おそらく php.ini ファイルを変更できますが、私はそうしたくありませんでした。

あなたがあなたの問題を解決したかどうかはわかりませんが、私の問題が異なっていて、Google が私をここに連れてきたので、これを投稿しています。

お役に立てれば。

于 2014-11-02T18:46:09.997 に答える
0

http://php.net/manual/en/pdo.connections.phpの例 2 のコードを /app/View/Pages/home.ctp にスプライシングしてみました。PDO コンストラクターの引数を修正し、クエリ内のテーブルの名前を変更する必要がありました。例 2 のコードは、「エラー!: ドライバーが見つかりませんでした」というエラーを返しました。King Jk の回答に基づいて、php_pdo_mysql.so がどこにあるのか疑問に思い始めたときに、php.ini を変更しようとしていました。 http://php.net/pdo_mysqlは、構成する --with-pdo-mysql オプションを介して PHP の一部としてコンパイルされる方法を示しました。再コンパイルすると問題が解決しました。注: PHP 5.5.9 および Apache Webserver 2.4.6 を使用する Ubuntu 12.10 システムで作業しています。

于 2014-02-21T05:50:35.527 に答える
0

システム構成:

  • フェドーラ 32
  • php-fpm 7.4.13
  • マリアデブ 10.4.17
  • ケーキ 2.10.17

CAKE からのエラー メッセージ:

データベース接続「Mysql」が見つからないか、作成できませんでした。

https://stackoverflow.com/a/24722976/5025060の回答を使用して強化されたエラー メッセージ

データベース接続「Mysql」が見つからないか、作成できませんでした: 選択したドライバーが有効になっていません

私の問題は、PHP と SQL の間の「コネクタ」がインストールされていなかったことです。解決策は次のとおりです。

dnf install php-mysqlnd

これにより、CAKE の database.php 構成ファイルで指定されているように、PHP がデータベースに接続できるようになりました。

于 2020-12-10T19:01:57.697 に答える