mysql赋权限_MySQL赋予⽤户权限命令总结
MySQL⽤户可⽤权限
⼀个新建的MySQL⽤户没有任何访问权限,这就意味着你不能在MySQL数据库中进⾏任何操作。你得赋予⽤户必要的权限。以下是⼀些可⽤的权限:
ALL: 所有可⽤的权限
CREATE: 创建库、表和索引
LOCK_TABLES: 锁定表
ALTER: 修改表
DELETE: 删除表
INSERT: 插⼊表或列
SELECT: 检索表或列的数据
CREATE_VIEW: 创建视图
SHOW_DATABASES: 列出数据库
DROP: 删除库、表和视图
grant、index、references、reload、shutdown、process等等
赋予权限基本命令格式
mysql> grant 权限1,权限2 on 数据库名称.表名称 to ⽤户名@⽤户地址 identified by ‘连接⼝令’;
当权限1,权限2,…被all privileges或者all代替,表⽰赋予⽤户全部权限。
当数据库名称.表名称被*.*代替,表⽰赋予⽤户操作服务器上所有数据库所有表的权限。
⽤户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以⽤'%'表⽰从任何地址连接。
‘连接⼝令’不能为空,否则创建失败。
在MySQL安装完成后,为了确保数据库的安全性,通常我们都使⽤mysqladmin命令给数据管理员root⽤户添加密码,允许远程登录并赋予所有权限。
例1
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
赋予所有特殊权限给root⽤户,可以从任何IP地址远程登录,密码为abc123,且拥有grant赋予权限的权限
例2
mysql> grant select,insert,update,delete,create,drop on school.info to test@192.168.100.100 identified by '123';
给来⾃192.168.100.100的⽤户test分配可对数据库school的info表进⾏select,insert,update,delete,create,drop等操作的权限,并设定⼝令为123。
例3
mysql> grant all privileges on school.* to test@192.168.100.100 identified by '123';
给来⾃192.168.100.100的⽤户test分配可对数据库school所有表进⾏所有操作的权限,并设定⼝令为123。
例4
mysql>grant all privileges on *.* to test@localhost identified by '123';
给本机⽤户test分配可对所有数据库的所有表进⾏所有操作的权限,并设定⼝令为123。
注:在mysql模式中,当赋予⽤户权限或者权限设定后,重要的⼀步使得命令⽴即⽣效:mysql>flush privileges
忘记密码 重置密码
systemctl stop mysqld.service
mysqld --skip-grant-tables 启动数据库不使⽤授权表
source /etc/profile
mysql 进⼊数据库
update mysql.user set authentication_string=password ('123456') where user='root'; flush privileges; 刷新数据库
init 6 重启
注:若是想默认直接跳过账户验证,可直接通过在主配置⽂件中添加:
vim /etc/myf
[mysqld]
打开mysql服务命令skip-grant-tables //添加跳过验证命令
user=mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
....
重启MySQL服务
systemctl restart mysqld.service
如上,当再次进⼊MySQL时即可跳过验证,直接进⼊。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论