ホームページ >データベース >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 サーバーが起動していないと、接続は正常に確立されません。 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 サイトの他の関連記事を参照してください。