ホームページ >データベース >mysql チュートリアル >thinkphp が mysql データベースに接続できない問題を解決する方法

thinkphp が mysql データベースに接続できない問題を解決する方法

WBOY
WBOY転載
2023-05-30 09:28:521416ブラウズ

最初のステップは構成ファイルを確認することです

MySQL データベースに接続するときは、構成ファイルに関連するパラメーターを設定する必要があります。 ThinkPHP は、Application/Common/Conf/ ディレクトリにある config.php ファイルを使用します。このファイルでは、データベース関連のパラメータを次のように設定する必要があります。

return array(
    // 数据库配置
    'DB_TYPE'   => 'mysql',     // 数据库类型
    'DB_HOST'   => '127.0.0.1', // 服务器地址
    'DB_NAME'   => 'test',      // 数据库名
    'DB_USER'   => 'root',      // 用户名
    'DB_PWD'    => '',          // 密码
    'DB_PORT'   => '3306',      // 端口
    'DB_PREFIX' => '',          // 数据库表前缀
);

このうち、DB_TYPE はデータベースの種類を表します。ここでは mysql です。 DB_HOST は MySQL サーバーのアドレスを表します。ローカルで実行している場合は、127.0.0.1 または localhost を入力します。 DB_NAME はデータベース名を表し、事前に作成する必要があります。 DB_USER は MySQL データベースに接続するユーザー名、DB_PWD はユーザー名のパスワード、DB_PORT はポート番号、DB_PREFIXデータベーステーブルのプレフィックスです。これらのパラメータは実際の状況に応じて設定する必要があることに注意してください。

MySQL データベースに接続できない場合は、これらのパラメータが正しく設定されているかどうかを確認する必要があります。ユーザー名またはパスワードが間違っている場合は、修正する必要があります。

2 番目のステップ、MySQL サーバーが起動しているかどうかを確認する

データベースに接続する前に、MySQL サーバーが起動していることを確認する必要があります。 MySQL サーバーが起動していないと、接続は正常に確立されません。 MySQL サーバーが起動したかどうかを確認するには、Linux または Mac OS X システムの場合は次のコマンドを入力します。

$ ps aux | grep mysqld

MySQL サーバーが起動している場合は、次のメッセージが表示されます:

root     14120  0.0  0.6 340248 11448 ?        Ssl  08:21   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

開始されていない場合は、次のコマンドを使用して MySQL サーバーを開始する必要があります:

$ sudo systemctl start mysql

上記のコマンドは MySQL サーバーを開始しますが、使用しているオペレーティング システムに応じて変更する必要があります。

3 番目のステップは、MySQL サーバーがリモート接続を許可するかどうかを確認することです。

MySQL サーバーにローカルで接続する場合は、このステップを無視できます。ただし、MySQL サーバーが Web サーバーと同じマシン上にない場合は、MySQL サーバーがリモート接続を許可しているかどうかを確認する必要があります。 MySQL サーバーがリモート接続を禁止している場合、接続は正常に確立されません。

MySQL サーバーがリモート接続を許可するかどうかは、bind-address パラメータを通じて設定されます。 bind-address パラメータ値が 127.0.0.1 に設定されている場合、MySQL サーバーはリモート接続を許可しません。これが 0.0.0.0 に設定されている場合、 MySQL サーバーはすべてのリモート接続を許可します。このパラメータの設定は、MySQL 構成ファイルで確認できます。 Ubuntu では、このファイルは /etc/mysql/mysql.conf.d/mysqld.cnf にあり、CentOS または RHEL では、このファイルは /etc/my.cnf# にあります。 ##。このファイルには、bind-address パラメータの設定が含まれています。リモート接続を許可するには、このパラメータを 0.0.0.0 に設定する必要があります。

bind-address パラメータを 0.0.0.0 に設定しても、MySQL サーバーにリモートで接続できない場合は、サーバーがファイアウォールが正しく構成されていない場合、接続が失敗する可能性があります。

4 番目のステップ、MySQL ユーザー権限の確認

MySQL では、ユーザー権限によって接続の問題が発生する場合もあります。ユーザー名に必要なデータベースにアクセスする権限がない場合、接続は正常に確立できません。 MySQL サーバーでは、次のコマンドを使用してユーザー権限を表示できます。

mysql> SHOW GRANTS FOR 'root'@'localhost';

上記のコマンドは、MySQL サーバーにローカルで接続するときに

root ユーザーの権限を確認します。 MySQL サーバーにリモートで接続している場合は、localhost を使用している IP アドレスまたはホスト名に置き換える必要があります。必要なデータベースへのアクセス許可が出力にない場合は、対応するアクセス許可をユーザーに付与する必要があります。

mysql> GRANT ALL PRIVILEGES ON dbname.* to 'username'@'localhost' IDENTIFIED BY 'password';

上記のコマンドは、

username ユーザー dbname# にアクセスを許可します。 ## データベースのすべての権限を設定し、ユーザーのパスワードを password に設定します。

以上がthinkphp が mysql データベースに接続できない問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。