解决mariadb grant ERROR 1045 (28000): Access denied for user

用mariadb也有一段时间了,常用命令和语法,基本没变。比较复杂一点的,例如replication,也没有发现根mysql有什么不同的地方。

不过,今天真发现有不同的地方了,mariadb的权限管理根mysql不一样,mysql可以创建一个根root账户同等权限的账户,但是mariadb就不行了,写法上也所不同。

1,mariadb  grant授权报错
  
MariaDB [(none)]> grant all privileges on *.* TO tank@'192.168.%' IDENTIFIED BY 'test'; 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 

相同的命令在mysql下,执行是没有任何问题的。
一开始以为是mariadb的root账号和密码有问题,检查后没问题。

2,mariadb与mysql root权限不同

查看了一下,root账户所拥有的权限,mariadb和mysql是不一样的。
  
MariaDB [(none)]> show grants\G; 
*************************** 1. row *************************** 
Grants for root@localhost: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'localhost' WITH GRANT OPTION 
1 row in set (0.00 sec) 
 
ERROR: No query specified 
  
mysql> show grants; 
+---------------------------------------------------------------------+ 
| Grants for root@localhost | 
+---------------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | 
+---------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

3,mariadb与mysql grant语法不同

具体的讲法以,请参考:https://mariadb.com/kb/en/mariadb/grant/
  
MariaDB [(none)]> grant all on test.* TO tank@'192.168.%' IDENTIFIED BY 'test'; 
Query OK, 0 rows affected (0.00 sec) 
 
MariaDB [(none)]> grant select on *.* TO tank@'192.168.%' IDENTIFIED BY 'test'; 
Query OK, 0 rows affected (0.00 sec) 

第一条命令,将test库的所有权限都给tank
第二条命令,将所有库和表的select权限给tank
注意:all不能和*.*一起使用的,不然就报错了。

时间: 2024-11-01 23:47:40

解决mariadb grant ERROR 1045 (28000): Access denied for user的相关文章

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) root@mysql ~]# mysql -p -u root Enter password:  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) ERROR 1045 (28000): Access denied

ERROR 1045 (28000): Access denied for user 'root'@'localhost' 的解决方法

风信网(ithov.com)原创文章:今天在测试一款bacula开源备份软件的时候,需要使用到mysql数据库,当运行以下命令时报错误如下: [root@localhost etc]# ./grant_mysql_privileges ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) Error creating privileges. 登陆到msyql中去解决该问题: [root

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解决办法_Mysql

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的解决办法和原因 这两天下载了MySQL5.7.11进行安装,发现到了初次使用输入密码的时候,不管怎样都进不去,即使按照网上说的在mysqld 下面添加skip-grant-tables也是不行,后来研究了两天,终于找出原因和解决办法. 复制代码 代码如下: [mysqlld] skip-grant-tables: 原因

MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决_Mysql

第一种方法: 推荐错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误. 原因分析: 在mysql.user表中可能出现user为空的记录,如: mysql> select host,user from user; +------------------+------+ | host | user | +------------------+------+ | % | test | | localhost

登录mysql报ERROR 1045 (28000): Access denied 解决方法

登录mysql时系统报错原因 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 原因一 可能是密码真的输入错误 原因二 安装时有问题,比如可能data目录没有等 解决方法: 1 没有data目录用命令建立 mysqld --initialize-insecure --user=mysql   2 NET stop mysql57 3 mysqld --defaults-file=

【技术贴】解决Mysql ERROR 1045 (28000): Access denied for

  今天Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' 肯定是密码不对了.那么重置一下密码吧.   打开 cmd 输入以下四个步骤:   1.mysql -u root mysql (登陆mysql.如果你没有在环境变量path里面加入bin路径,建议你直接去mysql的bin目录下运行此命令) 2. UPDATE user SET Password=PASSWORD('123456') where USER

mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)

mysql全局权限账户%登录不上 ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)  解决 查看错误提示  有主机名字的就必须赋值主机名 mysql> GRANT ALL PRIVILEGES ON *.* TO 'mhz'@'mgr2' IDENTIFIED BY 'mhz' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 s

新装MySql后登录出现root帐号提示mysql ERROR 1045 (28000): Access denied

新装MySQL后,首次执行 mysql -uroot -p 后会发现root密码不为空,要重置root密码请参考以下步骤. 编辑mysql配置文件my.ini(如果是my_default.ini请改名为my.ini),在[mysqld]这个条目下加入 skip-grant-tables 保存退出后重启mysql,点击"开始"->"运行"(快捷键Win+R). 1.停止:输入 net stop mysql 2.启动:输入 net start mysql 这时候在

ERROR 1045 (28000): Access denied for user 'axt'@'localhost' (using pass

ERROR 1045 (28000): Access denied for user 'axt'@'localhost' (using password: YES)解决 环境:MySQL Sever 5.1 + MySQL命令行工具 问题:MySQL用户远程登录遇到此问题:ERROR 1045 (28000): Access denied for user 'axt'@'localhost' (usingpassword: YES). 如图: 解决: 新创建的用户不能立即失效,执行以下命令后重启