!!!MySQLでのユーザを追加(Linux) RedHat9上にてMySQLの一般ユーザ情報を追加する場合、mysqladminを使うとなぜかうまくいかなかったため、 直接データベース上のユーザレコードに追加を行うようにしました。 ユーザ情報は、MySQL内のデータベース「mysql」内の「user」テーブルに含まれています。 mysqlのコマンドラインモードで以下のように指定します。 insert into user set host='localhost.my.domain', user='yoshi',password=Password('hoehoe'), Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', Create_priv='Y'; この例では、ユーザ名「yoshi」/パスワード「hoehoe」のユーザを追加しています。 その際に、SQL文のselect/insert/update/delete/create(create table)の権限を与えています。権限を与えたくない場合は、'N'を指定します。 どのようなパラメータがその他にあるか、というのは「show fields from user;」にて確認してみてください。 これは、mysqladminにてユーザを追加しても、MySQL自身がユーザ情報を検出するときに「/etc/hosts」の2番目の情報を取得してしまうためにユーザ認識に失敗してしまう、と思われます。 userテーブルに直接ユーザ情報を入れる際に、ホスト名(項目名がhost)を「localhost.my.domain」とすると、RedHat9上のMySQLでは「localhost」と認識するため、正常にユーザ認識が行われるようです。 なお、ユーザ追加後は、mysqlのコマンドラインモードからexitで抜けた後に、 mysqladmin -u root reload にて、設定を再度読み込む(認識させる)ようにしてください。 !!MySQLコマンドラインでのコマンドによるユーザ追加(Windows/Linux) 普通にユーザを追加したい場合は、MySQLのコマンドラインで以下のように 指定することでユーザ追加を行うことができます(DBへの直接追加は最終手段)。 grant all on *.* to yoshi@localhost identified by 'hoehope'; これはサーバ「localhost」にユーザ名/パスワード「yoshi/hoehoe」で追加 しています。「grant all」なのですべてのアクセス権限を与えてます。 !!MySQL 4.1でのパスワードについて(Windows/Linux) MySQL 4.0から4.1の移行にかけて、どうもMySQLデータベース上のパスワードのハッシュが変更されたとのことで、たとえばPHP4.3でMySQL(4.1)のデータベースを作成する場合にうまいことコネクションができない、という現象が発生してました。 このような場合は、パスワードの方式を古い形式にコンバートすることで解決する糸口となります。 MySQLのコマンドラインで以下のように指定します。 set password for yoshi@localhost=OLD_PASSWORD("hoehoe"); この場合は、サーバ「localhost」のユーザID「yoshi」のパスワードを「hoehoe」にしてます。