source

Laravel PDO Exception SQLSTATE[HY000] [1049] 알 수 없는 데이터베이스 '위조'

manysource 2023. 9. 27. 18:01

Laravel PDO Exception SQLSTATE[HY000] [1049] 알 수 없는 데이터베이스 '위조'

MySQL 데이터베이스에 연결하기 위해 Laravel을 사용하고 있는데 다음과 같은 예외가 발생했습니다.

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

이것이 제 구성입니다. database.

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'laravel',
            'username'  => 'Anastasie',
            'password'  => 'A@Laurent',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

가 를(를) 는 무엇입니까?PDO데이터베이스?그리고 왜 그forge데이터베이스 이름?이미 바꿨습니다.

제가 MySQL 데이터베이스를 사용하고 있다는 것을 Laravel에게 알리기 위해 무엇을 해야 합니까?

업데이트 1

I found this line `protected $table = 'users';` in my user.php file and I have changed it to `protected $table = 'user';` because the table in my database is `user` not `users`

업데이트2

I wrote this in my Route
Route::resource('users', 'UsersController');

그리고 나는 덧붙였습니다.UsersController.php

안에.UsersController.php나는 이것을 가지고 있습니다.

class UsersController extends BaseController {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        $users = User::all();
        return View::make('users.index', compact('users'));
    }

그리고 나는 이 url이라고 부릅니다.http://localhost:8082/laravel/public/users/

Laravel 4.2와 함께 Windows 7을 사용하고 있습니다.

캐시 파일에 이전 구성이 있기 때문에 그런 식으로 캐시를 지워야 합니다.

php artisan cache:clear

pdo 오류는 Laravel이 mysql에 연결하기 위해 pdo 드라이버를 사용하는 것에서 비롯됩니다.

  1. 먼저 관련 데이터베이스를 작성해야 합니다.
  2. 그러면:php artisan cache:clear
  3. php artisan migrate:install

당신의 문제가 해결되길 바랍니다.

을 사용하여이 원하는 저는 phpMyAdmin(이든) 하여를 한 후 "forge" 라고했습니다를 했습니다.php artisan migrate명령을 내렸고 모두 효과가 있었습니다.

글을 쓰다

php artisan config:cache 

당신의 단말기에서 그것은 고쳐질 것입니다.

기본 데이터베이스 설정을 재정의하는 환경별 구성 파일이 어딘가에 있는 것 같습니다.app/config/local/database일 수 있습니다.php.

에 : 와 공백이 .mydatabasemydatabase phphmyadmin , 이 mysql 의한다면과하면,mysql -u the_user -p그리고나서show databases을 볼 수 .

저도 똑같은 문제가 있었어요DB 이름과 사용자 이름을 설정하고 .env 파일에 올바르게 전달했지만 여전히 작동하지 않는 경우 terminal:(이전 앱에서 남은 캐시를 청소합니다.)

php artisan cache:clear

합니다를 합니다.php artisan serve) 합니다).

  1. 한 후 합니다.php artisan cache:clear.
  2. 서버를 시작하고 지금 작업해야 합니다.
  1. 서버를 중지한 다음 pp partisan cache:clear를 실행합니다.
  2. .env 파일 DB_PORT=3308 (나의 경우 3308) mysql port 변경

나는 그것들을 모두 했지만 작동하지 않았습니다. 나는 pp 장인 서비스(Ctrl + C)를 중단하고 pp 장인 서비스를 다시 시작해야 한다는 것을 알게 되었습니다.

홈스테드를 사용한 경우 아래 .env 파일의 데이터베이스 이름을 확인합니다.

DB_DATABASE=homestead

홈스테드.yaml 파일의 값과 같습니다.

databases:
    - homestead

먼저 이 명령을 사용하여 캐시를 지웁니다.

php artisan cache:clear

그런 다음 이 명령을 사용하여 서버를 재시작합니다.

php artisan serve

는 분명히 증명 합니다( 입니다)) 입니다).host/port/dbname/username/password).

해결책:

  1. WAMP 트레이에서 마우스 오른쪽 버튼 클릭;
  2. MySQL에서 클릭(커서 드래그);
  3. MySQL에서 사용하는 포트 번호를 참조합니다.
  4. Laravel 구성에 동일한 것을 추가합니다.
    • .env일;
    • config/database.php.

php artisan config:cache

php artisan migrate

에서 를 WAMP 의(phpMyAdmin 의) 를합니다와 DB_port.env일.

나의DB_port인에.env이다.3306는 .WAMP(phpMyAdmin)입니다.3308 -다

데이터베이스를 만들거나 localhost phpMyAdmin에 의해 데이터를 가져오면 되고 이름이 같은 이름이어야 한다는 것을 잊지 마십시오.

이 문제가 몇 번이나 발생했습니다. 바그란트를 통해 라라벨을 실행하고 있습니다.다음은 제게 도움이 되는 수정 사항입니다.

  • 여러 번 다시 시도(새로 고침 페이지)
  • 부랑재장전(부랑재장전)

