grant select on testdb.* to root@'%';
上述语句意思为只将对数据库testdb的查询权限授予root用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
上述语句意思为将对所有数据库的所有权限都授权给root用户!
方法/步骤众所周知,mysql里面有很多权限,不同权限可以使用不同功能,今天就教大家怎么获取Mysql的root权限,也就是最高权限,可以做任何事情。
1.首先使用一个没有权限的账号链接mysql,成功之后执行:show databases;这时会发现没有权限的用户只能看到一个数据库,mysql和test等数据库是看不到的;
2.如果已经安装了phpmyadmin,打开127.0.0.1/phpmyadmin,在菜单栏找到用户,然后找到没有权限的用户,点击编辑权限;
3.跳转到设置页面,找到全局权限,在全选checkbox打勾,点击右下角的执行,完成后该用户就获得了mysql数据库的所有权限;
4.再次用该账号再次链接mysql,链接成功后执行:show databases;你会发现所有数据库都会显示出来,而且使用该账号可以进行任意编辑;
6
5.也可以直接在cmd窗口命令行设置,设置权限的命令为:
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost'GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0
PS:用户名部分根据自己的实际情况进行更改。
基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。下面是基本的步骤:1、登录到MySQL中,为root进行远程访问的授权,执行下面的命令:
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"
mysql>flush privileges
第一句中"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root"
第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
2、修改/etc/mysql/my.cnf,需要root用户权限。找到文件中的:
[ruby] view plain copy print?
bind-address = 127.0.0.1
将其注释掉,保存。
3、重新启动MySQL服务器。执行下面的几条命令即可:
# /usr/bin/mysqladmin -u root -p shutdown
# /usr/bin/mysqld_safe &
如果mysqladmin和mysql_safe不在/usr/bin目录中,可以通过whereis命令查找,例如:
# whereis mysqladmin
mysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz
执行完上面的三步后,就可以通过远程机器连接了数据库了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)