Bri*_*n G 68 mysql mysql-error-1045
使用此命令
GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';
Run Code Online (Sandbox Code Playgroud)
我尝试登录:
mysql -u brian -ppassword
Run Code Online (Sandbox Code Playgroud)
错误是:
ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
我是以root身份执行此操作,但我尝试刷新权限.
我和无数用户一起尝试了这个但它似乎没有用.我可以创建一个没有密码和登录工作的用户.命令行和phpmyadmin
还要检查用户是否在mysql.user中.
显示布莱恩表演的补助金:
| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
Run Code Online (Sandbox Code Playgroud)
cha*_*aos 178
你可能有这个永久的MySQL问题,其中用户表中的一个默认用户是'' @ localhost,这localhost最终会在表中拒绝所有用户.我会做的是mysqldump对mysql数据库,并期待在此项目User表; 如果找到,删除它并刷新权限.
有关更多详细信息,请参阅https://dev.mysql.com/doc/refman/5.5/en/connection-access.html.
认为对于给定的用户名,当服务器尝试查找连接匹配时,首先使用显式命名该用户的所有行,这是一种常见的误解.这不是真的.上面的示例说明了这一点,其中来自h1.example.net的jeffrey连接首先不是由包含'jeffrey'作为User列值的行匹配,而是由没有用户名的行匹配.因此,jeffrey被认证为匿名用户,即使他在连接时指定了用户名.
小智 43
这是匿名用户造成的问题.一旦我安装MySQL,我总是运行
shell> mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
并选择设置/更改root密码,删除匿名用户,禁止远程root登录,删除测试数据库.这将删除匿名用户并保护您的安装.它也应该解决你的问题.
zin*_*ing 21
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
cor*_*opy 10
这里提供的解决方案都没有奏效.经过大量的错误和试验,我意识到密码中有特殊字符.更改密码没有特殊字符解决了这个问题
mysql 文档有这样的说法:(来自http://dev.mysql.com/doc/refman/5.1/en/adding-users.html):
其中两个帐户的用户名是
monty,密码是some_pass。这两个帐户都是具有执行任何操作的完全权限的超级用户帐户。该'monty'@'localhost'帐户只能在从本地主机连接时使用。该'monty'@'%'帐户'%'对主机部分使用通配符,因此它可用于从任何主机进行连接。必须同时拥有两个帐户
monty才能从任何地方作为monty. 如果没有 localhost 帐户,mysql_install_db当 monty 从本地主机连接时,由 localhost 创建的匿名用户帐户将优先。因此,monty将被视为匿名用户。这样做的原因是匿名用户帐户具有Host比'monty'@'%'帐户更具体的列值,因此在用户表排序顺序中更早。
考虑到这一点,我建议您创建一个'brian'@'localhost'具有相同权限的用户。
小智 5
最后这对我有用:
MariaDB [(none)]> drop user ''@'localhost';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)