vagranant(즉, MAMP) 대신 서버를 다시 로드해 볼 수 있습니다.

자, 해결책을 찾았습니다.

파일 데이터베이스에서.php, 기본적으로 "mysql" 부분이 나옵니다.

 'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

값을 변경하기만 하면 됩니다.

'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),

데이터베이스 이름(없는 경우에는 반드시 생성해야 함) 및 해당 데이터베이스 사용자 이름에 따라

이것처럼.

'database' => env('DB_DATABASE', 'MyDatabase'),
'username' => env('DB_USERNAME', 'MyUsername'),

된 합니다가 합니다..env파일을 laravel 폴더에 저장합니다.존재하는 경우 삭제합니다.만만 하세요..env일.

.env 파일에서 DB의 이름을 수정해야 합니다.(그리고 .env.example에서 필요하다면) 이 작은 수정으로 문제를 해결했습니다.

저의 특정한 경우, Laravel이 3306을 통해 연결을 시도하는 동안 제 phpMyAdmin이 3308 포트를 사용하고 있다는 것을 마침내 깨달았습니다. 그래서 제 조언은 당신이 올바른 연결 문자열을 가지고 있는지 확인하는 것입니다.

질문에 설명된 문제에 대한 저의 답변입니다.

cmd 쓰기:

php artisan cache:clear

그러면 단말기에서 이 코드를 해보세요.

php artisan serve

참고: 서버가 다시 시작됩니다.

며칠 전부터 이런 문제가 있었는데 phpMyAdmin 안에 db를 만들면 Laravel에 나타나지 않는다는 것이 밝혀져서 MySqlWorkbench를 통해 db를 만들었고 효과가 있었습니다 :)

를 지웁니다.php artisan cache:clear합니다를 시작합니다.php artisan serve 127.0.0.1:8000

APP_NAME의 내 변수 .env.example그리고..env그리고.app.php공간과 함께 있었어요 예를 들어.그 앱을 둘러보니'그리고.php artisan cache:clearenv 파일을 통해 APP_KEY 변수로 신규 생성된 app key를 설정하고 서버를 다시 시작하는 방법으로php artisan serve이 문제를 해결했습니다

네 번째 해결책에서는 이 질문에 답했지만, 저는 이것을 다르게 설명하기 위해 다시 대답하는 것을 선호합니다.http://localhost/phpmyadminphpmyadmin으로 데이터베이스를 만들었을 때 문제가 해결되었습니다.이것이 제 코드입니다.

<?php

$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "myDbn2";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

echo "Database created successfully<br>";


$sql = 'create table if not exists fruits (id integer  , name text , color text 
, price float) ;';

$conn->exec($sql);
echo 'the table created successfully </br>';


$sql2 = 'insert into fruits values (1 , "apple", "red" , 23.2);';
$conn->exec($sql2);

echo 'insert was successfully';
} catch (PDOException $e) {
echo $e->getMessage();
}

$conn = null;


?>

코드는 데이터베이스를 만든 다음 테이블을 만들고 레코드를 삽입합니다. pphmyadmin 사이트에서 데이터베이스를 만들지 않으면 예외가 발생합니다. sql statement CREATE DATABASE name ; 그리고 그것이 없어도 작동합니다.

php artisan config:cache그 명령으로 내 1049 데이터베이스를 찾을 수 없습니다.

모든 사람들이 언급했습니다.php artisan cache:clear. 가끔은 안 될 때도 있어요.하지만 제 경험상 캐시를 지우고 나서 데이터베이스를 삭제하고 다시 만들기만 하면 됩니다.그럼 이걸 다시 실행합니다.

php artisan migrate

틀림없이 효과가 있을 겁니다.

MySQL에서 환경 파일에 구성된 데이터베이스에 액세스할 수 없어 이 오류가 발생했습니다.

해결하기 위해 MySQL과 앱이 필요로 하는 데이터베이스를 만들었을 뿐이며 모두 잘 작동합니다.

제 경험으로는 이런 메시지 오류가 있었는데, 이 모든 해결책을 추적했지만 아무런 도움이 되지 않았기 때문입니다. 왜 제 잘못은 Xampp를 제거하고 설치를 다시 읽었는데 테이블로 새 데이터베이스를 만드는 것을 잊어버렸기 때문일까요? "Unknown database"는 메시지에 단순히 존재하는 것이 아니라 이제 제가 하는 일은 다음과 같습니다.

  • Xampp 설치(당연히 문제가 있는 경우)
  • i create now database + table short 당신은 오류 메시지를 다시 볼 수 없습니다. NB (나는 프로그래밍에 새로 들어왔습니다) < 당신이 코드를 쓸 때 인내심을 가질 수 있는 나의 콘세일 >

이 경로 부트스트랩에서 파일 제거\cache\

언급URL : https://stackoverflow.com/questions/24119818/laravel-pdoexception-sqlstatehy000-1049-unknown-database-forge