首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拒绝用户“root”@“localhost”的MYSQL访问

问拒绝用户“root”@“localhost”的MYSQL访问
EN

Stack Overflow用户
提问于 2013-08-20 06:15:45
回答 3查看 31.7K关注 0票数 12

我执行了以下步骤在Ubuntu中使用MySQL:

代码语言:javascript
复制
sudo aptitude install php5-mysql mysql-server
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root mysql

更改根密码:

代码语言:javascript
复制
mysql> UPDATE mysql.user SET Password=PASSWORD('SecurePassword') WHERE
User='root';
mysql> FLUSH PRIVILEGES;
mysql> EXIT

修改/etc/mysql/my.cnf:

代码语言:javascript
复制
[client]
user=root
password=SecurePassword
[mysqld]
...
default-time-zone = '+0:00'

然后:

代码语言:javascript
复制
sudo service mysql start
mysql -u root
mysql> SHOW GRANTS FOR root@localhost
+--------------------------------------------------------------------------------------------------+
 | Grants for root@localhost | 
+--------------------------------------------------------------------------------------------------+
 | GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '[here is the Securepassword]' |
 +-------------------------------------------------------------------------------------------------+
 1 row in set (0.00 sec) 

mysql>
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'  WITH GRANT OPTION;

我收到一个错误:

拒绝用户'root'@'localhost‘的访问(使用密码: YES)

EN

回答 3

Stack Overflow用户

发布于 2013-11-27 09:18:13

你所做的是完全正确的,但我想这并不是因为一个小小的原因。

当您打算授予这样的特权时,您应该使用identified by password:

代码语言:javascript
复制
mysql> GRANT ALL PRIVILEGES ONE `*`.`*` TO 'root'@'localhost' IDENTIFIED BY PASSWORD
'*A4B6157319038724E3560894F7F932C8886EBFCF' WITH GRANT OPTION;
票数 2
EN

Stack Overflow用户

发布于 2014-12-18 06:14:44

如果您收到这样的错误消息::

代码语言:javascript
复制
Warning: mysql_connect(): Access denied for user: ....

那么问题是您的应用程序不能access the database。这可能有几个原因:

首先,确保db-config.php (应用程序的连接文件)中的数据库设置是正确的,特别是MySQL用户的name和password、database的名称和MySQL服务器的名称。

如果您正在运行您自己的服务器,您可能需要给您的MySQL用户适当的权限。以MySQL根用户身份登录到MySQL,并发出以下命令:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON database_name TO user@host IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
票数 0
EN

Stack Overflow用户

发布于 2019-06-08 17:44:42

像Ubuntu这样的系统在默认情况下更喜欢为根帐户使用auth_socket插件。它将尝试通过比较数据库中的用户名和发出mysql请求的进程进行身份验证;它是用这里描述的。

套接字插件检查套接字用户名(操作系统用户名)是否与客户端程序指定的MySQL用户名匹配到服务器,并且只有在名称匹配时才允许连接。

相反,您可能需要使用mysql_native_password,,这将需要用户/密码进行身份验证。

关于实现这一目标的方法,我建议您选择签出这。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18328153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档