用mariadb也有一段时间了,常用命令和语法,基本没变。比较复杂一点的,例如replication,也没有发现根MysqL有什么不同的地方。
不过,今天真发现有不同的地方了,mariadb的权限管理根MysqL不一样,MysqL可以创建一个根root账户同等权限的账户,但是mariadb就不行了,写法上也所不同。
1,mariadb grant授权报错
grant all privileges on *.* TO tank@'192.168.%' IDENTIFIED BY 'test';
rush:plain;">
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
相同的命令在MysqL下,执行是没有任何问题的。
一开始以为是mariadb的root账号和密码有问题,检查后没问题。
2,mariadb与MysqL root权限不同
查看了一下,root账户所拥有的权限,mariadb和MysqL是不一样的。 show grants\G;
rush:plain;">
*************************** 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
show grants;
rush:plain;">
+---------------------------------------------------------------------+
| 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/ grant all on test.* TO tank@'192.168.%' IDENTIFIED BY 'test';
rush:plain;">
Query OK,0 rows affected (0.00 sec)
grant select on *.* TO tank@'192.168.%' IDENTIFIED BY 'test';
rush:plain;">
Query OK,0 rows affected (0.00 sec)
第一条命令,将test库的所有权限都给tank
第二条命令,将所有库和表的select权限给tank
注意:all不能和*.*一起使用的,不然就报错了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。