#1044 Access denied for user 'ユーザ名'@'ホスト名' to database 'データベース名' #1044 - ユーザー'ユーザ名'@'ホスト名' によるデータベース 'データベース名' へのアクセスは拒否されました。
wprdpressを運用しているサーバーを移転させる必要があったので、旧サーバーからデータベースをエクスポートしてsplファイルとしてローカルに保存した後に、新しいレンタルサーバーに元から入っているphpmyadminにインポートしようとしたら上のようなエラーが出ました。
原因はレンタルサーバー(お名前.comサーバー)の管理画面で作成できるmysqlのユーザーにグローバルレベルの権限がなく、管理画面から既存のデータベースごとにユーザーに編集権を与える必要があるために、インポートによって新しいデータベースを作成することができないからでした。
解決策 同名のデータベースをあらかじめ作成して上書きする
で、どうやって解決できたかというと、レンタルサーバーの管理画面から空のデータベースを作成し、編集権を与えておきます。
次にインポートするローカルのデータベースを編集して、データベース名をさっき作成したからのデータベース名に変更します。
あと、
CREATE DATABASE tips_db DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
のところを消します
見にくいですが、上の画面のUSE~のところを編集してください。コメントアウトされてるDatabaseのところは編集しなくて大丈夫(だと思います)。
そのあとに普通にインポートすることで、ユーザーが編集権を持つ空のデータベースにインポートしたデータが上書きされるのでグローバルレベルの権限がなくてもデータベースをインポートできます。ちなみに、サーバー側のデータベースに既にデータが入っているとエラーが出ます。
たぶんですが、今借りているお名前.comのレンタルサーバーもSSHで入れば普通にグローバル権限持ったアカウントを作成することができると思います。ただ、めんどくさいですし、SQLの操作なんていちいち覚えてないですよね。
それか、自前でphpmyadminをインストールさせるのもアリだと思いますが、結局SSHで操作する羽目になりそうなんでやめておきました。
それでは。