`

MySQL用户管理及授权-开启远程访问

阅读更多
Linux开启或停止Mysql服务

#service mysqld start
#service mysqld stop


常用操作:

选择数据库:
use 'databasename';

查询数据库实例:
show databases;

查询当前选择数据库实例的表:
show tables;

查询用户权限:
show grants for 'username'@'%';

查询Mysql版本号:
select version();

查询Mysql端口号:
show global variables like 'port';


创建用户:

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%'; 


设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子:
SET PASSWORD FOR 'username'@'%' = PASSWORD("123456");

update user set password=PASSWORD('newpwd') where user='root';


删除用户

命令: DROP USER 'username'@'host';

用户授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON test.user TO 'username'@'%';
GRANT ALL ON *.* TO 'username'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;


撤销用户权限

命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'username'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'username'@'%', 则在使用REVOKE SELECT ON *.* FROM 'username'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'username'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'username'@'%'; 查看.

开启Mysql远程访问:
1、改表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

# mysql -u root -p 
mysql>use mysql; 
mysql>update user set host = '%' where user = 'username'; 
mysql>select host, user from user;


2、授权法
-- 赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

若想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI 
TH GRANT OPTION;


若想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES  -- 修改生效
mysql>EXIT
分享到:
评论

相关推荐

    linux下mysql开启远程访问权限 防火墙开放3306端口

    默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。 主流的有两种方法,改表法和授权法。 相对而言,改表法比较容易一点,个人也是比较倾向于使用...

    01-mysql安装篇(rpm方式安装+二进制方式安装)-mysql rpm安装-CSDN博客.pdf

    6、开启mysql服务 7、登陆mysql 8、修改密码设置规则(简单型-学习用) 9、修改密码 10、授权远程登陆 11、启停mysql命令 12、rpm方式安装说明 二、二进制方式安装V5.7.18 1、上传解压 2、创建安装目录 3、拷贝解压...

    ubuntu 16.04下mysql5.7.17开放远程3306端口

    默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。 主流的有两种方法,改表法和授权法。 相对而言,改表法比较容易一点,个人也是比较倾向于使用...

    允许远程用户访问mysql服务sql语句

    mysql> grant all privileges on cakephp.* to cakephp@192.168.14.1 identified by ‘lpfukia’; Query OK, 0 rows affected (0.01 sec) mysql> ... 您可能感兴趣的文章:mysql开启远程连接(mysql开启

    使用了星外的Ipsec如何允许MySQL远程连接?

    您可能感兴趣的文章:navicat无法远程连接mysql的解决方法mysql开启远程连接(mysql开启远程访问)详解远程连接Mysql数据库的问题(ERROR 2003 (HY000))配置mysql允许远程连接的方法远程连接mysql 授权方法详解远程连接...

    修改mysql允许主机访问的权限方法

    默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。 主流的有两种方法,改表法和授权法。 相对而言,改表法比较容易一点,个人也是比较倾向于使用...

    MySQL命令大全

    MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    MYSQL常用命令大全

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    MySql通过ip地址进行访问的方法

    1.登录mysql: mysql -u root -h 127.0.0.1 -p 2.切换数据库 use mysql ... skip-networking开启该选项后就不能远程访问MySQL  为安全考虑希望指定的IP访问MySQL,可以在配置文件中增加bind-a

    ubuntu 15.04下mysql开放远程3306端口

    ubuntu 15.04开放mysql远程3306端口,以下所有操作在terminal(终端)中执行。 首先查看端口是否打开 netstat -an|grep 3306 此图为开启3306端口的截图,之前显示为. . . 127.0.0.1:3306 . . . 打开mysql配置文件vi...

    最新bugzilla安装.doc

    6. 输入root用户的密码,例:123123,如果需要远程访问,复选“Enable root access from remote machines”,下一步至安装完成。 2.2配置MYSQL 1. 开始->所有程序->mysql->mysql 5.0->MySQL Server Instance Config...

    MySQLDBA运维笔记.pdf

    1.3.6 授权用户对应的主机不要用%,权限不要给 all,最小化授权,从库只给 select 权限..........................................................................................................................

    基于微信小程序购物商城设计+源代码+文档说明+数据库.zip

    用户和服务器的通讯都是通过api访问接口,不用的接口需要不同的用户权限,用户权限有管理员权限和用户权限,访问有的接口比如查询商品信和分类信息等这些接口不需要权限,任何人都可以调用,有的接口比如提交订单...

    帝国网站管理系统 v7.2 简体GBK测试版.zip

    2、测试版未开放商业授权版的功能:远程附件服务器、MYSQL多服务器读写分离、附件无限分表、评论无限分表、栏目访问统计分析、后台登录证书验证、后台随时认证码验证。 随着PC互联网与移动互联网的不断融合、以及...

    Mysql 5.7.14 使用常见问题汇总(推荐)

    1.远程数据库服务没有打开连接端口 2.本机IP地址没有得到授权 3.本地网络故障 笔者的情况属于第二种情况,当更换IP访问时,就可以连接成功。 以上所述是小编给大家介绍的Mysql 5.7.14使用常见问题汇总,希望对...

    Java EE常用框架.xmind

    粗粒度权限管理比如:超级管理员可以访问户添加页面、用户信息等全部页面。部门管理员可以访问用户信息页面包括 页面中所有按钮。 细粒度权限管理:对资源实例的权限管理。资源实例就资源类型的具体化,比如:...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    asp.net知识库

    新控件、管理外观、布局及其它用户体验 ASP.NET 2.0 缓存技术 (原创) asp.net 2.0中的theme主题覆盖问题 asp.net 2.0中利用app_offline.htm功能 .NET 2.0中的字符串比较 小试ASP.NET 2.0的兼容性 为 asp.net 2.0 ...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics