MySQL データベースは、PHP Web サイト プロジェクトの開発でよく使用されます。 PHP フレームワーク ThinkPHP を使用してプロジェクトを開発する場合、多くの場合、MySQL データベースに接続する必要があります。ただし、場合によっては、MySQL データベースに接続できないという問題が発生し、開発に不要なトラブルが発生することがあります。この記事では、ThinkPHP が MySQL データベースに接続できない問題の解決方法を紹介します。
最初のステップは構成ファイルを確認することです
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 サーバーが起動していないと、接続は正常に確立されません。 Linux または Mac OS の場合 開始するには、次のコマンドを使用して MySQL サーバーを起動する必要があります:
$ ps aux | grep mysqld
上記のコマンドは 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
4 番目のステップ、MySQL ユーザー権限を確認する
MySQL では、ユーザー権限によって接続の問題が発生する場合もあります。使用したユーザー名に必要なデータベースへのアクセス権限がない場合、接続は正常に確立されません。 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
root
ユーザーの権限を確認します。 MySQL サーバーにリモートで接続している場合は、localhost
を使用している IP アドレスまたはホスト名に置き換える必要があります。必要なデータベースへのアクセス許可が出力にない場合は、対応するアクセス許可をユーザーに付与する必要があります。$ sudo systemctl start mysql
上記のコマンドは、
username ユーザー
dbname# にアクセスを許可します。 ## データベースのすべての権限を設定し、ユーザーのパスワードを password に設定します。 上記は、ThinkPHP が MySQL データベースに接続できない問題を解決するための一般的な方法です。それが役に立てば幸い。
以上がthinkphp が mysql データベースに接続できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。