- PR -

MySQL接続時にエラーが出てしまいます。

投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-03-15 16:34
msoです。

初めてのMySQLで苦しんでいるのでしょうが、
冷静になって英語を読めばきっと解決することが
出来ますよ。

引用:

ERROR 1046 (3D000): No database selected



単純に和訳すると
 Databaseが選択されていない
ってことになりませんか?
モモ
会議室デビュー日: 2005/03/15
投稿数: 6
投稿日時: 2005-03-15 17:29
引用:

NAOさんの書き込み (2005-03-15 16:24) より:
なんか最初に戻ってる気がするんですが…
まず問題点を切り分けましょう。

引用:

DOSプロンプトから、
mysqlbinsql -u root -p で、
プロンプトが、mysql> になれば大丈夫ってことでしょうか?


って事はMySQLには接続出来るって事ですよね?
で接続出来た時点で

引用:

mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'sime_user';


をやると

引用:

1251 Client does not support authentication protocol requested by server; consideer upgrading MySQL client
に対する、対応策。
ERROR 1046 (3D000): No database selected
に対する対応策はどのようにすればよいのでしょうか?


となるって事ですよね?
他のコマンドも全く効かないんですか?

引用:

http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01.html


を見て頂くと解るかと思いますが、一通り動作する事を確認しましたか?
少なくともMySQLに限らず、ログインしたユーザがデフォルトで何のDBを
使うのか指定がなされていなければ、

引用:

ERROR 1046 (3D000): No database selected


は当然表示される結果だと思います。

ですから一度上の連載や、インストールする際に使用した本を読み返してみて下さい。


自分では手順通りにやったと思っても意図する結果が得られていなければ何かしら
見落としている可能性が高いです。 



何度もすみません。

mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'sime_user';
をやると
ERROR 1046 (3D000): No database selected
となります。
サーバーに認証を通すためにやっているところで、
データベースが選択されていないというエラーが出るということは、
データーベースを作成してからでないと意味がないと言うことでしょうか?

上のアドレスにある、サイトを読んでいくと第2回目の「mysqlコマンドの基本操作」のところで、
mysql> show tables;
とすると、やはりERROR 1046 (3D000): No database selected
となります。また、振り出しに戻ってしまうといった感じです。
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-03-15 17:38
引用:

モモさんの書き込み (2005-03-15 17:29) より:
引用:

NAOさんの書き込み (2005-03-15 16:24) より:
なんか最初に戻ってる気がするんですが…
まず問題点を切り分けましょう。

引用:

DOSプロンプトから、
mysqlbinsql -u root -p で、
プロンプトが、mysql> になれば大丈夫ってことでしょうか?


って事はMySQLには接続出来るって事ですよね?
で接続出来た時点で

引用:

mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'sime_user';


をやると

引用:

1251 Client does not support authentication protocol requested by server; consideer upgrading MySQL client
に対する、対応策。
ERROR 1046 (3D000): No database selected
に対する対応策はどのようにすればよいのでしょうか?


となるって事ですよね?
他のコマンドも全く効かないんですか?

引用:

http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01.html


を見て頂くと解るかと思いますが、一通り動作する事を確認しましたか?
少なくともMySQLに限らず、ログインしたユーザがデフォルトで何のDBを
使うのか指定がなされていなければ、

引用:

ERROR 1046 (3D000): No database selected


は当然表示される結果だと思います。

ですから一度上の連載や、インストールする際に使用した本を読み返してみて下さい。


自分では手順通りにやったと思っても意図する結果が得られていなければ何かしら
見落としている可能性が高いです。 



何度もすみません。

mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'sime_user';
をやると
ERROR 1046 (3D000): No database selected
となります。
サーバーに認証を通すためにやっているところで、
データベースが選択されていないというエラーが出るということは、
データーベースを作成してからでないと意味がないと言うことでしょうか?

