我在FreeBSD上使用MySQL 5.5,并且一切都可以运行,并且已经有一段时间了。 唯一的问题是,除root以外的任何数据库用户都不能正确进行身份validation。
mysql Ver 14.14 Distrib 5.5.7-rc, for portbld-freebsd7.2 (i386) using 5.2
我添加用户的主要方法是使用phpMyAdmin。 我也尝试使用命令行。 无论哪种方式,用户创build就好,但如果我尝试mysql -u someuser -ppassword,即使我指定一个他们有权访问的数据库(包括GRANT偶),它也会失败。
因此,我一直在使用rootlogin,这显然是一个很大的安全漏洞。
编辑:我没有运气多次冲刷特权。 下面是显示授权的输出,我在这里将真正的用户/ dbname对改为“someuser”。
Grants for someuser@%: GRANT USAGE ON *.* TO 'someuser'@'%' GRANT ALL PRIVILEGES ON `someuser`.* TO 'someuser'@'%' WITH GRANT OPTION
你需要做三件事才能正常运行
为%和localhost添加用户,这是非常重要的
GRANT ALL PRIVILEGES ON somedatabase.* to someuser@'%' identified by 'password';
GRANT ALL PRIVILEGES ON somedatabase.* to someuser@localhost identified by 'password';
一旦你完成了,不要忘了FLUSH权限
FLUSH PRIVILEGES;
另外请记住,权限是附加的,没有理由给予USAGE,如果以后给ALL,并且除非确定必要,否则实际上不想给GRANT选项。
检查用户是否被添加到mysql-user表中。 如果是,请尝试将其作为mysql-root-user运行。
flush privileges;
我们正在关注本地用户吗? 你有东西添加到主机领域? 如果您尝试从与mysqlserver相同的机器连接,我应该是'localhost'。
你在〜/ .my.cnf中有默认的用户/密码设置吗?