Linux上Mysql数据库 用户权限控制
Linux安装mysql
Mysql限制root用户ip地址登录
修改mysql库里边的user表:
update mysql.user set host='localhost' where user='root'; 刷新权限:
flush privileges;


修改密码
忘记密码
编辑my.cnf,并添加:skip-grant-tables
编辑my.cnf
vim /usr/local/mysql/my.cnf ==================
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1
#跳过权限表,添加该命令
skip-grant-tables
重启mysql服务
service mysql restart
登录mysql,并修改密码
mysql -uroot -p 直接回车不用输入密码!!!!!!!!
然后使用下面3种修改密码之一即可

修改密码
方式一
连到数据库中修改密码
格式:
set password for 用户名@ip =password('密码');
alter user '用户'@'ip' identified by '密码'; 刷新权限:
flush privileges; 示例
set password for root@127.0.0.1 = password('root');

方式二
格式:
./mysqladmin -u用户 -p旧密码 password 新密码

方式三
格式:
select * from mysql.user where user='root' \G; update mysql.user set authentication_string=password('123456') where user='root'; 刷新权限:
flush privileges;

创建用户并限制ip登录
创建用户
语法:
create user '用户名'@'ip' identified by '密码'; 用户名:创建的账户
ip:指定该用户在哪个主机上可以登录,如果是本地用户可用localhost,如果想让该用户可以在任意远程主机登录,可以使用通配符:%
密码:该用户的登录密码,密码可以为空,如果为空,则该用户可以不需要密码登录服务器
查看权限:
show grants for '用户名'@'ip';
查看用户权限:
select * from mysql.user where user='用户' \G;

mysql> select * from mysql.user where user='ybchen' \G;
*************************** 1. row ***************************
Host: %
User: ybchen
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *D2EDE838B7E0B05A2C599D3E1F5821D0ADC4F26E
password_expired: N
password_last_changed: 2020-11-19 23:26:12
password_lifetime: NULL
account_locked: N
1 row in set (0.00 sec)
创建一个用户,并指定密码,限制网段登录
适用于只能在公司内网环境下开发程序,外网登录不上,限制:172.20网段登录
create user 'ybchen'@'172.20.%.%' identified by '123456';
删除用户
语法:
drop user '用户'@'ip';
语法:
delete from mysql.user where user='用户';

授予用户库表权限
授权
语法:
grant 权限1,权限2... on 数据库 to '用户'
grant 权限1,权限2... on 数据库 to '用户'@'ip' identified by '密码'
对cyb用户授予所有库所有表所有权限
all privileges:代表所有权限
*.*:代表所有库所有表 grant all privileges on *.* to 'cyb';


