- PR -

localhostでMySQLに接続できない・・・

1
投稿者投稿内容
ちひろ
会議室デビュー日: 2005/06/07
投稿数: 4
投稿日時: 2005-06-09 12:31
ある問題でぶつかっています。サーバ環境を作っている最中なんですが、
localhostとMySQLに接続できないようなのです。このサーバに自分自身がMySQLを入れたのならある程度わかるのですが、既に入っており、それを使わなければならない状況なのです。
しかし、このMySQLがおかしいのです。OSはLinux Redhat9で、ターミナルで
root]#rpm -q mysql と打てば、mysql-3.23.54a-11と返事が返ってきます。
しかし、MySQLを起動させ、root]# mysqladmin -u root -p versionと打てば、

mysqladmin Ver 8.41 Distrib 4.1.7, for pc-linux on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version 4.1.7-log
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 1 day 20 hours 24 min 48 sec

Threads: 1 Questions: 466 Slow queries: 0 Opens: 52 Flush tables: 1 Open tables: 1

Queries per second avg: 0.003
と返ってきます。バージョンがおかしい。古いのか、新しいのか。おそらく、誰かがアップデートしたのでしょうか。

ターミナルでroot]#telnet localhost 3306と打ってみれば、
以下のようなエラーが返ってきます。
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
T・#HY000Host 'localhost.localdomain' is not allowed to connect to this MySQL

serverConnection closed by foreign host.

このサーバで localhost および localhost.localdomain という名前で自分自身にアクセスはできますが、
どうやら根本的にMySQLとlocalhostが接続できていないようです。
ターミナルでroot]#/usr/local/bin/mysqld_safe--user=mysql &を打ち、MySQLを起動させる事はでき、root]#mysql -u root -p で接続し、mysql->コマンドでデータベースを作ったりする事もできているんですが。どうやら、エラー内容からlocalhostの権限がないということがわかりました。
ここで質問なんですが、僕はまだ未熟者で権限の事はよくわかりません。本を
見たりして勉強はしているんですが、上記エラーを解決することがなかなかできません。

どうやったら、localhostでMySQLに接続することを許可させることができるんでしょうか。
アドバイスよろしくお願いしますm(_ _)m
env
会議室デビュー日: 2005/06/14
投稿数: 9
投稿日時: 2005-06-14 11:45
時間がたっていますので、解決されているかもしれませんが・・・。

MySQLのmysqlデータベースのuserテーブル、接続したいuserのhostフィールド
にlocalhostが指定されていますでしょうか?
このhostフィールドに指定されているhostからしか接続できなかったと思い
ます。
ちひろ
会議室デビュー日: 2005/06/07
投稿数: 4
投稿日時: 2005-06-17 15:19
返信ありがとうございます。いえ、情けないのですが、まだ解決していません。

初めにデータベースアクセス用の新規ユーザを設定するため、以下のコマンドを入力しました。
mysql> GRANT all privileges ON dbs.*
> TO expert@localhost IDENTIFIED BY 'expert';

そして確認のため、
root#] -u expert -p
Enter password:******

と打てばMySQLとの対話型インタフェースに接続できます。

そして、使用するDBやそのテーブルについて詳しく権限を見たいと思い、以下のようなコマンドを入力しました。


mysql> show grants for expert@localhost;
+--------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for expert@localhost
|
+--------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'expert'@'localhost' IDENTIFIED BY PASSWORD '英数字の羅列群'WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `dbs`.* TO 'expert'@'localhost'
|
| GRANT ALL PRIVILEGES ON `dbs`.`kadai_list` TO 'expert'@'localhost' WITH
GRANT OPTION |
| GRANT ALL PRIVILEGES ON `dbs`.`meibo_list` TO 'expert'@'localhost' WITH
GRANT OPTION |
| GRANT ALL PRIVILEGES ON `dbs`.`kojin_list` TO 'expert'@'localhost' WITH
GRANT OPTION |
| GRANT ALL PRIVILEGES ON `dbs`.`softlist` TO 'expert'@'localhost' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------------------+
6 rows in set (0.00 sec)

と返ってきます。これを見る限り、各テーブルへのlocalhostからの権限があるように
思えるのですが・・。envさんのアドバイスの返事になっていなかったらすいません。
1

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