web-dev-qa-db-ja.com

laravelでmysqlに接続する方法は?

これは非常に単純な基本的な質問です。これを尋ねる人はあまりいないと思いますが、単にlaravelを使用してlocalhost phpmyadminからmySqlに接続するにはどうすればよいですか(検索しましたが、私は初心者であり、私は尋ねたいので、尋ねる必要があります、私が見たものは100%を得られないか、試しましたが助けにはなりませんでしたか?

私は backbone.js で作業しており、 laravel を初めて使用します。 laravelC:\wamp\www\laravel-projectにインストールしました

私は試した

c:\wamp\www\laravel-project> php artisan migrate:make create_tasks_table --table tasks --create

そして

c:\wamp\www\laravel-project> php artisan migrate

データベース情報を定義する必要があります。C:\wamp\www\laravel-project\app\config\database.phpをチェックしましたが、正しいように見えます。mySQLはデフォルトのrootがユーザー名で、 '' emptyがパスワードです。

php artisan migrateを実行した後に表示されるコマンドラインのエラーは

[PDOException]
SQLSTATE[HY000] [1049] Unknown database 'database'    

私はWindows 8を使用しており、localhostサーバーにはwampを使用しています。もちろん、phpmyadminとmySqlが含まれています。したがって、mySqlを使用する方法はたくさんあると確信していますが、 laravel とphpmyadminを適切に設定しているとは思いません。

したがって、洞察は驚くべき簡単なポイントになります。

編集:

実際に考えてみると、databaseという名前のデータベースを作成する必要があるかもしれません。すぐに戻って。さて、誰かがこのトピックを検索した場合に備えて、質問に答えるか、誰かが答えることができます...データベースが定義されていることを確認するのはKEYですin C:\wamp\www\laravel-project\app\config\database.phpは、phpmyadmin内に存在するデータベースと一致します。非常に簡単、考える必要のない!

40

Laravelを使用すると、app/config/database.phpを介してデータベース接続を非常に簡単に管理できます。

既に述べたように、「データベース」と呼ばれるデータベースを探しています。これは、データベース構成ファイルのデフォルト名であるためです。

'mysql' => array(
    'driver'    => 'mysql',
    'Host'      => 'localhost',
    'database'  => 'database', <------ Default name for database
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

これを次のように接続するデータベースの名前に変更します。

'mysql' => array(
    'driver'    => 'mysql',
    'Host'      => 'localhost',
    'database'  => 'my_awesome_data', <------ change name for database
    'username'  => 'root',            <------ remember credentials
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

これを正しく設定すると、データベースに簡単にアクセスできるようになります!

ハッピーコーディング!

34
gerobk

Laravel 5には、.envファイルがあり、

のように見える

APP_ENV=local
APP_DEBUG=true
APP_KEY=YOUR_API_KEY

DB_Host=YOUR_Host
DB_DATABASE=YOUR_DATABASE
DB_USERNAME=YOUR_USERNAME
DB_PASSWORD=YOUR_PASSWORD

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_Host=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null

.envを編集します。env.sampleがあります。そのような.envファイルが見つからない場合は、そこから作成してみてください。

75
Mohammed Safeer

また、app/config/database.phpファイル自体を変更しないことをお勧めします。そうでない場合は、.envファイルを変更して、DB情報をそこに配置します。 (.envファイルはLaravel 5で利用可能です。以前のバージョンにあったかどうかはわかりません...)

注:もちろん、app/config/database.phpファイルでmysqlをデフォルトのデータベース接続としてすでに設定しているはずです。

6
Ali

たぶん、最初にテーブルの移行を作成するのを忘れたかもしれません:

php artisan migrate:install

また、非常にユーザーフレンドリーなパッケージGeneratorsがあり、これは多くの作業を行います https://github.com/JeffreyWay/Laravel-4-Generators#views

6
user3035039

私はこれを理解しようと多くの時間を費やしました。最後に、開発サーバーをシャットダウンし、再度起動してみました。イライラして、これは私のために働いた。 Laravel 5の.envファイルを編集した後、サーバーを終了し、php artisan serveを再度実行する必要があるという結論に達しました。

1
Employee 451

おそらくデータベースを作成するのを忘れただけでしょう。 PHPMyAdminを入力し、そこから実行します。

編集:間違いなくMaulikの答えを使わないでください。 mysql_ extenstion(これは一般的に悪い習慣と認識されています)を使用しているだけでなく、LaravelもPDOを使用して接続を処理しています。

0
Patrik Fuhrmann