自宅サーバー(PHP4.3.9+mySQL4.1+Windows2000)で構築を試みています。
PHPからmySQLに接続するのに次のようなソースを試してみました。
<?php
$mysql=mysql_connect("localhost","user","password");
if(mysql_select_db("dbname", $mysql)){
print "OK";
}else{
print "NG";
}
?>
次のようなエラーが返りました。
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\create.php on line
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\create.php on line
このエラーについていろいろ調べたのですが、mySQL4.1以降からパスワードのハッシュが変更になっており、PHPからアクセスできないという記事を見つけました。
解決方法としてmySQL起動時に「--old-passwords」オプションをつければよい、という記事だったのですが、
質問1:このエラーは果たしてパスワードの問題なのでしょうか。他に考えられる原因はないでしょうか。
質問2:Windowsの場合、mySQLはサービスとして起動しているのでオプションをどのようにつければいいのかわかりません。
質問3:PHPのバージョンが上がるにつれ、この問題は解決するのかもしれませんが、現段階でPHP側で解決する手段はないのでしょうか。
ちなみにコマンドラインから
c:\>c:\mysql\bin\mysqlshow
Access denied for 'ODBC'@'localhost'(using password:NO)
となります。
コマンドラインからはログインでき、テーブルなどの作成は済んでいます。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
MySQL 4.1で「ユーザ認証」の「認証方式」が変更されました。
従って、MySQL 4.0/3.2xクライアントからMySQL 4.1/5.0サーバへの接続ができなくなりました。回避策として調べたとおり「--old-passwords」オプションをつけてmysqldを起動することになります。
>質問1:~
間違いなく「ユーザ認証」の「認証方式」が異なっていることに起因する問題です。
>質問2:~
%SystemRoot%\my.cnfファイルに起動オプションを指定可能です。(下記参照)
>質問3:~
libmysql.dllとphpの問題ですね。アプリケーション側(php側)での対応も必要になります。
運が良ければ、mysql-4.1-win32に付属のlibmysql.dllと差し替えてみるだけで動くと思います。
参考URL:http://www.mysql.gr.jp/frame/modules/xoopsfaq/in …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- PHP PHP & MySQL: Server-side Web Development ペーパ 1 2022/04/19 19:23
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpAdminを導入したのですが。
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ERROR 1045 (28000) (using pas...
-
mysqlへのインポート処理がうま...
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
DB内の日本語データがPHPで取得...
-
INT型は金額の型に使用するべき...
-
参考書に従って入力したつもり...
-
Btrieveのコンバートしたいので...
-
mysql+php リストボックスにつ...
-
ポート3306へつながらず、MySQL...
-
プライマリーキーの昇順でソー...
-
MySQLの型のサイズ指定で速度は...
-
VBAで変数内に保持された二次配...
-
like句を使って日本語を検索す...
-
RPMのmysqlとmysql-serverの違い
-
MAX()でENUMの内部番号が最大の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
泣きそうです>< PHPでSQLite3が...
-
MySQLとPostgreSQLの位置づけは
-
PHPからmySQLに接続できない
-
MySQLとPHPの連携がうまくいかない
-
PHPでMySQLに接続失敗
-
phpでMySQLを効率的に使うこと...
-
phpAdminを導入したのですが。
-
エラーが返ってきます
-
phpmyadminから別ホストへの接...
-
mysqlにうまく接続できません
-
ソケットエラーについて(PHP+...
-
お世話になります。
-
PHPでのMySQL接続エラーについて
-
aaacafe(AAA!CAFE)でDBIがつか...
-
phpとmysqlの初心者の疑問
-
PHP+MySQLでCall to undefined ...
-
教えてgoo旧い質問から見る方法
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
おすすめ情報