PDA

View Full Version : مشکل در اتصال به دیتابیس در لاراول



HttpRequest
شنبه 21 فروردین 1395, 07:55 صبح
من دارم لاراول یاد می گیرم از روی یه فیلم آموزشی.توی فایل config/database.php رفتم و قسمتهای مربوط برای یوزر و پسورد و نام دیتابیس رو در متغیر mysql نوشتم و ذخیره کردم.درست هم زدم.
توی فایل route.php می خوام با schema::create با دیتابیس کار کنم ولی ارور میده.پیغامش هم اینه




n Connector.php line 52
at PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname =homestead', null, null, array('0', '2', '0', false, '0')) in Connector.php line 52
at Connector->createConnection('mysql:host=127.0.0.1;port=3306;d bname=homestead', array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'homestead', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 24




من homestead رو تو هیچ جا استفاده نکردم ولی اینجا می گه که برای نام کاربر و نام دیتابیس ازش استفاده شده.توی فایلهای connector.php و mysqlconnector.php رو هم دیدم اصلا توشون homestead نداشت.
کسی می دونه چیکار باید بکنم تا مشکلم رفع بشه
ممنون

HttpRequest
شنبه 21 فروردین 1395, 15:15 عصر
کسی نمی تونه راهنمایی کنه؟

مهرداد سیف زاده
شنبه 21 فروردین 1395, 16:14 عصر
برای نام دیتابیس از homestead استفاده شده. شما دیتابیسی به همین نام درست کنید مشکل برطرف میشه

MeSaeid
شنبه 21 فروردین 1395, 20:42 عصر
نام دیتابیس رو در فایل .env که در حالت معمول هیدن هست وارد کنید و یا قسمت نام دیتابیس رو از این فایل پاک کنید , مشکلتون رفع میشه .

HttpRequest
یک شنبه 22 فروردین 1395, 02:30 صبح
نام دیتابیس رو در فایل .env که در حالت معمول هیدن هست وارد کنید و یا قسمت نام دیتابیس رو از این فایل پاک کنید , مشکلتون رفع میشه .

توی فایلی که گفتید این تغییرات رو دادم ولی هنوز ارور می ده.


SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'art'


in Connector.php line 52at PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname =art', null, null, array('0', '2', '0', false, '0')) in Connector.php line 52at Connector->createConnection('mysql:host=127.0.0.1;port=3306;d bname=art', array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'art', 'username' => 'root', 'password' => '2210', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 24


الان مگه نباید بشه 'root'@'localhost' ؟
این تغییراتی که من دادم


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=art
DB_USERNAME=root
DB_PASSWORD=toor


یه سوال دیکه هم داشتم.این فایلهای تنظیمات فریم ورک رو وقتی تغییر می دیم آیا باید دوباره با دستور php artisan serve راه اندازی مجدد کنیم که این ها رو با مقدار جدید بگیره تا نه من فکر اشتباهی می کنم؟
ممنون

MeSaeid
یک شنبه 22 فروردین 1395, 05:15 صبح
توی فایلی که گفتید این تغییرات رو دادم ولی هنوز ارور می ده.


SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'art'


in Connector.php line 52at PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname =art', null, null, array('0', '2', '0', false, '0')) in Connector.php line 52at Connector->createConnection('mysql:host=127.0.0.1;port=3306;d bname=art', array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'art', 'username' => 'root', 'password' => '2210', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 24


الان مگه نباید بشه 'root'@'localhost' ؟
این تغییراتی که من دادم


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=art
DB_USERNAME=root
DB_PASSWORD=toor


یه سوال دیکه هم داشتم.این فایلهای تنظیمات فریم ورک رو وقتی تغییر می دیم آیا باید دوباره با دستور php artisan serve راه اندازی مجدد کنیم که این ها رو با مقدار جدید بگیره تا نه من فکر اشتباهی می کنم؟
ممنون
شما این مقادیر رو از فایل env پاک کنید تا مستقیم از فایل کانفیگ تنظیمات اعمال بشه .
اگر فایل کانقیگ رو کش کرده باشید باید پس از هر تغییر مجدد کش کنید تا تغییرات اعمال بشه

HttpRequest
یک شنبه 22 فروردین 1395, 12:37 عصر
شما این مقادیر رو از فایل env پاک کنید تا مستقیم از فایل کانفیگ تنظیمات اعمال بشه .
اگر فایل کانقیگ رو کش کرده باشید باید پس از هر تغییر مجدد کش کنید تا تغییرات اعمال بشه

بازم نشد.این محتوی فایل database.php . قسمت مربوط به اتصال به mysql


'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'art'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'toor'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],


اینم محتوی فایل .env . بعد از اینکه اون قسمتها رو پاک کردم


APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:5CG1g/6M+uppNkFan11+aT6Wmp0dS6gUHJ4zv/TcarY=
APP_URL=http://localhost:8000

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null




اینم کدی که توی route.php نوشتم برای کار با دیتابیس


Route::get('/', function () {

Schema::create('artist', function($newtable){
$newtable->string('name');
});

});


با یه یوزر جدید به غیر از root هم امتحان کردم ولی همچنان همین ارور زیر رو میده


PDOException in Connector.php line 52: SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'art'



in Connector.php line 52
at PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname =art', null, null, array('0', '2', '0', false, '0')) in Connector.php line 52
at Connector->createConnection('mysql:host=127.0.0.1;port=3306;d bname=art', array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'art', 'username' => 'root', 'password' => '2210', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 24
at MySqlConnector->connect(array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'art', 'username' => 'root', 'password' => '2210', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql')) in ConnectionFactory.php line 61





دیتا بیسش هم ساخته شده توی mysql

MeSaeid
یک شنبه 22 فروردین 1395, 15:27 عصر
بازم نشد.این محتوی فایل database.php . قسمت مربوط به اتصال به mysql


'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'art'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'toor'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],


اینم محتوی فایل .env . بعد از اینکه اون قسمتها رو پاک کردم


APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:5CG1g/6M+uppNkFan11+aT6Wmp0dS6gUHJ4zv/TcarY=
APP_URL=http://localhost:8000

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null




اینم کدی که توی route.php نوشتم برای کار با دیتابیس


Route::get('/', function () {

Schema::create('artist', function($newtable){
$newtable->string('name');
});

});


با یه یوزر جدید به غیر از root هم امتحان کردم ولی همچنان همین ارور زیر رو میده


PDOException in Connector.php line 52: SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'art'



in Connector.php line 52
at PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname =art', null, null, array('0', '2', '0', false, '0')) in Connector.php line 52
at Connector->createConnection('mysql:host=127.0.0.1;port=3306;d bname=art', array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'art', 'username' => 'root', 'password' => '2210', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 24
at MySqlConnector->connect(array('driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'art', 'username' => 'root', 'password' => '2210', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'name' => 'mysql')) in ConnectionFactory.php line 61





دیتا بیسش هم ساخته شده توی mysql
php artisan config:cache