PDO接続を試みようとして
モジュールのインストール(RUN docker-php-ext-install mysqli pdo pdo_mysql mbstring)と
php.iniファイルでmysqlのdllを設定(extension=php_pdo_mysql.dll)を行いましたが、
(SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client)
サーバーがクライアントに認識されていない認証方法を要求しました
というエラーが起きました。
MAMPとXAMPから卒業したいです????お助けください…
#phpとmysqlのバージョン
php:7.1.9-fpm-alpine
mysql:8.0.20
#index.phpファイル
<?php // phpinfo(); define('HOSTNAME', '99f78bd4e0db'); define('DATABASE', 'practice'); define('USERNAME', 'root'); define('PASSWORD', 'root'); try { /// DB接続を試みる $db = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $msg = "MySQL への接続確認が取れました。"; } catch (PDOException $e) { $isConnect = false; $msg = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")"; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>MySQL接続確認</title> </head> <body> <h1>MySQL接続確認</h1> <p><?php echo $msg; ?></p> </body> </html>#php.iniファイル
expose_php = Off
error_reporting = E_ALL
display_errors = On
log_errors = On
log_errors_max_len = 4096
error_log = "/var/log/php_errors.log"
default_charset = "UTF-8"
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.detect_order = auto
extension=php_pdo_mysql.dll
#Dockerfile
FROM php:7.1.9-fpm-alpine
RUN docker-php-ext-install mysqli pdo pdo_mysql mbstring
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/18 12:24
2020/05/18 14:06 編集