今天安装openstack folsom版本,安装完mysql,为各个服务增加对应的数据库和用户后,发现 无法使用新增的用户登陆mysql。我增加用户的方法如下: mysql -uroot -p$MYSQL_PASS <<EOF CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’ IDENTIFIED BY ‘$MYSQL_PASS’; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘$ 在MySQL数据库管理中,添加新用户并授予相应的权限是常见的操作。然而,有时在创建用户后,可能会遇到用户无法登录的问题。这个问题通常涉及到权限设置或用户账户配置的细节。以下是一个具体的例子,以及如何解决此类问题的方法。 在安装OpenStack Folsom版本时,我们可能需要为每个服务创建独立的数据库和用户。比如,为了管理Nova、Glance、Keystone、Cinder和Quantum等服务,我们会执行以下SQL命令: ```sql CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE quantum; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'%' IDENTIFIED BY '$MYSQL_PASS'; FLUSH PRIVILEGES; ``` 这里,`GRANT ALL PRIVILEGES` 命令赋予了用户对指定数据库的所有权限,`'%'` 表示任何主机都可以访问这些用户,而 `IDENTIFIED BY` 后的 `$MYSQL_PASS` 是用户的密码。 然而,当尝试使用新创建的用户(如`keystone`)登录MySQL时,可能会收到类似以下错误的提示: ``` ERROR 1045 (28000): Access denied for user 'keystone'@'localhost' (using password: YES) ``` 这个错误意味着用户'keystone'没有权限从'localhost'登录,或者密码不正确。在这种情况下,问题可能出在匿名用户的存在上。MySQL默认会创建一个匿名用户,允许任何人在本地主机无需身份验证就能连接。为了解决这个问题,我们可以按照以下步骤操作: 1. 以root用户身份登录MySQL: ``` mysql -uroot -p ``` 2. 选择`mysql`数据库: ``` use mysql; ``` 3. 删除匿名用户: ``` DELETE FROM user WHERE User=''; ``` 4. 刷新权限,使改动生效: ``` FLUSH PRIVILEGES; ``` 完成以上步骤后,新创建的用户应该能够成功登录MySQL了。这主要是因为删除了匿名用户,使得每个用户必须提供有效的用户名和密码才能连接。 除了这个问题,其他可能导致登录失败的原因还包括:错误的用户名或密码、用户权限设置不正确、MySQL服务器配置问题等。对于这些情况,我们需要逐一排查,确保所有配置都符合预期。 在MySQL中创建新用户并确保他们能正常登录,需要注意用户权限的设置,尤其是处理好匿名用户的情况。同时,对错误日志进行分析也是定位问题的有效方法。通过理解这些基本概念和解决问题的策略,可以更好地管理和维护MySQL数据库系统。
- 粉丝: 4
- 资源: 984
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0