一、权限介绍
-
全局 root —— 可以管理整个mysql
-
库 ——可以管理指定的数据库
-
表 ——可以管理数据库指定的表
-
字段 ——可以管理数据库指定表的特定字段
权限存储在mysql库的 user, db, table_priv, columns_priv, procs_priv 这几个系统表中,待mysql实例启动后就加载到内存中
二、查看用户权限
- 查看所有用户
select user,host from mysql.user;
- 查看单个用户所有情况
select * from mysql.user where user=‘xxx‘;
三、 授权
每次更新权限后需要手动更新权限:flush privileges;
授权格式:
grant [权限] on [库.表] to [用户名]@[IP] identified by [密码]
1. 全局授权
update mysql.user set user.host=‘%‘ where user.User=‘root‘;
flush privileges;
grant all privileges on *.* to ‘raiuny‘@‘%‘ identified by ‘123456‘;
flush privileges;
这样就可以在远程连接到该数据库, 且获得全部权限。
2. 单个数据库授权
只给ip = 175.155.59.133, name = xxx这一用户使用database1查询的权限
grant select on database.* to xxx@‘175.155.59.133‘ identified by [密码]
四、收回权限,删除用户
1. 收回权限
格式:
revoke [权限] on [库.表] from [用户名]@[ip];
2. 删除用户
格式:
drop user [用户名]@[ip];
五、Mac启动Mysql、停止Mysql、重启Mysql
-
启动mysql
sudo /usr/local/mysql/support-files/mysql.server start
-
停止mysql
sudo /usr/local/mysql/support-files/mysql.server stop
-
重启mysql
sudo /usr/local/mysql/support-files/mysql.server restart
如果报错,
ps aux |grep mysqld 查找mysql进程并杀死
kill -9 [进程名]
然后再次重启就好了