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 RouteRoute::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 드라이버를 사용하는 것에서 비롯됩니다.
- 먼저 관련 데이터베이스를 작성해야 합니다.
- 그러면:
php artisan cache:clear
-
php artisan migrate:install
당신의 문제가 해결되길 바랍니다.
을 사용하여이 원하는 저는 phpMyAdmin(이든) 하여를 한 후 "forge" 라고했습니다를 했습니다.php artisan migrate
명령을 내렸고 모두 효과가 있었습니다.
글을 쓰다
php artisan config:cache
당신의 단말기에서 그것은 고쳐질 것입니다.
기본 데이터베이스 설정을 재정의하는 환경별 구성 파일이 어딘가에 있는 것 같습니다.app/config/local/database일 수 있습니다.php.
에 : 와 공백이 .mydatabase
mydatabase
phphmyadmin , 이 mysql 의한다면과하면,mysql -u the_user -p
그리고나서show databases
을 볼 수 .
저도 똑같은 문제가 있었어요DB 이름과 사용자 이름을 설정하고 .env 파일에 올바르게 전달했지만 여전히 작동하지 않는 경우 terminal:(이전 앱에서 남은 캐시를 청소합니다.)
php artisan cache:clear
합니다를 합니다.php artisan serve
) 합니다).
- 한 후 합니다.
php artisan cache:clear
. - 서버를 시작하고 지금 작업해야 합니다.
- 서버를 중지한 다음 pp partisan cache:clear를 실행합니다.
- .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
).
해결책:
- WAMP 트레이에서 마우스 오른쪽 버튼 클릭;
- MySQL에서 클릭(커서 드래그);
- MySQL에서 사용하는 포트 번호를 참조합니다.
- 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:clear
env 파일을 통해 APP_KEY 변수로 신규 생성된 app key를 설정하고 서버를 다시 시작하는 방법으로php artisan serve
이 문제를 해결했습니다
네 번째 해결책에서는 이 질문에 답했지만, 저는 이것을 다르게 설명하기 위해 다시 대답하는 것을 선호합니다.http://localhost/phpmyadmin인 phpmyadmin으로 데이터베이스를 만들었을 때 문제가 해결되었습니다.이것이 제 코드입니다.
<?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
'source' 카테고리의 다른 글
RestSharp에서 요청 본문에 텍스트를 추가하는 방법 (0) | 2023.09.27 |
---|---|
AttributeError: 'WSGIRquest' 개체에 'is_ajax' 속성이 없습니다. (0) | 2023.09.27 |
워드프레스에서 내보낸 두 Json 파일을 결합합니다. (0) | 2023.09.27 |
JNI를 사용하여 문자열 배열을 Java에서 C로 전달 (0) | 2023.09.27 |
자바스크립트에서 추상 베이스 클래스를 만들려면 어떻게 해야 합니까? (0) | 2023.09.27 |