Apesar de serem todos denominados 'root', o MySQL considera cada uma dessas entradas do usuário como uma conta única. A conta é baseada na combinação 'usuário' @ 'host'. Cada um deles pode ter uma senha separada, embora isso possa facilmente ser um pesadelo no gerenciamento de contas.
Você tem várias maneiras de alterar as senhas das contas e, dependendo de como você faz isso, pode ser necessário repeti-las para cada conta, para mantê-las sincronizadas.
A primeira maneira (provavelmente a que a maioria das pessoas está familiarizada) está usando SET PASSWORD
shell> mysql -u root -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
Se você quiser atualizá-los todos de uma só vez, use UPDATE
shell> mysql -u root -p
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
A terceira maneira de usar a ferramenta mysqladmin
shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
Se você usar esse método, precisará anotar:
The
mysqladmin
method of setting theroot
account passwords does not work for the'root'@'127.0.0.1'
or'root'@'::1'
account. Use theSET PASSWORD
method shown earlier.
Mais informações no site do MySQL
Concordo com a sua ideia de usar uma conta separada para suas tarefas do dia a dia. Você só precisará encontrar a combinação certa de permissões que funcionará com o que deseja, sem ficar muito pesada.
Eu também dou uma olhada nos logs do seu servidor periodicamente (ou tenho uma ferramenta no local) para monitorar os logins do banco de dados, como os do root.
Há muito mais que você pode fazer para proteger sua instalação, mas isso pode facilmente crescer além do escopo disso.