質問: mysqlユーザーのホスト権限の変更 ユーザー/データベースに対して次の権限を持っていますmysql> show grants for 'username'@'localhost'; +---------------------------------------------------------------------------+ | grants for username@localhost | +---------------------------------------------------------------------------+ | grant usage on *.* to 'username'@'localhost' identified by password 'xxx' | | grant all privileges on `userdb`.* to 'username'@'localhost' | +---------------------------------------------------------------------------+ データベースへの外部アクセスを有効にするには、localhostを%に変更する必要があります。これを行う1つの方法は、すべての権限をrevokeに設定し、再度設定することです。問題は、わからないパスワードセットがあるため、権限を取り消すと元に戻せないことです。権限自体を取り消すことなく、ホスト名localhostを%に(そして再び)変更する方法はありますか?
回答: 単なるdb以外の特権(テーブルや列など)がある場合、多くのテーブルが欠落しています。ユーザーの権限に応じて、これらのすべてのテーブルまたは一部を更新する必要がある場合があります。update mysql.user set host='%' where host='localhost' and user='username'; update mysql.db set host='%' where host='localhost' and user='username'; update mysql.tables_priv set host='%' where host='localhost' and user='username'; update mysql.columns_priv set host='%' where host='localhost' and user='username'; update mysql.procs_priv set host='%' where host='localhost' and user='username'; update mysql.proxies_priv set host='%' where host='localhost' and user='username'; flush privileges;