一、Linux下登录mysql
1、登录MySQL数据库(mysql -hlocalhost -uroot -p)
mysql -hlocalhost -uroot -p
-h数据库主机
-u用户
-p密码
-P端口号(大写P)
例如:mysql -h127.0.0.1 -uroot -p123456 -P3306
PS:-p密码部分,可以直接指定密码,如果不指定,会提示输入密码。
2、查看当前数据库列表--显示数据库(show databases)
略
3、激活当前数据库--选择数据库(use hivgw)
略
4、设置字符编码为UTF8 (set names utf8)
略
5、退出mysql(quit或者exit)
略
二、MySQL用户管理:添加用户、授权、删除用户
1、添加用户
以root用户登录数据库,运行以下命令:
create user wolf identified by 'wolf';
上面的命令创建了用户wolf,密码是wolf。在mysql.user表里可以查看到新增用户的信息:
2、授权
命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";(回收权限使用命令:revoke …… from ……)
grant all privileges on private_chat.* to wolf@'%' identified by 'wolf';
flush privileges;
上面的语句将private_chat数据库的所有操作权限都授权给了用户wolf。
在mysql.db表里可以查看到新增数据库权限的信息:
略
也可以通过show grants命令查看权限授予执行的命令:
show grants for 'wolf';
授权命令说明:
(1)privilegesCode表示授予的权限类型,常用的有以下几种类型[1]:
all privileges:所有权限。
select:读取权限。
delete:删除权限。
update:更新权限。
create:创建权限。
drop:删除数据库、数据表权限。
USAGE:没有权限。
所有权限说明,请见文末附一。
(2)dbName.tableName表示授予权限的具体库或表,常用的有以下几种选项:
.:授予该数据库服务器所有数据库的权限。
dbName.*:授予dbName数据库所有表的权限。
dbName.dbTable:授予数据库dbName中dbTable表的权限。
(3)username@host表示授予的用户以及允许该用户登录的IP地址。其中Host有以下几种类型:
localhost:只允许该用户在本地登录,不能远程登录。
%:允许在除本机之外的任何一台机器远程登录。
192.168.52.32:具体的IP表示只允许该用户从特定IP登录。
::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
(4)password指定该用户登录时的密码。
(5)flush privileges表示刷新权限变更。
设置权限时必须给出的信息:
(1)要授予的权限
(2)被授予访问权限的数据库或表
(3)用户名
grant和revoke可以在几个层次上控制访问权限:
(1)整个服务器,使用 grant ALL 和revoke ALL
(2)整个数据库,使用on database.*
(3)特定表,使用on database.table
(4)特定的列
(5)特定的存储过程
3、修改密码
运行以下命令可以修改用户密码
update mysql.user set password = password('wolfnew') where user = 'wolf' and host = '%';
flush privileges;
4、删除用户
运行以下命令可以删除用户:
drop user wolf@'%';
drop user命令会删除用户以及对应的权限,执行命令后你会发现mysql.user表和mysql.db表的相应记录都消失了。
5、常用命令组
创建用户并授予指定数据库全部权限:适用于Web应用创建MySQL用户
create user wolf identified by 'wolf';
grant all privileges on wolfDb.* to wolf@'%' identified by 'wolf';
flush privileges;
创建了用户wolf,并将数据库wolfDB的所有权限授予wolf。如果要使wolf可以从本机登录,那么可以多赋予localhost权限:
grant all privileges on wolfDb.* to wolf@'localhost' identified by 'wolf';
附一:权限表
权限 |
说明 |
all |
|
alter |
|
alter routine |
使用alter procedure 和drop procedure |
create |
|
create routine |
使用create procedure |
create temporary tables |
使用create temporary table |
create user |
|
create view |
|
delete |
|
drop |
|
execute |
使用call和存储过程 |
file |
使用select into outfile 和load data infile |
grant option |
可以使用grant和revoke |
index |
可以使用create index 和drop index |
insert |
|
lock tables |
锁表 |
process |
使用show full processlist |
reload |
使用flush |
replication client |
服务器位置访问 |
replocation slave |
由复制从属使用 |
select |
|
show databases |
|
show view |
|
shutdown |
使用mysqladmin shutdown 来关闭mysql |
super |
|
update |
|
usage |
无访问权限 |