Akses Pangkalan Data Ditolak untuk Pengguna 'root' dalam Ubuntu 16.04
Apabila mengakses pangkalan data menggunakan pelayan web dalam Ubuntu 16.04, anda mungkin menghadapi ralat "SQLSTATE[HY000] [1698] Akses ditolak untuk pengguna 'root'@'localhost'". Isu ini timbul walaupun mencipta pengguna baharu dengan semua keistimewaan.
Sekatan Pengguna Root dalam MySQL 5.7
Punca ralat ini terletak pada perubahan yang diperkenalkan dalam MySQL 5.7, yang mengehadkan penggunaan pengguna 'root' tanpa keistimewaan sudo. Dalam versi sebelumnya, pengguna boleh mengakses MySQL sebagai 'root' tanpa meningkatkan keistimewaan mereka menggunakan arahan "mysql -u root". Walau bagaimanapun, dalam MySQL 5.7, pendekatan ini tidak lagi boleh dilakukan.
Penyelesaian
Untuk menyelesaikan isu ini, anda perlu mencipta pengguna baharu dengan keistimewaan dan penggunaan yang diperlukan pengguna itu bukannya 'root' apabila mewujudkan sambungan pangkalan data daripada aplikasi PHP anda atau alatan baris bukan arahan lain.
Kod PHP
Dalam kod PHP anda, gantikan nama pengguna dan kata laluan dengan bukti kelayakan pengguna yang baru dibuat:
<code class="php">protected $name = 'new_user'; protected $pass = 'new_password';</code>
Akses Root daripada Baris Perintah
Walaupun anda tidak boleh menggunakan pengguna 'root' terus dalam GUI atau aplikasi baris bukan arahan, anda masih boleh mengakses MySQL sebagai 'root' daripada baris arahan menggunakan sudo:
sudo mysql -u root
Ingat bahawa pendekatan ini meningkatkan keistimewaan anda dan hanya boleh digunakan apabila perlu. Adalah disyorkan untuk mencipta pengguna yang berdedikasi untuk pengurusan pangkalan data dan menggunakan pengguna itu dan bukannya 'root' atas sebab keselamatan.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke MySQL sebagai \'root\' dalam Ubuntu 16.04?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!