Linux 关于MySQL权限分配的详解

前端之家收集整理的这篇文章主要介绍了Linux 关于MySQL权限分配的详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一招、MysqL服务的启动和停止

net stop MysqL

net start MysqL

第二招、登陆MysqL

语法如下:

键入命令 MysqL -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到MysqL中了,MysqL提示符是:

注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户

格式:

grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库查询、插入、修改删除的权限。首先用以root用户连入MysqL,然后键入以下命令:

grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";

如果希望该用户能够在任何机器上登陆MysqL,则将localhost改为"%"。

如果你不想user1有密码,可以再打一个命令将密码去掉。

grant select,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库

登录MysqL中,然后在MysqL提示符下运行下列命令,每个命令以分号结束。

1、 显示数据库列表。

show databases;

缺省有两个数据库MysqL和test。 MysqL库存放着MysqL的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

2、 显示库中的数据表:

use MysqL;

show tables;

3、 显示数据表的结构:

describe 表名;

4、 建库与删库:

create database 库名;

drop database 库名;

5、 建表:

use 库名;

create table 表名(字段列表);

drop table 表名;

6、 清空表中记录:

delete from 表名;

7、 显示表中的记录:

select * from 表名;

第五招、导出和导入数据

1. 导出数据:

MysqLdump --opt test > MysqL.test

即将数据库test数据库导出到MysqL.test文件,后者是一个文本文件

如:

MysqLdump -u root -p123456 --databases dbname > MysqL.dbname

就是把数据库dbname导出到文件MysqL.dbname中。

2. 导入数据:

MysqLimport -u root -p123456 < MysqL.dbname

不用解释了吧。

3. 将文本数据导入数据库:

文本数据的字段数据之间用tab键隔开。

use test;

load data local infile "文件名" into table 表名;

1:使用SHOW语句找出在服务器上当前存在什么数据库

MysqL> SHOW DATABASES;

2:2、创建一个数据库MysqLDATA

MysqL> CREATE DATABASE MysqLDATA;

3:选择你所创建的数据库

MysqL> USE MysqLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

MysqL> SHOW TABLES;

5:创建一个数据库

MysqL> CREATE TABLE MYTABLE (name VARCHAR(20),sex CHAR(1));

6:显示表的结构:

MysqL> DESCRIBE MYTABLE;

7:往表中加入记录

MysqL> insert into MYTABLE values ("hyq","M");

8:用文本方式将数据装入数据库表中(例如D:/MysqL.txt)

MysqL> LOAD DATA LOCAL INFILE "D:/MysqL.txt" INTO TABLE MYTABLE;

9:导入.sql文件命令(例如D:/MysqL.sql)

MysqL>use database;

MysqL>source d:/MysqL.sql;

10:删除

MysqL>drop TABLE MYTABLE;

11:清空表

MysqL>delete from MYTABLE;

12:更新表中数据

MysqL>update MYTABLE set sex="f" where name='hyq';

13:备份数据库

MysqLdump -u root 库名>xxx.data

14:例2:连接到远程主机上的MysqL

假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

MysqL -h110.110.110.110 -uroot -pabcd123

(注:u与root可以不用加空格,其它也一样)

3、退出MysqL命令:

exit (回车)

MysqL的权限系统围绕着两个概念: 

1:认证->确定用户是否允许连接数据库服务器 

2:授权->确定用户是否拥有足够的权限执行查询请求等。 

显然从上面可知,如果认证不成功的话,哪么授权肯定是无法进行的。在这里我们要关注两个表,分别是在MysqL数据库中user表和db表。 

user表在某种程度上是独一无二的,因为它是唯一一个在权限请求的认证和授权阶段都起作用的表,也是唯一一个存数MysqL服务器相关权限的权限表。在认证阶段,它只是负责为用户授权访问MysqL服务器,确定用户每小时的最大连接数和最大并发数;在授权阶段,user确定允许访问服务器的用户是否被赋予了操作数据库的全局权限,确定用户每小时的最大查询数和更新数。 

db表用于为每个用户针对每个数据库赋予权限。具体的可以查看db的字段。 

用户和权限管理命令: 

create user :用于创建新的用户账户(从5.0版本开始有这个命令),在创建这个用户的时候不分配任何权限,需要在创建之后通过grant命令来给改用户分配相应的权限。 

eg:create user guest@localhost identified by '123456'; 

grant select on mydb.* to guest@localhost; 

drop user:删除一个用户账户(注意在4.1.1版本之前只能删除没有任何权限的账户,5.0.2之后可以删除任何账户) 

eg:drop user guest; 

rename user:可以实现重命名一个用户账号。 

grant:用于管理访问权限,也就是给用户账号授权。当然它同样可以创建一个新的用户账户。 

eg:grant select,delete on new_db.* to guest@'%' identified by '88888888'; 

grant 权限 on 数据库.表 to 用户 @ 访问方式 identified by 密码 

grant select on mydb.* to guest@localhost identified by '123456'; 

BTW:如果需要一个空密码或者无密码的账户,必须先用Create User命令,然后通过grant来分配权限。如果如下操作: 

grant all privileges on mydb.* to visitor@'%' ;而在数据库user表中没有先创建visitor用户,则会发生1133错误"Can't find any matching row in the user table"。grant只能创有密码的账户。 

revoke:删除一个账户,具体查看MysqL的文档。

原文链接:https://www.f2er.com/mysql/530289.html

猜你在找的MySQL相关文章