1

Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

that error pop up in every thing i do with no reason ...i literaly make databases which have default values and it pop up ... copying 100% working code it pop up .. even it get fixed with reason .. like create same database again with same details .. i am really bored from it now as it pop up in like 15 different project ...can't understand why it pop up or even git fixed ... just making unique keys or primary and it sometimes pop up and other it won't !! ... reinstalling Apache like 5 times getting last version .. still pop up with 100% working code what's the logical reasons it may pop up ??

what i did is just make auth and migrate it to databse (laravel) error :

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

at C:\USER\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // If an exception occurs when attempting to run a query, we'll format the error 661| // message to include the bindings with SQL, which will make this exception a 662| // lot more helpful to the developer instead of just the database's errors. 663| catch (Exception $e) {

664| throw new QueryException( 665| $query, $this->prepareBindings($bindings), $e 666| ); 667| } 668|

Exception trace:

1 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists") C:\USER\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

2 PDOStatement::execute() C:\USER\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

Blockquote

Blank
  • 41
  • 9
  • try this: https://laravel-news.com/laravel-5-4-key-too-long-error – nakov Nov 05 '18 at 16:42
  • @Blank please give a response to my answer. If you still have doubt then ask me, I am happy to help you out. – Udhav Sarvaiya Nov 07 '18 at 15:21
  • 1
    @UdhavSarvaiya sorry for late response ... i was away from home last day so i couldn't open my pc i was working on mariadb and i read that it maybe because old mysql version soo i though it's because i'm using mariadb .. i tried to change server in xampp to mysql5.7 but alot of problems .. till i downloaded wamp ... i tried to test again .. same problem ..i start doing your solution ... it worked prefectly .. – Blank Nov 07 '18 at 19:21
  • 1
    i can't express how grateful i am ... it really helped me bro <3 thank you – Blank Nov 07 '18 at 19:22

1 Answers1

2

Add this code in app/Providers/AppServiceProvider.php file:

use Illuminate\Support\Facades\Schema;
public function boot()
{
    Schema::defaultStringLength(191);
}

you need to delete (if you have) users table, password_resets table from the database & delete users and password_resets entries from migrations table and then after deleting old tables run php artisan migrate command

Salman Zafar
  • 3,844
  • 5
  • 20
  • 43
Udhav Sarvaiya
  • 9,380
  • 13
  • 53
  • 64