こんにちは。サーバーはレンタルサーバーでSSHでログインしています。
mysqlでAデータベースに足してALL権限をもったユーザーuserを作りました。
しかしこのユーザーでmysqlにログインをしようとすると
ERROR 1045: Access denied for user: 'user@localhost' (Using password: YES)
と出てログインできません。
ユーザー名とパスワードはワードパットに先に記載してそれを見て何度も見直してユーザーを作成したので、間違えてはいないと思います。
前に違うユーザーを作ったときもログインできなかたのですが、これはやっぱりユーザー名かパスワードが間違えているのでしょうか???
後、ついでで申し訳ないのですが、エクセルのファイルをタグ形式のテキストで書き出してmysqlにインポートしたのですが、sshでmysqlでSELECTするとちゃんと表示されるのですが、PHPからmysqlにSELECTすると日本語が文字化けをしてしまいます・・・。
何が原因なのかわからないおですが、何か考えられる原因はありますか?
すみませんが、ご教授をよろしくお願いします。
No.5ベストアンサー
- 回答日時:
自分のところで
$sql = "LOAD DATA LOCAL INFILE "ファイル" INTO TABLE テーブル名";
$rs = mysql_db_query($db,$sql);
をやってみましたが、できませんでした^^;
で、調査してみました。
どうもこれといった情報はなかったのですが、怪しい情報をいくつか。
1、ユーザをgrant するときに File_priv 権限をつけているか?
これをつけないとダメらしい。
2、to use load data local infile function from mysql (at mysql 4.0.16, php 4.3.3), set fifth parameter of mysql_connect() to CLIENT_LOCAL_FILES(128), which based on MYSQL C API ( also mysql server support load file, check by "show variables like 'local_infile' ")
mysql_connect()の第5のパラメーターをセットするらしい。
http://66.102.7.104/search?q=cache:XmZRRsX3RNUJ: …
ただし、
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
パラメータclient_flagsはPHP 4.3.0で利用可能 となりました。
とあり、PHP4.3.0以下ではできないらしい
# でも私のPHPは4.3.3なのですが・・・
と、とりあえずここまで。
結局よくわかりませんでした。。
わざわざ調べていただいてありがとうございます。
私も調べてみたのですが、結局これ!!といったものはなく、わかりませんでした・・・。諦めずにもう少し探してみようかと思います。
ところでmysqlでユーザーを作った時にあるデータベースに対して権限をALLにして作成したらFile_priv 権限はそのデータベースに対してついていますよね???
昨日PHPからの実行でもSSHでmysqlにログインしての実行でもできたのですが、何故か今日、何もスクリプトを触らずにデータをアップしなおしたら両方ともダメになってしまいました・・・。PHPからはrootでログインしてもダメなんですが、こんなのってありなんですか???
No.4
- 回答日時:
PHPはSQLにsql文を投げるだけなので、
SQLにsql文を投げてやればあとはSQLの方で処理するはずです。
$sql = "select * from xxx";
$rs = mysql_db_query($db,$sql);
といったようにやっているはずなので、投げるSQL文をそのまま
$sql = "LOAD DATA LOCAL INFILE "ファイル" INTO TABLE テーブル名";
$rs = mysql_db_query($db,$sql);
というようにやればできるのではないでしょうか?
(動作未確認ですが。)
何度もご回答ありがとうございます。
データをサーバーにアップしての
LOAD DATA INFILE
はできました。
しかし
LOAD DATA LOCAL INFILE ではできません・・・
SQL文を
$sql = "LOAD DATA LOCAL INFILE \"c:\\ファイル名\" INTO TABLE テーブル名";
をしていますが、何か問題はありますか?
No.3
- 回答日時:
grant でユーザーを作成したときのコマンドと
ログインする時のコマンドを記述していただければ適切なアドバイスができるかもしれません。
また、mysqlテーブルが見えるのでしたら、
db と user を見れば登録されているか分かります。
文字化けはPHPとMysqlの文字コードの違いだと思います。
my.iniとphp.iniの文字コードを統一させれば文字化けは解消されると思います。
ご回答ありがとうございます。
ログインの方はユーザー名に'_'を入れないで作成するとログインできません。ユーザー名に_や-は使えないんですね。知りませんでした・・・。
文字化けについてはインポートするファイルをEUCで保存したらできました。
質問が続いて申し訳ないのですが、このインポートの作業をPHPからすることってできますか?
例えば必ず特定の場所に指定した名前でアップして貰ってそれをPHPでインポートするなんてことは可能なんでしょうか?
MySQLのデータをインポートするときに全て書き換えたいんです。さすがに一度の動作では無理でしょうがテーブルはそのままでテーブルの中身を全て削除するなんてことはできますか?
何度もすみませんが、よろしくお願いします。
No.2
- 回答日時:
ファイルの文字コードが違っている場合。
・mysqlにインポートする際に指定ができるのならEUCで取り込む
・インポートするファイルをEUCで保存しておく
php.iniの設定が問題の場合ですが、以下のページを参考にして見てください。
参考URL:http://tsuttayo.sytes.net/php/char_trn/
何度もご回答ありがとうございます。
インポートするファイルをEUCで保存したらできました。
質問が続いて申し訳ないのですが、このインポートの作業をPHPからすることってできますか?
例えば必ず特定の場所に指定した名前でアップして貰ってそれをPHPでインポートするなんてことは可能なんでしょうか?
MySQLのデータをインポートするときに全て書き換えたいんです。さすがに一度の動作では無理でしょうがテーブルはそのままでテーブルの中身を全て削除するなんてことはできますか?
何度もすみませんが、よろしくお願いします。
No.1
- 回答日時:
userテーブルにuserを追加するだけではなく、
dbテーブルに使用するテーブルとuserを追加して、mysqlをリロードすると指定したデータベースに対してアクセスできるようになります。
文字化けしてしまうのは、インポートした際のデータの文字コードとPHPで扱っている文字コードが違うためと思われます。
php.iniや.htaccessでPHPで扱う文字コードの指定ができるのでそれを変更すれば解消されると思います。
ご回答ありがとうございます。
userの作成はgrantコマンドで権限をALL データベースは今回使用するデータベースのみを指定して作成したのですが、それだけじゃ足りないのですか?
ユーザー名に"_"をつけないで作成したら接続することができました。_やーは使えないってことなんでしょうかな???
文字化けなのですが、PHPとmysqlはEUC-JPで指定しています。サーバーもLinuxはShift-jisみたいなのですが、そこらへんが原因なのでしょうか?でもSSHでmysqlにログインをするとちゃんと表示されるのですが・・・。それともエクセルからtextに書き出すときに設定できるのでしょうか?
何度もすみませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- UNIX・Linux Ubuntu on Xorgのログインについて 2 2023/08/10 15:16
- ノートパソコン パソコンのログインが出来ない 3 2023/04/14 20:48
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- デスクトップパソコン iMacのユーザー名を忘れログインできなくなってしまいました。 随分前に使用していた物で、久方ぶりに 1 2023/08/20 21:17
- その他(SNS・コミュニケーションサービス) ツイッターに詳しい方【困ってます】 1 2022/09/02 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpで複数のDBを使用した場合の...
-
複数行のクエリを、まとめて実...
-
PHPでMySQLテーブルロック一覧取得
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
MySQLカラム名は日本語と英数字...
-
VBAで変数内に保持された二次配...
-
Puttyでサーバー上のMySQLを操...
-
パスワード入力を省略したい
-
MySQLの型のサイズ指定で速度は...
-
like句を使って日本語を検索す...
-
ヌル値は記憶容量を必要としな...
-
ログイン履歴について
-
SQL開発環境ソフトウェアである...
-
MySQLからのデータをページに1...
-
mysqlコマンドでSQL文が実行で...
-
テーブル作成でエラーが出てき...
-
SQL whereの中のif文について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpで複数のDBを使用した場合の...
-
複数行のクエリを、まとめて実...
-
show databasesコマンドが効かない
-
PHPでMySQLテーブルロック一覧取得
-
複数条件検索のWHERE句の使い方...
-
データベースの選択エラー
-
AUTO_INCREMENT の値をINSERT前...
-
PHP+MySQL on さくらサーバー
-
MySQLのテーブルのデータ数のカ...
-
mysqlのデータをperlで読み込ん...
-
mysqlのスマートな書き方
-
phpとmysqlが連携できない
-
C言語で変数の内容をINSERTする...
-
Warning: mysql_num_rows()
-
テーブルのデータをarray (arra...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
ODP.NETのバージョン確認
-
旧filemakerで和暦(令和など)...
-
ERROR 1045 (28000) (using pas...
おすすめ情報