文章中所有操作均是在 MySQL 5.7 版本下进行的
当安装完了 MySQL 之后就可以进行登录等相关操作了。在这里如何登录就不演示了,非常简单“mysql -u root -p”回车输入密码即可。(一般情况下都是登录本机的 root 管理员用户)
温馨提示:退出当前用户用 exit 命令。
注意:登录 MySQL 后可以用 select version(); 命令查看 MySQL 的版本。
另外:没有登录 MySQL 也可以用 mysql -V 或者 mysql --version 也可以查看版本。
1 用户操作
1.1 添加用户
执行以下命令可以进行用户添加:
create user '用户名'@'IP地址' identified by '密码';
比如我创建了有个用户(创建了一个 Lee 用户,默认密码为 1,请注意用户名大小写):
create user 'Lee'@'%' identified by '1';
这里需要说明的一个地方,create user ‘用户名’ @’%’,@ 后面的参数代表可以登录的 IP地址,% 代表是可以在任意 IP 下登录。这样的话也可以另外的创建命令:
- ‘用户名’@‘IP地址’:代表用户只能该 IP 下才能访问。
- ‘用户名’@‘192.168.1.%’:代表用户只能在该 IP 段下才能访问(通配符 % 表示任意)
- 可以直接 create user ‘用户名’ 创建用户也可以,默认 % 任意 IP。
1.2 权限授权
可以用命令查看某个用户的权限有哪些:
show grants for '用户'@'IP地址';
比如刚才新创建的用户:
show grants for 'Lee'@'%';
如果是新创建的用户它除了能登录之外,理论上是没有任何权限的(它有一个默认的 USAGE 权限,官网给出的解释是“无权限”)。我们可以通过以下命令进行权限授权:
grant 权限 on 数据库.表 to '用户'@'IP地址';
命令中的“权限”有哪些?
可以用户赋予全部权限,命令如下:
grant all privileges on *.* to '用户'@'IP地址';
除了 all privileges 之外还有哪些权限:
权限名 | 解释 |
---|---|
alter | alter the table |
alter routine | alter or drop stored functions/procedures |
create | create new databases and tables |
create routine | use create functions/procedures |
create temporary tables | use create temporary table |
create view | create new views |
create user | create new users |
delete | delete existing rows |
drop | drop databases, tables, and views |
event | create, alter, drop and execute events |
execute | execute stored routines |
file | read andwrite files on the server |
grant option | give to other users those privileges you possess |
index | create or drop indexes |
insert | insert data into tables |
lock tables | use lock tables (together with select privilege) |
process | view the plain text of currently executing queries |
proxy | make proxy user possible |
references | have references on tables |
reload | reload or refresh tables, logs and privileges |
replication client | ask where the slave or master servers are |
replication slave | read binary log events from the master |
select | retrieverows from table |
show databases | see all databases with show databases |
show view | see views with show create view |
shutdown | shut down the server |
super | use kill thread, set global, change master, etc |
trigger | use triggers |
create tablespace | create/alter/drop tablespaces |
update | update existing rows |
命令中的“数据库.表”有哪些?
可以用户赋予全部权限,命令如下:
- 数据库名.*,表示数据库中的所有表。
- 数据库名.表,表示数据库中的指定某个表。
- 数据库名.存储过程,表示数据库中的某个存储过程。
- *.*,表示所有。
1.3 删除授权
revoke 权限 on 数据库.表 from '用户'@'IP地址';
revoke all privileges on *.* to '用户'@'IP地址';
以上代码很好理解了。
1.4 修改用户
修改用户?要修改用户的什么呢?给用户增加授权或者移除授权,这个在上面有介绍。还可以修改用户的密码:
set password for '用户名'@'IP地址' = password('新密码');
还可以做什么?还可以修改用户的用户名:
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
1.5 删除用户
drop user '用户名'@'IP地址';
如果创建的时候是直接 create user ‘用户名’ 创建的,可以直接 drop user ‘用户名’ 删除。如果在创建的时候是以 create user ‘用户名’@‘IP地址’ 这种形式创建的,那得需要用 drop user ‘用户名’@‘IP地址’ 删除了。
2 库的操作
登录用户进入后,我们可以通过下面命令展示当前用户下所有的数据库:
show databases;
温馨提示:可以通过 “ show create database 数据库名; “ 展示查看指定数据库的创建信息。
可以通过如下命令创建数据库:
create database 数据库名;
以上命令创建的数据库,还可以创建库的时候指定默认字符集:
create database 数据库名 default character set 字符集;
温馨提示:可以通过 “ alter database 数据库名 character set 字符集; ” 修改数据库字符集。
那删除数据库的命令(这个命令需谨慎了,删库跑路?!)如下:
drop database 数据库名;
创建完了库,我需要进入库(切换数据库)中继续进行数据操作:
use 数据库名;
结语
新建一个用户只是开始,必须赋予权限才可以使用。当然除了赋予权限肯定还有别的操作,这里就不详细分析了,后续的文章中会陆续加入。