散々はまりましたが、順を追って整理するとこの手続きになりました。
ユーザー作成
mysqld_safeを起動した後、ユーザーを作ります。
ユーザー名:test、パスワードabcにします。
$mysql -u root
mysql> grant all privileges on *.* to test@localhost identified by 'abc'
このユーザーを使ってmysqlを使うときは、
$mysql -u test -pabc
または
$mysql -u test -p
Enter password:
でパスワード入力します。
Enter password:
でパスワード入力します。
ちなみに-pとabcの間にスペースが入るとabcはdatabaseと見なされます。
$ mysql -u test -p abc
Enter password:
ERROR 1049 (42000): Unknown database 'abc'
また、grant で権限を与える時、ユーザー名がtestだからと
mysql> grant all privileges on *.* to test identified by 'abc'
のように@localhostを書かずに済ますと、
$ mysql -u test -pabc
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)
というエラーが出ます。
rootのパスワード設定
rootのパスワードの設定方法は2つあって、
$mysqladmin -u root password PASSWORD
もしくは、mysqlのプロンプトで
mysql>set password for root@localhost=PASSWORD('パスワード');
です。
とてもわかりやすくて助かりました。
ユーザーの削除
ユーザーはmysqlデータベースのuserテーブルで管理されているので、削除する時は
mysql> use mysql;
mysql> delete from user where user='test'
のように普通に行を削除します。