一、用户管理
mysql用户管理即用户的增删改查操作。
1、创建用户
insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
这样就创建了一个名为:test 密码为:1234 的用户。此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
2、删除用户
Delete FROM user Where User='test' and Host='localhost';
flush privileges;
drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@'%';
>drop user 用户名@ localhost;
3、修改用户密码
第一种:update mysql.user set password=password('新密码') where User="test" and Host="localhost";
第二种:mysqladmin -u -username -p password "new_password"
忘记密码:如果root用户密码丢失了,会给用户造成很大的麻烦。但是,可以通过某种特殊方法登录到root用户下,然后修改密码。
a、使用--skip-grant-tables选项启动MySQL服务
该选项将使MySQL服务器停止权限判断,任何用户都能够访问数据库。
在Windows操作系统下,使用mysqlid或mysqlid-nt来启动MySQL服务。
mysqld命令:
mysqld --skip-grant-tables
mysqld-nt命令:
mysqld-nt --skip-grant-tables
net start mysql命令:
net start mysql --skip-grant-tables
b、登录root用户,并且设置新密码
mysql -u root
必须使用UPDATE语句更新mysql数据库下的user表,而不能使用SET语句,因为--skip-grant-tables不能使用SET语句。
修改完密码以后,FLUSH PRIVILEGES语句加载权限表,新密码即生效。
4、查看用户
use mysql;
select * from user;
二、用户授权
授权命令常用格式如下:
1、查看权限:show grants for '用户'@'IP地址'
2、授权grant 权限 on 数据库.表 to '用户'@'IP地址'
3、取消授权revoke 权限 on 数据库.表 from '用户名'@'IP地址'
授权实例如下:grant all privileges on db1.tb1 TO '用户名'@'IP'
grant select on db1.* TO '用户名'@'IP'
grant select,insert on *.* TO '用户名'@'IP'
revoke select on db1.tb1 from '用户名'@'IP'
例子:
授权root用户拥有所有数据库的所有权限(某个数据库的所有权限):
mysql>grant all privileges on *.* to root@localhost identified by '123456';
mysql>flush privileges;//刷新系统权限表
三、用户权限
MySQL权限如下表
四、MySql设置远程访问权限
1.本地mysql客户端连接mysql
mysql -u root -p
2.执行sql语句:
--使用mysql系统数据库
use mysql;
--配置192.168.1.10可以通过root:123456访问数据库
GRANT ALL PRIVILEGES ON *.* to 'root'@'192.168.1.10' identified by '123456';
--配置所有ip可以通过root:123456访问数据库
grant all privileges on *.* to root@'%' identified by "123456";
--从mysql数据库中的授权表重新载入权限
flush privileges;
--查看用户权限是否变更
select * from user;
3.远程访问权限已经配置完成。