出此是用mysql,因为root权限过高,所以新建一用户appadmin,权限仅为要用到的数据库。创建语句如下:grant select,insert,update,delete on test.* to appadmin@"%" identified by "password";其中@“%”是可以在任何地址登录。
创建后到mysql.user下查看,有该用户。但是使用mysql -u appadmin -ppassword 登录,提示无法登录:ERROR 1045 (28000): Access denied for user 'appadmin'@'localhost' (using password: YES)
百思不得其解,遂google,其中有人说到“mysql.user 表中有另外一些记录产生了作用,最有可能的就是已经有一条''@localhost记录,就是用户名是空,主机字段是localhost的记录。” 影响了。查看该表果然有。
mysql> select host,user,password from mysql.user;
+-----------+------------------+-------------------------------------------+
| host | user | password |
+-----------+------------------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| mza | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | | |
| mza | | |
| localhost | debian-sys-maint | *19DF6BF8310D46D681AE072AB73ECEC99C018C19 |
| % | appadmin | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-----------+------------------+-------------------------------------------+
7 rows in set (0.00 sec)
但是删除那些为空(匿名)的用户后仍然无法登录。(可能是因为没有重启mysql)于是只好耐着性子看mysql参考手册。发现其中增加用户部分有这么一段话:
其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。
这段话说的很清楚,因此执行 grant select,insert,update,delete on test.* to appadmin@"localhost" identified by "password";
退出后用appadmin登录,成功。
分享到:
相关推荐
### MySQL 创建用户与分配权限命令详解 在数据库管理过程中,创建用户、分配权限以及管理这些权限是极其重要的操作。这不仅涉及到数据的安全性,还关乎到应用系统的稳定性和效率。以下将详细介绍MySQL中如何创建...
以下将详细解析如何在MySQL中创建用户,并深入理解GRANT和REVOKE命令的使用,以及相关的权限设置。 ### 创建用户 在MySQL中创建用户的基本语法是: ```sql CREATE USER 'username'@'hostname'; ``` 其中,`...
### MySQL中创建用户与授权用户 #### 创建用户 在MySQL中创建用户是一项基本但非常重要的管理任务,这对于确保数据安全性和正确地分配访问权限至关重要。根据提供的内容,“MySQLдûȨʵַڸտʼӴmysqlѿԲο”...
本文将详细介绍如何在MySQL中创建用户、授予权限以及删除用户。 **创建用户** 创建MySQL用户主要是使用`CREATE USER`命令。基本语法如下: ```sql CREATE USER 'username'@'host' IDENTIFIED BY 'password'; ``` ...
1. **创建用户** 使用`CREATE USER`语句来创建新的用户。基本格式如下: ``` CREATE USER 'username'@'host' IDENTIFIED BY 'password'; ``` 其中,`username`是你想要创建的用户名,`host`指定了用户可以在...
这里,`REMOTE_IP`是远程MySQL服务器的IP,`USERNAME`和`PASSWORD`是数据库的登录凭证,`DATABASE_NAME`是需要备份的数据库名,`backup.sql`是备份文件的本地路径。 在执行这个命令时,`sqldump.exe`将远程数据库的...
1、create schema [数据库名称] default character set utf8 collate utf8_general_ci;--创建数据库 ...MySQL创建数据库与创建用户以及授权相关SQL语句,摘自博客http://www.cnblogs.com/janken/p/5500320.html
总的来说,解决“创建完用户,在软件上无法连接”的问题关键在于正确地创建用户并赋予合适的权限。遵循上述步骤,并根据实际情况调整,应该能够成功创建并连接MySQL新用户。如果问题仍然存在,建议查阅MySQL官方文档...
在这个场景中,我们主要讨论如何在MySQL中创建用户并授予其特定权限,以便该用户能够查看刷卡日志。 首先,我们需要使用一个数据库管理工具,如Navicat for MySQL,来连接到MySQL服务器。在Navicat中,我们需要填写...
2. **主机地址**:在创建用户时指定的主机地址决定了用户可以从哪些主机连接到数据库。使用`%`作为主机地址表示任何主机都可以连接,但这样会降低安全性。 3. **密码策略**:确保设置的密码强度足够,避免使用容易被...
- 登录MySQL并执行以下命令,以授予指定用户(例如`root`)从任意主机(`%`表示所有主机)连接的权限,并且可以使用指定密码(例如`123456`)进行认证。 ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' ...
下面将详细解释如何在Linux下的MySQL中创建用户并设置权限。 首先,要创建一个新的MySQL用户,你需要以root身份登录到MySQL服务器。在终端中输入以下命令,并在提示时输入root用户的密码: ```bash $ mysql -u ...
然而,有时在创建用户后,可能会遇到用户无法登录的问题。这个问题通常涉及到权限设置或用户账户配置的细节。以下是一个具体的例子,以及如何解决此类问题的方法。 在安装OpenStack Folsom版本时,我们可能需要为每...
如果希望该用户能够在任何机器上登陆 MySQL,则将 localhost 改为"%”。 MySQL数据库操作 在 MySQL 中,数据库是存储数据的基本单位。可以使用以下命令来创建、删除、显示数据库: * 创建数据库:`create ...
在数据库管理中,MySQL 的用户管理和权限分配是非常重要的环节,这直接关系到数据的安全性和访问控制的有效性。本文将根据提供的标题、描述及部分文档内容,深入探讨 MySQL 用户密码的设置与修改,以及如何进行权限...
根据文档提供的信息,我们将深入探讨几种常见的MySQL登录方式,并重点讲解本地免密登录的具体实现方法。 #### 一、MySQL登录方式 ##### 1. 本地登录指定Host登录 MySQL支持通过指定主机名或IP地址的方式进行本地...
2. 创建用户:`CREATE USER 'demo_c'@'localhost' IDENTIFIED BY '123456';` 3. 授权:`GRANT ALL PRIVILEGES ON ranzhi.* TO demo_c@'localhost' IDENTIFIED BY '123456';` 4. 查看当前登录用户名:`mysql> select ...
首先,创建新的MySQL用户。使用`INSERT`语句可以向`mysql.user`系统表中添加新用户。例如,创建一个名为`cathy`的本地用户,密码设置为`123456`,命令如下: ```sql INSERT INTO mysql.user(Host, User, Password) ...