上のアドレスにある、サイトを読んでいくと第2回目の「mysqlコマンドの基本操作」のところで、
mysql> show tables;
とすると、やはりERROR 1046 (3D000): No database selected
となります。また、振り出しに戻ってしまうといった感じです。


ですから要するに「root」でログインしてるけどデータベースが無いから
コマンドも効かないって事ですよね?
→参考にした本のどこかに「データベース作って」とか書いてませんか?
引用:

MySQLのリファレンスマニュアルなどを見て、


見られている様ですからそのリファレンスを最初から確認していって見て下さい。
_________________
Inspired Ambitious
ISMS Assistant Auditor
あら
常連さん
会議室デビュー日: 2004/03/27
投稿数: 24
投稿日時: 2005-03-15 17:46
こんにちは。

単純にデータベースを選択していないと読めるのですが...
use mysql;
とかが必要かと

show databases;
で、とりあえず使いたいデータベースが存在するかを
確認してみるのはどうでしょう?




[ メッセージ編集済み 編集者: あら 編集日時 2005-03-15 17:47 ]
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-03-15 18:00
http://www.softagency.co.jp/mysql/Manual/4.1.1/html-split/manual_2.html#SEC78
から抜粋
〜中略〜
2.1.1.8 Windows での MySQL の実行
〜中略〜
以下のいずれかのコマンドを実行して、MySQL サーバが動作しているかどうかをテストすることができます。

C:\> C:\mysql\bin\mysqlshow
C:\> C:\mysql\bin\mysqlshow -u root mysql
C:\> C:\mysql\bin\mysqladmin version status proc
C:\> C:\mysql\bin\mysql test
〜中略〜
Windows のデフォルトの権限の設定では、ローカルユーザーは、パスワードなしで全データベースに対して全ての操作が行えるようになっています。MySQL をより安全にするために、すべてのユーザにパスワードを設定し、Host='localhost' と User=" が記述された mysql.user テーブルのレコードを削除してください。

また、root ユーザのパスワードも追加してください。以下の例では、まず全権限を持つ匿名ユーザを削除し、次に root ユーザパスワードを設定します。

C:\> C:\mysql\bin\mysql mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> FLUSH PRIVILEGES;
mysql> QUIT
C:\> C:\mysql\bin\mysqladmin -u root password your_password

パスワードを設定した後で mysqld サーバをシャットダウンする場合は、このコマンドを使用してシャットダウンすることができます。

C:\> mysqladmin --user=root --password=your_password shutdown
〜後略〜
_________________
Inspired Ambitious
ISMS Assistant Auditor
モモ
会議室デビュー日: 2005/03/15
投稿数: 6
投稿日時: 2005-03-16 17:30
引用:

あらさんの書き込み (2005-03-15 17:46) より:
こんにちは。

単純にデータベースを選択していないと読めるのですが...
use mysql;
とかが必要かと

show databases;
で、とりあえず使いたいデータベースが存在するかを
確認してみるのはどうでしょう?



ありがとうございます。
show database;を試してみたところ、
使用したいデータベースはありました。
データベースを選択するには、どうしたらいいのでしょうか?
あら
常連さん
会議室デビュー日: 2004/03/27
投稿数: 24
投稿日時: 2005-03-16 18:18
そこでuseですよ!

最初の書き込みで、userテーブルに対してupdateしようと
しているので、それをしたいなら、mysqlデータベースを
選択しましょう。

use mysql;

それからupdate文をどうぞ

[ メッセージ編集済み 編集者: あら 編集日時 2005-03-16 18:18 ]
未記入
会議室デビュー日: 2005/05/15
投稿数: 1
投稿日時: 2005-05-15 22:41
client does not support authentication protocol

Client does not support authentication protocol requested by server; consider upgrading MySQL client

パスワードのハッシュが、セキュリティを高めるために16バイト長から41バイト長に変更されたため。

参考にどうぞ。
http://movabletype.wablog.com/22.html

スキルアップ/キャリアアップ(JOB@IT)