我只是按照这里的说明设置mysql:
http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/
我尝试使用mysqladmin命令设置root密码。其结果是,现在我可以使用新密码或没有密码登录mysql。我认为这是因为一个根用户( root @localhost)没有密码,而另一个根用户拥有新的密码。
我应该在这里删除任何根用户吗?我不明白为什么本地主机和macbook-pro.local都存在两个根用户。
+------+-------------------+
| User | Host |
+------+-------------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | macbook-pro.local |
| root | macbook-pro.local |
+------+-------------------+因此,通过添加密码字段,我得到了另一个表示:
mysql> select User,Host,password from mysql.user;
+------+-------------------+-------------------------------------------+
| User | Host | password |
+------+-------------------+-------------------------------------------+
| root | localhost | *xxx |
| root | macbook-pro.local | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | macbook-pro.local | |
+------+-------------------+-------------------------------------------+所以这让我明白,有些用户的字符串是空的,我想根本就没有重复。但是,如何才能不让用户只使用mysql -u root登录呢?
发布于 2014-10-24 03:18:48
为所有root用户设置密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('cleartext password');
SET PASSWORD FOR 'root'@'macbook-pro.local' = PASSWORD('cleartext password');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('cleartext password');
SET PASSWORD FOR 'root'@'::1' = PASSWORD('cleartext password');如果不希望any用户可以在没有用户名和密码的情况下登录到mysql,请将any用户从列表中删除:
DROP USER ''@'localhost';
DROP USER ''@'macbook-pro.local';注意,'' (空白)用户是any用户。如果您不为它们设置密码,任何用户(人、机器)都可以使用any (意思是任何东西、任何单词、任何短语)登录到mysql中,而不需要密码。但是,这里的两个空白用户是mysql在安装mysql服务时使用的,而且它没有授予访问权限。如果您已经安装了mysql服务,则可以安全地丢弃它们。
https://stackoverflow.com/questions/26540677
复制相似问题