こんにちは、yoku0825といいます。
--skip-grant-tables で起動した状態で、mysql.userテーブルにINSERTをかけます。
mysql> SHOW CREATE TABLE mysql.user\G
*************************** 1. row ***************************
Table: user
Create Table: CREATE TABLE `user` (
`Host` char(60) collate utf8_bin NOT NULL default '',
`User` char(16) collate utf8_bin NOT NULL default '',
`Password` char(41) character set latin1 collate latin1_bin NOT NULL default '',
`Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
..
`max_connections` int(11) unsigned NOT NULL default '0',
`max_user_connections` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
1 row in set (0.01 sec)
* カラム名を調べます。
mysql> INSERT INTO mysql.user SET
-> Host= 'localhost',
-> User= 'yoku0825',
-> Password= PASSWORD('s3cret'),
-> Select_priv= 'Y',
-> Insert_priv= 'Y',
..
-> ssl_type= '',
-> ssl_cipher= '',
-> x509_issuer= '',
-> x509_subject= '',
-> max_questions= 0,
-> max_updates= 0,
-> max_user_connections= 0
-> ;
Query OK, 1 row affected (0.00 sec)
* INSERT INTO .. SET構文を使っていますが、VALUESでも構いません。
* なんちゃら_privのカラムを全て'Y'のユーザーを作ります。
* passwordはPASSWORD関数を通す必要があります。
この後、--skip-grant-tablesを外して再起動すると、追加したユーザーが使えるようになります。
(↑の例であればyoku0825@localhostでパスワードがs3cret)
yoku0825,