expressを使ってウェブアプリを作っています。ローカル環境ではdbに接続できたのに、本番環境に移したとたんmysql接続ができなくなりました。下記がその際のエラーです。
Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'127.0.0.1' (using password: YES)
ローカル環境と同じdbを本番環境にも作ったので、何故なのか分かりません。ちなみに本番環境は下記のように、バーチャルホストを用いて、アパッチの設定を下記のように書いています。これで ドメイン/RegistrationErroにアクセスすると、localhost:3308に接続するようにしています。
<Location "/RegistrationError"> ProxyPass http://localhost:3308 ProxyPassReverse http://localhost:3308 </Location>
mysqlに接続する部分は下記のように、ありきたりですが、書いています。
const connection = mysql.createConnection( { host: 'localhost', user: 'root', password: 'pass', database: 'express_test' });
考えられる理由
本番環境はamazonのlightsailに立てていて、ユーザーはbitnamiです。これが唯一考えられる原因です。しかし、expressのコードでは、しっかりrootユーザーで接続していますし、ssh接続したターミナル上では、mysql -u root -p
で接続ができます。
$ whoami bitnami
あなたの回答
tips
プレビュー