mysql grant all privileges on赋给用户远程权限mysql中grant all privileges on赋给用户远程权限
改表法。
当你的帐号不允许从远程登陆,只能在localhost连接时。这个时候只要在mysql服务器上,更改 mysql 数据库里的 user 表里的 host 项,从localhost改成%即可实现用户远程登录
在安装mysql的机器上运行:
1. mysql -u root -p
2. select host,user from user where user='root';
3. update user set host = '%' where user='root' and host='localhost';
4. select host, user from user where user='root';
授权法
[root@aaa-server ~]# mysql -u root -pmariadb [(none)]> grant all privileges on *.* to root@'%' identified by '123' with grant option;query ok, 0 rows affected (0.00 sec)mariadb [(none)]> flush privileges;query ok, 0 rows affected (0.01 sec)mariadb [(none)]> flush privileges;query ok, 0 rows affected (0.00 sec)mariadb [(none)]> exitbye
授权法。
例如,你想user使用mypwd从任何主机连接到mysql服务器的话。
在安装mysql的机器上运行:
1. grant all privileges on *.* to 'user'@'%' identified by 'mypwd' with grant option; 2.flush privileges;模板:grant all privileges on 库名.表名 to '用户名'@'ip地址' identified by '密码' with grant option;flush privileges;
如果你想允许用户user从ip为192.168.1.4的主机连接到mysql服务器,并使用mypwd作为密码
在安装mysql的机器上运行:
grant all privileges on *.* to 'user'@'192.168.1.3' identified by 'mypwd' with grant option; flush privileges;
注意授权后必须flush privileges;否则无法立即生效。
高版本数据库不能按照grant all privileges on *.* to "root"@"%" identified by "xxxx";去修改用户权限
mysql> select @@version;+-----------+| @@version |+-----------+| 8.0.14 |+-----------+1 row in set (0.00 sec)
高版本修改用户权限方法:
# 先创建远程用户,再授权mysql> create user 'root'@'%' identified by 'password';query ok, 0 rows affected (0.03 sec)mysql> grant all privileges on *.* to 'root'@'%' with grant option;query ok, 0 rows affected (0.01 sec)mysql> flush privileges;query ok, 0 rows affected (0.00 sec)
再次查看发现有了root %
mysql> select user,host from user;+------------------+-----------+| user | host |+------------------+-----------+| root | % || mysql.infoschema | localhost || mysql.session | localhost || mysql.sys | localhost || root | localhost |+------------------+-----------+5 rows in set (0.00 sec)————————————————
mysql授权语句说明grant all privileges、创建用户、删除用户mysql的赋权语句:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
all privileges ==》 表示所有的权限 ,增删改查权限全部都有了
*.* ==> 所有的数据库下面所有的表
root@% ==》 所有数据库下面所有的表,所有的权限,全部都给root用户 % 表示root用户可以在任意机器上面进行连接登录
the password used for remote login connection is 123456.
刷新权限列表:flush privileges
create database 数据库名;create user '用户名'@'%' identified by '密码'; grant all privileges on 数据库名.* to '用户名'@'%' identified by '密码' with grant option; flush privileges;
创建用户:create user 'jack'@'localhost' identified by 'test123';
查看数据库中已经创建的用户:select user,host from user;--user表在数据库自带的、名字为mysql的数据库中
删除用户:delete from user where user = 'jack';
drop user ‘jack'@'%';
drop user 会将该用户的信息全部删掉,而 delete 只会清除user表,其他的比如db表中的信息还是存在。
清除缓存:flush privileges
以上就是mysql中grant all privileges on怎么赋给用户远程权限的详细内容。