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

7 ماه پیش
توسط حسام موسوی آپدیت شد
پایان جهان ( 97155 تجربه )
3 سال پیش
تخصص : جوجه برنامه نویس وردپرس و لاراول

درود دوستان...
طبق آموزش زیر فایل 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 
مهدی ( 23172 تجربه )
3 سال پیش

این ارور که میگه جدول از قبل وجود داره باید دستی بری حذفش کنی
ولی قبلا گفته بودم که چجوری کلا از شر این مشکل 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۴
پایان جهان ( 97155 تجربه )
3 سال پیش
تخصص : جوجه برنامه نویس وردپرس و لاراول

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

مهدی ( 23172 تجربه )
3 سال پیش

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

ولی اگه میخوای آپدیت کنی
اول باید دیتابیس هایی که ایجاد کردی رو 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 کنی
:))))

بهرام ( 9858 تجربه )
7 ماه پیش
تخصص : Laravel and Vuejs developer
php artisan migrate:fresh
برای ارسال پاسخ باید وارد سایت شوید