授予cyb2用户,db1库所有权限
语法:
创建用户
create user 'cyb2'@'%' identified by 'cyb2';
授予cyb2用户,db1库的所有权限
grant all privileges on db1.* to 'cyb2'@'%' identified by 'cyb2';
刷新权限
flush privileges;
授予cyb3用户,db1库student的查询权限(只有增删改查权限,没有新建表、删除表权限)
语法:
创建用户
create user 'cyb3'@'%' identified by 'cyb3';
授予cyb3用户,db1库student,增删改查权限
grant select,update,delete on db1.student to 'cyb3'@'%' identified by 'cyb3';
刷新权限
flush privileges;
移除权限
语法:
revoke 权限1,权限2... on 数据库对象 from '用户'@'ip'
revoke all privileges on *.* from 'cyb'@'%';
flush privileges;
注意
这种移除权限,但是用户还是可以正常登陆的,如果让用户登陆都登不上,需要将mysql.user的记录删除!
Linux上Mysql数据库 用户权限控制的更多相关文章
- navicate 远程无法链接linux上mysql数据库问题
1. 先确认阿里云是否放开了3306权限 (开启阿里云服务器端口) 2. 连接linux,登录数据库:mysql -uroot -p 修改root用户远程登录权限: 想myuser使用mypasswo ...
- mysql数据库用户权限设置
设置用户权限:格式:grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' identified by '密码'; * 权限列表:用于列出授权的各种数据库操作,通过逗号进行分割,如 ...
- Mysql数据库用户及用户权限管理,Navicat设置用户权限
Mysql数据库用户及用户权限管理,Navicat设置用户权限 一.Mysql数据库的权限 1.1 mysql数据库用户权限级别 1.2 mysql数据库用户权限 1.3 存放用户权限表的说明 二.用 ...
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...
- 回顾:Linux环境 Mysql新建用户和数据库并授权
回顾:Linux环境 Mysql新建用户和数据库并授权 一.新建用户 //登录Mysql @>mysql -u root -p @>密码 //创建用户 mysql> insert i ...
- Linux - mysql 异常:登录不上mysql数据库
问题描述 重启虚拟机之后,用命令 mysql -u root -p 登录不上 mysql 数据库,页面显示: 但是,用命令 service mysqld status 可以查看状态 解决方案 1.查看 ...
- Linux下MySQL数据库的备份与恢复
Linux下MySQL数据库的备份与恢复 作者:Grey 原文地址: Github 语雀 博客园 基于版本 MySQL5.7 Deepin Linux 15.11 xtrabackup-2.4.18 ...
- Linux 操作mysql数据库 创建库 导入、删除表
确保线上的运行数据库是不可避免的本人小白,因公司上线没有办法自己去整服务器,深刻体会到服务器大神的霸气,所以为了增加记忆,服务广大员友记录一下 linux mysql 忘记root的密码无法登陆进my ...
- mysql grant用户权限设置
MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant sele ...
随机推荐
- 快速掌握Java8 Stream函数式编程技巧
函数式编程优势 "函数第一位",即函数可以出现在任何地方. 可以把函数作为参数传递给另一个函数,还可以将函数作为返回值. 让代码的逻辑更清晰更优雅. 减少了可变量(Immutabl ...
- Elasticsearch(5):添加文档
1 ES数据读写流程¶ ES中,每个索引都将被划分为若干分片,每个分片可以有多个副本.这些副本共同组成复制组,复制组中的分片在添加或删除文档时必须保持同步,否则,从一个副本中读取的数据将与从另一个 ...
- pv操作是否会造成死锁呢?
看了一些pv操作的例子,有一些基本原理不是想得很清楚. 有一个进程 while(true) { p(s); ...... v(s); } s的初值为1. 那么我的问题是,当多个该进程需要执行时,是否会 ...
- Vue (学习第四部 前端项目搭建流程 )
目录 客户端项目搭建 创建项目目录 初始化项目 安装路由 Vue-router 下载安装路由组件 配置路由 初始化路由对象 注册路由信息 在视图函数中显示路由对应的内容 路由对象提供的操作 页面跳转 ...
- 接收某项课程id,通过axios发起get请求,由于携带params出现的问题(已解决)
问题:在最新课程页面(NewBook.vue)点击某一项课程,通过传递该课程的 id 跳转至课程详情页(Bookdetail.vue),采取的跳转方式是声明式导航,即 <router-link ...
- Redis中的跳表
date: 2020-10-15 14:58:00 updated: 2020-10-19 17:58:00 Redis中的跳表 参考网址1 参考网址2 redis 数据类型 zset 实现有序集合, ...
- Java进阶面试
消息中间件: 1.你们公司生产环境用的是什么消息中间件? https://mp.weixin.qq.com/s?__biz=MzU0OTk3ODQ3Ng==&mid=2247484149&am ...
- 最新主流 Markdown 编辑器推荐
Markdown ,2004年由 John Gruberis 设计和开发,是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,以下将介绍目前比较流行的一 ...
- 【总结】springmvc
一.springmvc 1.基本概念 springmvc属于三层架构(表现层,业务层,持久层)的表现层.mvc指model,view,controller.Model(模型) : 通常指的是数据模型 ...
- 「newbee-mall新蜂商城开源啦」 页面优化,最新版 wangEditor 富文本编辑器整合案例
大家比较关心的新蜂商城 Vue3 版本目前已经开发了大部分内容,相信很快就能够开源出来让大家尝鲜了,先让大家看看当前的开发进度: 开源仓库地址为 https://github.com/newbee-l ...