Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

lavaral 5 ERROR{ (SQLSTATE[HY000] [1045] Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:YA)}

Secara default laravel mengasumsikan bahwa Anda ingin memiliki konfigurasi yang berbeda untuk lingkungan yang berbeda. Misalnya. dalam lingkungan pengujian, Anda mungkin ingin memiliki nama pengguna dan kata sandi yang berbeda dan dalam lingkungan produksi yang berbeda. Karena laravel memiliki begitu banyak file konfigurasi, dengan cepat menjadi mimpi buruk untuk mengelola semua itu. Karenanya laravel menggunakan variabel lingkungan PHP.

Lihat dokumen di sini.

Apa yang pada dasarnya dikatakan adalah bahwa jika Anda ingin menggunakan variabel "lingkungan", yang digunakan laravel secara default, Anda harus menempatkan semua konfigurasi Anda di env() metode seperti yang telah disebutkan.

Jika Anda tidak ingin melakukan ini, mis. untuk proyek sederhana, cukup hapus env dari kode Anda, seperti ini.

'mysql' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'laravel',
        'username'  => 'root',
        'password'  => 'password',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

Perhatikan bahwa Anda dapat mencampur dan mencocokkan. yaitu Anda dapat memiliki beberapa variabel dalam env dan beberapa yang berdiri sendiri.

Jadi mengapa menggunakan env sama sekali?

Katakanlah aplikasi Anda memiliki 100 penguji yang semuanya ditempatkan di lokasi yang berbeda. Di laravel Anda harus membuat kode sekitar 8-10 file konfigurasi. Anda juga perlu version-control file-file itu. Jadi, Anda memiliki dua masalah:

  1. Anda tidak ingin mengirimkan kredensial yang sama kepada 100 pengguna. Juga mereka mungkin menggunakan database yang berbeda, server cache, dll yang berarti bahwa mereka akan memiliki konfigurasi yang berbeda. Jadi setiap pengguna harus memelihara 8-10 file konfigurasi tersebut secara manual.
  2. Anda tidak ingin mengirim file konfigurasi ini ke kontrol versi. Karena jika Anda melakukannya, seluruh dunia akan mengetahui rahasia API Anda dan mungkin akan memanfaatkannya (seperti kata sandi). Juga jika Anda melihat file conf laravel, Anda akan melihat bahwa ada informasi lain seperti zona waktu, properti debug, dll yang juga ada di file conf, dan Anda ingin mengontrol versi mereka. Jadi, bagaimana Anda mengontrol versi file konfigurasi tersebut dan tetap menyembunyikan informasi sensitif Anda.

Jawabannya adalah env variabel. Laravel menggunakan dotenv yang dokumentasinya dapat ditemukan di sini . Pada dasarnya ini adalah variabel yang hidup dalam satu file bernama .env dalam pasangan nilai kunci. Mis.

Contoh isi file .env

APP_DEBUG=false
APP_KEY=ABCDEFGH
...

Setelah Anda menentukan file .env Anda seperti ini, Anda bisa mendapatkan nilai menggunakan kunci seperti env('APP_DEBUG') .

Jadi ini memecahkan masalah yang disebutkan di atas dengan cara berikut:

  1. Anda menyimpan .env berkas ke diri sendiri. Dan Anda juga mendeklarasikan file lain bernama .env.example yang merupakan replika persis dari file asli kecuali fakta bahwa file tersebut berisi nilai sampel, bukan nilai sensitif Anda. Kemudian Anda meneruskan file contoh baru ini ke semua orang. Mereka akan mengganti data sampel dengan informasi sensitif mereka sendiri.
  2. Karena Anda mengontrol versi file contoh, Anda dapat mengontrol versi semua file conf Anda karena tidak mengandung rahasia. Rahasianya ada di file .env. Semua file conf berisi nilai-nilai seperti ini env('APP_KEY') dan nilai sebenarnya diganti pada saat dijalankan menggunakan file .env Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. #1064 -Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda

  2. Apakah kueri pembaruan mysql mendapat manfaat dari indeks?

  3. Bagaimana cara memilih tanggal dan waktu tanpa detik di mysql?

  4. Cara Membuat Tabel di MySQL

  5. Apa pengganti uniqueidentifier di Mysql?