Tag: MySQL/管理
mysqladminコマンドを使って設定する方法。
mysqladmin -u root password <new_password>
mysqlテーブルを操作してパスワードを設定する方法。
$ mysql -u root -p; mysql> use mysql; mysql> set password for root@localhost=password('任意のpasswd');
$ mysql -u root -p mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@localhost IDENTIFIED BY 'パスワード'
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名@'%' IDENTIFIED BY 'パスワード'
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード'
$ mysql -uroot -p mysql> use mysql; mysql> select * from user;
Access denied の原因がわからない場合は、user テーブルから Host 値にワイルドカードが含まれているエントリ(‘%’ または ‘_’ を含むエントリ)をすべて削除する。 よくある間違いは、Host='%' および User='some user' の新規エントリを挿入し、これで、同一マシンから接続する際には localhost を指定できると考えていることである。これがうまくいかない理由は、デフォルト権限として、Host='localhost' および User='' のエントリが含まれているためである。Host 値が 'localhost' の場合、'%' よりも具体的なため、localhost からの接続時に新しいエントリよりもデフォルト権限が優先される。正しい指定の方法は、Host='localhost' および User='some_user' の 2 つ目のエントリを挿入するか、Host='localhost' および User='' のエントリを削除することである。