راکت

ارتباط برقرار نکردن به دبتابیس

4 پاسخ

درود دوستان...
طبق آموزش زیر فایل AppServiceProvider.php را دستکاری کردم ولی بازم ارورر ارتباط به دیتابیس می دهد مشکل از کجاست؟

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

ارورر ارتباط به دیتابیس:

 [Illuminate\Database\QueryException]                                         
  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' alre  
  ady exists (SQL: create table `users` (`id` int unsigned not null auto_incr  
  ement primary key, `name` varchar(191) not null, `email` varchar(191) not n  
  ull, `password` varchar(191) not null, `remember_token` varchar(100) null,   
  `created_at` timestamp null, `updated_at` timestamp null) default character  
   set utf8mb4 collate utf8mb4_unicode_ci)                                     

  [PDOException]                                                               
  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' alre  
  ady exists 
رایموند
رایموند
@Raymond
ثبت پرسش جدید

پاسخ‌ها

4
مهدی
مهدی
@code2code

این ارور که میگه جدول از قبل وجود داره باید دستی بری حذفش کنی
ولی قبلا گفته بودم که چجوری کلا از شر این مشکل 191 خلاص بشی:

این مشکلی که با ۱۹۱ قرار دادن طول رشته حل میشه به دلیل اینه که mariadb که درون xampp قرار داره ورژنش ۱۰.۱.۲۶ هستش و چون لاراول ۵.۴ از utf۸mb۴ برای ذخیره emojis استفاده میکنه به دو صورت میشه این مشکل رو کاملا حل کرد
۱- روش اول اینکه بیایم mariadb رو آپدیت کنیم به ۱۰.۲.۸ که کامل مشکل حل شه با آپدیت mariadb به نسخه ۱۰.۲.۲۸ کاملا این مشکل حل میشه .

۲- روش دوم اینکه کدهای زیر رو داخل my.ini (داخل پوشه mysql/bin) ذخیره کنیم و در آخر mariadb رو ریستارت کنیم:

[mysqld]
# default character set and collation
collation-server = utf۸mb۴_unicode_ci
character-set-server = utf۸mb۴

# utf۸mb۴ long key index
innodb_large_prefix = ۱
innodb_file_format = barracuda
innodb_file_format_max = barracuda
innodb_file_per_table = ۱
[mysql]
default-character-set=utf۸mb۴
رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

@مهدی
چجوری mariadb رو آپدیت کنم؟

شاید پاسخ شما همین‌جا باشد

مهدی
مهدی
@code2code

به نظرم روش دوم رو بری خیلی راحت تری

ولی اگه میخوای آپدیت کنی
اول باید دیتابیس هایی که ایجاد کردی رو export کنی که بتونی توی mariadb جدید import کنی و داده ها از بین نره (توسطphpMyadmin گزینه export)
بعدش پوشه xampp/mysql رو تغییر نام بده مثلا mysqlBackup واسه اطمینان
از ادرس https://mariadb.com/downloads/mariadb-tx نسخه 10.2.9 رو دانلود کن
بعد هم موقع نصب mariadb آدرس /xampp/mysql رو بده و در آخر هم my.ini رو از mysqlBackup/bin (دیتابیس قبلی) کپی کن توی mysql/bin بعد هم تمام

البته یه چیزم بگم که میشد بذاری همون جای پیشفرض نصب شه ولی چون مطمئنن از xampp استفاده میکنید بهتره که همون جای اصلیش نصب شه
و دیگه نیاز نباشه بری پارامترا رو تغییر بدی

در آخر هم که باید همه چیزو import کنی
:))))

بهرام
بهرام
@bahram

تخصص: Laravel Developer

php artisan migrate:fresh

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام