Langkah pertama ialah menyemak fail konfigurasi
Apabila menyambung ke pangkalan data MySQL, anda perlu menetapkan parameter yang berkaitan dalam fail konfigurasi. ThinkPHP menggunakan fail config.php
, yang terletak dalam direktori Application/Common/Conf/
. Dalam fail ini, kita perlu menetapkan parameter berkaitan pangkalan data, seperti berikut:
return array( // 数据库配置 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => '127.0.0.1', // 服务器地址 'DB_NAME' => 'test', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => '', // 数据库表前缀 );
di mana, DB_TYPE
mewakili jenis pangkalan data, berikut ialah mysql
. DB_HOST
mewakili alamat pelayan MySQL Jika dijalankan secara setempat, isikan 127.0.0.1
atau localhost
. DB_NAME
mewakili nama pangkalan data, yang perlu dibuat terlebih dahulu. DB_USER
ialah nama pengguna untuk menyambung ke pangkalan data MySQL, DB_PWD
ialah kata laluan nama pengguna, DB_PORT
ialah nombor port dan DB_PREFIX
ialah awalan jadual pangkalan data. Perlu diingatkan bahawa parameter ini perlu ditetapkan mengikut situasi sebenar anda.
Jika anda tidak boleh menyambung ke pangkalan data MySQL, anda perlu mengesahkan sama ada parameter ini ditetapkan dengan betul. Jika nama pengguna atau kata laluan salah, ia perlu diperbetulkan.
Langkah kedua ialah menyemak sama ada pelayan MySQL telah dimulakan
Sebelum menyambung ke pangkalan data, anda perlu memastikan pelayan MySQL telah dimulakan. Jika pelayan MySQL tidak dimulakan, sambungan tidak akan berjaya diwujudkan. Untuk menyemak sama ada pelayan MySQL telah dimulakan, taip arahan berikut, untuk Linux atau Mac OS Jika ia tidak dimulakan, anda perlu menggunakan arahan berikut untuk memulakan pelayan MySQL:
$ ps aux | grep mysqld
Arahan di atas memulakan pelayan MySQL dan perlu diubah mengikut sistem operasi yang anda gunakan.
Langkah ketiga, semak sama ada pelayan MySQL membenarkan sambungan jauhJika anda ingin menyambung ke pelayan MySQL secara setempat, anda boleh mengabaikan langkah ini. Walau bagaimanapun, jika pelayan MySQL anda tidak berada pada mesin yang sama dengan pelayan web, anda perlu menyemak sama ada pelayan MySQL membenarkan sambungan jauh. Sambungan tidak akan berjaya diwujudkan jika pelayan MySQL melarang sambungan jauh. Sama ada pelayan MySQL membenarkan sambungan jauh ditetapkan melalui parameter
. Jika nilai parameterditetapkan kepada
, pelayan MySQL tidak membenarkan sambungan jauh jika ditetapkan kepada, pelayan MySQL membenarkan semua sambungan jauh. Anda boleh melihat tetapan parameter ini dalam fail konfigurasi MySQL. Di Ubuntu, fail ini terletak di bind-address
, dan pada CentOS atau RHEL, fail ini terletak di bind-address
. Dalam fail ini, konfigurasi parameter 127.0.0.1
boleh ditemui. Parameter ini perlu ditetapkan kepada 0.0.0.0
untuk membenarkan sambungan jauh. /etc/mysql/mysql.conf.d/mysqld.cnf
/etc/my.cnf
Jika anda telah menetapkan parameter bind-address
kepada 0.0.0.0
tetapi masih tidak dapat menyambung ke pelayan MySQL dari jauh, anda perlu menyemak sama ada pelayan anda berdinding api Jika tembok api tidak dikonfigurasikan dengan betul, ia boleh menyebabkan sambungan gagal.
bind-address
Langkah 4, semak kebenaran pengguna MySQL 0.0.0.0
Dalam MySQL, kebenaran pengguna juga boleh menyebabkan masalah sambungan. Jika nama pengguna tidak mempunyai kebenaran untuk mengakses pangkalan data yang diperlukan, sambungan tidak boleh berjaya diwujudkan. Dalam pelayan MySQL, anda boleh menggunakan arahan berikut untuk melihat kebenaran pengguna: root 14120 0.0 0.6 340248 11448 ? Ssl 08:21 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
dengan alamat IP atau nama hos yang anda gunakan. Jika kebenaran kepada pangkalan data yang diperlukan tiada daripada output, anda perlu memberikan kebenaran yang sepadan kepada pengguna:
$ sudo systemctl start mysql
Arahan di atas memberikan root
pengguna semua kebenaran untuk mengakses pangkalan data dan set localhost
Kata laluan pengguna ialah
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang thinkphp tidak dapat menyambung ke pangkalan data mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!