用root管理打开mysql
1.连接数据库
mysql -u root -p
或者
mysql -h192.168.222.132 -uroot -p
通过ip远程连接数据库
mysql -h(host) -u(user) -p(password) -P(port)
其中 host 指的是你安装数据库的服务器的 IP 地址,user 是用户名,password 是你的用户密码,-P 是你要连接的端口号。
2.mysql基础命令
1.查看mysql所有库:show databases;
2.连接其中一个库(mysql是库名):use mysql;
3.查看库中所有表:show tables;
4.查看表结构(columns_priv查看的表):desc columns_priv;
用户名及权限操作
连接mysql库:use mysql;
用户的信息都存储在 mysql 的 user 表:select host,user from user;
于创建 MySQL 账户(%表示登录ip不限):create user 'user1'@'%' identified by '12345'
;
给用户库的数据库权限(all表示所有权限,test.*表示test库所有表):grant all privileges on test.* to 'user1'@'%' identified by '12345';
创建lisi用户,host为192.168.%.%,%通配符表示192.168.xxx.xxx结尾的主机都可以连接,密码为12345678,拥有所有库权限。
例:grant all on *.* to lisi@'192.168.%.%' identified by '12345678';
mysql数据库用户权限
权限名称 |
权限说明 |
all/all privileges |
全局或者全数据库对象级别的所有权限 |
alter |
修改表结构的权限,但必须要求有create和insert权限配合 |
alter routine |
修改或者删除存储过程、函数的权限 |
create |
创建新的数据库和表的权限 |
create routine |
允许创建存储过程、函数的权限 |
create tablespace |
允许创建、修改、删除表空间和日志组的权限 |
create temporary tables |
创建临时表权限 |
create user |
创建、修改、删除、重命名user |
create view |
|
delete |
删除行数据 |
drop |
删除数据库、表、视图的权限,包括truncate table命令 |
event |
查询,创建,修改,删除MySQL事件 |
execute |
执行存储过程和函数 |
file |
在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select ,into outfile,load file()函数等 |
grant option |
授权或者收回给其他用户你给予的权限 |
index |
创建和删除索引 |
insert |
在表里插入数据 |
lock |
对拥有select权限的表进行锁定,以防止其他链接对此表的读或写 |
process |
允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令 |
reference |
允许创建外键 |
reload |
执行flush命令,指明重新加载权限表到系统内存中 |
replication client |
执行show master status,show slave status,show binary logs命令 |
replication slave |
允许slave主机通过此用户连接master以便建立主从复制关系 |
select |
从表中查看数据 |
show databases |
通过执行show databases命令查看所有的数据库名 |
show view |
通过执行show create view命令查看视图创建的语句 |
shutdown |
关闭数据库实例,执行语句包括mysqladmin shutdown |
super |
允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令,change master to创建复制关系命令,以及create/alter/drop server等命令 |
trigger |
允许创建,删除,执行,显示触发器的权限 |
update |
修改表中数据的权限 |
usage |
创建一个用户之后的默认权限,本身代表无权限 |
存放用户权限表的说明
( Mysql数据库用户权限存储在mysql库的user, db, tables_priv, columns_priv, procs_priv这几个系统表中, MySQL实例启动后就加载到内存中)
存放权限的表 |
表的作用 |
user |
存放用户账户信息以及全局级别(所有数据库)权限,(存放了那些用户可以访问那些数据库的权限) |
db |
数据库级别权限,决定了来自哪些主机的哪些用户可以访问此数据库 |
tables_priv |
存放表级别的权限,决定了来自哪些主机的哪些用户可以访问数据库的那张表 |
columns_priv |
存放列级别的权限,决定了来自哪些主机的哪些用户可以访问数据库表的字段 |
procs_priv |
存放存储过程和函数级别的权限 |
回收权限
收回 user1 的所有权限:revoke all privileges on . from 'user1'@'%';
用来删除闲置或没用的 MySQL 账户:drop user 'user1'@'%';
修改用户host域,ip能访问的范围:
update user set host='192.168.%.%' where user = 'lisi';
flush privileges;
--冲刷权限