رایموند
7 سال پیش توسط رایموند مطرح شد
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 

ثبت پرسش جدید
مهدی
@code2code 7 سال پیش آپدیت شد
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۴

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 7 سال پیش مطرح شد
0

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


مهدی
@code2code 7 سال پیش مطرح شد
2

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

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


بهرام
تخصص : Laravel Developer
@bahram 5 سال پیش آپدیت شد
0
php artisan migrate:fresh

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

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