mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解
一、mariadb安装
1、配置mariadb源:
[root@ren7 ~]# vim /etc/yum.repos.d/mariadb.repo
[mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64/ gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1
2、yum安装(下载时该大写的必须大写):
[root@ren7 ~]# yum -y install MariaDB
3、安装完成后需要重启mariadb:
[root@ren7 ~]# systemctl restart mariadb
4、初始化数据库(安全配置向导):
[root@ren7 ~]# mysql_secure_installation
运行mysql_secure_installation会执行几个设置:
--为root用户设置密码
--删除匿名账号
--取消root用户远程登录
--删除test库和对test库的访问权限
--刷新授权表使修改生效
5、客户端程序:
mysql---交互式的client工具
mysqldump---备份工具,基于mysql协议向mysqld服务发起查询请求,并将查询的所有数据转换成insert等写操作语句保存在文件当中
mysqladmin---基于mysql协议管理mysqld
mysqlimport---数据导入工具
二、启停数据库语句
1、启动服务
[root@ren7 ~]# systemctl start mariadb
2、关闭服务
[root@ren7 ~]# systemctl stop mariadb
3、重启服务
[root@ren7 ~]# systemctl restart mariadb
4、mysql的重启
[root@ren7 ~]# systemctl restart mysqld
三、连接数据库语句
1、mysql -u root -p
表示使用root用户(mysql的root用户,非系统root用户)连接到mysql数据库,-u表示指定用户,-u和root用户名之间的空格可以省略,-p表示将会提示输入密码
2、mysql -u root -p123
表示使用root用户连接数据库,并且直接以明文的方式指定密码,123为密码,-p与密码之间不能有空格
3、mysql -u root -D mysql -p 123
表示在连接mysql数据库时,可以直接指定将要登录的具体的数据库,使用-D指定数据库名称
4、mysql -u root -p -S /var/lib/mysql/mysql.sock
在本地连接到mysql数据库时,可以指定通过哪个套接字文件连接到数据库,通过-S指定套接字位置
5、mysql -u root -p -h 192.168.1.103 -P 3306
在连接到mysql数据库时,可以指定要连接到远程的哪一台主机的mysql上,也可以指定端口,-h指定mysql主机,-P大写,指定mysql服务对应的端口,连接的前提是已经授权当前客户端的IP地址能够连接到数据库
6、mysql -u root -p123123 -e 'use mysql; select user,host,password from user;'
连接数据库的同时执行对应命令,并且返回命令对应的结果,并不会进入mysql提示符
7、退出连接:
exit或者quit(\q)或者Ctrl+D
连接数据库的常用选项:
--host=host_name, -h host_name:服务端地址;
--user=user_name, -u user_name:用户名;
--password[=password], -p[password]:密码
--port=port_num, -P port_num:服务端端口;
--socket=path, -S path:套接字位置;
--database=db_name, -D db_name:要进入的数据库名称;
--compress, -C:数据压缩传输;
--execute=statement, -e statement:非交互模式执行SQL语句;
--vertical, -E:查询结果纵向显示;
--protocol={TCP|SOCKET|PIPE|MEMORY}
四、用户管理语句
1、mysql的用户账号格式:username@host
上述格式表示username对应的用户能够通过哪个host登录mysql
host:此mysql用户能够通过哪些客户端主机IP登录当前服务器上的mysql服务,对于mysql来说,host可以为主机名,也可以为IP地址,但是,mysql认为主机名和IP地址属于不同的主机;
支持通配符,常用得通配符:
_: 表示任意单个字符
%: 表示任意长度的任意字符
例子:
root@’192.168.%.%’
2、查询用户
查看当前用户:select user();
MariaDB [ren]> select mysql.user.user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ren4 | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ren3 | 127.0.0.1 | *14B20454C89BC49370889C5B1CE9441993ADFB14 |
| ren5 | localhost | |
| ren6 | ren7 | |
| ren7 | ren7 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+-----------+-------------------------------------------+
8 rows in set (0.00 sec)
3、创建用户
方法一:使用create user命令创建用户
MariaDB [mysql]> create user 'ren6'@'%';
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> create user 'ren7'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
方法二:在授权数据库的同时,如果对应的用户不存在,那么mysql将会自动创建对应的用户
MariaDB [ren]> grant all on ren.* to ren10@'%' identified by 'ren10';
Query OK, 0 rows affected (0.00 sec)
方法三:直接在mysql库的user表中插入一条记录,这种方法使用较少,且在设置了严格的sql-mode以后就无法使用
MariaDB [ren]> insert into mysql.user(user,host,password) values('ren11','%',password('123'));
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
当前数据库的sql-mode设置了严格检查(如RADITIONAL)
4、删除用户
通常使用drop命令删除用户,也可以直接删除mysql.user表中对应用户的记录;drop删除的更加彻底。
方法一:使用drop user命令删除对应用户(用户及用户对应的权限都将被删除)
MariaDB [ren]> drop user ren3@127.0.0.1;
Query OK, 0 rows affected (0.00 sec)
方法二:使用delete语句删除mysql.user表中的用户对应的记录,但是使用此方法会有相关信息残留
MariaDB [ren]> delete from mysql.user where user='ren10' and host='%';
Query OK, 1 row affected (0.00 sec)
但是,如果某些数据库的权限已经授权给了“ren10@’%’”用户,那么,在mysql.db表中,“ren10@’%’”用户对应的权限将不会被删除,当管理员想要再次创建“ren10@’%’”用户时,则会出现出问题,如果管理员想要使用create user命令再次创建同名用户时,可能会出现如下错误:
MariaDB [ren]> create user ren10@'%';
ERROR 1396 (HY000): Operation CREATE USER failed for 'ren10'@'%'
解决方案一:删除mysql.db表中原“ren10@’%’”用户残留的权限数据后,使用flush privileges命令刷新,然后再次使用create user命令创建新的“ren10@’%’”用户(也就是将原“ren10@’%’”用户的残留数据删除干净,相当于drop)
解决方案二:使用grant命令授权“ren10@’%’”用户能够访问任意数据库即可,如果授权用户的数据库与原来残留的权限所对应的数据库不是同一个库,残留的权限就会被新的创建的“ren10@’%’”用户所获得;因为新用户和旧用户名称相同,所以新的“ren10@’%’”用户会继承被删除同名用户的权限。
5、重命名用户
格式:rename user OldNAME to NewNAME;
重命名后的用户密码以及权限不会发生改变,只有用户名会发生改变。
五、密码管理语句
修改或设置mysql用户的密码有以下几种方法:
方法一:管理员在系统命令行中使用mysqladmin命令设置mysql用户的密码。
语法格式:mysqladmin -u用户名 -p旧密码 password
[root@ren7 ~]# mysqladmin -uren7 -p123 password123456
方法二:set password for '用户名'@'IP地址' = Password('新密码')
MariaDB [(none)]> set password for ren5@'localhost'=password('123123');
Query OK, 0 rows affected (0.00 sec)
方法三:修改mysql.user表中对应用户的password字段
命令格式:update mysql.user set password=password(‘PASSWORD’) where user=’USERNAME’
示例:
MariaDB [(none)]> update mysql.user set password=password('111111') where user='ren7';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
注意:有的版本中的password替换为了authentication_string
六、权限管理
1、授权命令
语法格式:
GRANT ALL [PRIVILEGES] ON db.tbl TO 'username'@'host' IDENTIFIED BY 'password';
其中,db表示数据库名字,可以使用*通配符,tbl为表的名称,可以使用*通配符。
(1)给ren5用户添加查询,创建,更新,删除的权限给test03库的grade表(在任意主机上)
grant select,create,update,delete on test03.grade to ren5@'%';
(2)给ren5赋予test03数据库的grade表最高权限(在任意主机上)
grant all privileges on test03.grade to ren5@'%';
(3)给ren5赋予ren数据库的所有权限,在192.168.0.0网段中(只允许ren5用户通过该网段的地址链接ren数据库)
grant all privileges on ren.* to ren5@’192.168.%.%’ identified by ‘123’
(4)将同样的权限同时授权给多个用户
grant select on ren.* to ren5@localhost,ren7@localhost;
(5)只对某张表的某个字段授权
grant select (name,age) on ren5@localhost;
(6)如果ren数据库中有一张表的名称为test,同时,ren数据库中有一个函数也叫test,那么可以通过function关键字只授权给用户test函数,而不将表的权限授予用户
grant execute on function ren.test to ren5@’192.168.11.%’;
(7)可以使用procedure关键字,指明被操作的对象是存储过程
grant execute on procedure ren.test to ren5@’localhost’;
(8)使用function关键字和procedure关键字可以对函数或者存储过程授权,使用view关键字可以对视图进行授权
(9)当一个用户被创建时,mysql会自动授予其usage权限。usage权限只能用于登录数据库,不能执行其他操作
(10)如果用户有可能会跨越不安全的网络连接到数据库,可以强制用户使用ssl建立会话,命令如下:
grant usage on *.* to ‘ren5’@’192.168.11.11’ require ssl;
取消ssl连接限制:
grant usage on *.* to ‘ren5’@’192.168.11.11’ require none;
(11)如果在授权ren5用户时,搭配了grant选项,则ren5用户有权将已拥有的权限授予给其他用户(一般不会使用)
grant select on ren.* to ren5@’192.168.%.%’ with grant option;
(12)管理员可以通过选项对用户进行一些限制
max_queries_per_hour #限制用户每小时执行的查询语句数量;
max_updates_per_hour #限制用户每小时执行的更新语句的数量;
max_connections_per_hour #限制用户每小时连接数据库的次数;
max_user_connections #限制用户使用当前账号同时连接服务器的连接数量;
使用flush privileges命令刷新
2、查看授权
查看授权可以从两方面查看:1、从用户的角度查看授权,查看权限表示查看对应用户都能操作哪些数据库;2、从数据库的角度查看权限表示指定数据库都对哪些用户开放了哪些权限
(1)从用户的角度查看授权的语句
语法格式:
show grants for 用户名;
(2)从数据库的角度查看授权:
语法格式:
select * from mysql.db where Db="你要查看的数据库"
(3)查看自己的权限
show grants;
3、删除授权
删除授权/撤销授权的常用语句:
revoke "要移除的权限" on 数据库.表 from 用户@host;
例子:
MariaDB [mysql]> revoke all on ren.* from ren4@'%';
转载于:https://www.cnblogs.com/renyz/p/11431752.html
mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解相关推荐
- mysql切换用户sql语句,MySQL用户管理及SQL语句详解
[(none)]>select user,host frommysql.user; #查询用户和主机+---------------+-----------+ | user | host | + ...
- mysql 安全配置 centos_CentOS下安装MySQL5.6.10和安全配置教程详解
注:以下所有操作都在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装MySQL之前,请确保已经使用yum安装了以下各类基础组件(如果系统已自带,还可以考虑yum update下基 ...
- win8 64 mysql下载教程_windows下安装mysql-8.0.18-winx64的教程(图文详解)
1.下载安装包 安装包现在地址: https://dev.mysql.com/downloads/mysql/ 2.解压缩至安装目录 解压缩下载之后的zip,我这里使用的安装路径为: C:\Progr ...
- MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解
本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL逻辑架构 1.逻辑架构图 基于下面的逻辑架构图,可以大致熟悉MySQL各个架构组件之间的协同工作关系. 很经典的C/S架构风格, ...
- MySQL基础篇(04):存储过程和视图,用法和特性详解
本文源码:GitHub·点这里 || GitEE·点这里 一.存储过程 1.概念简介 存储程序是被存储在服务器中的组合SQL语句,经编译创建并保存在数据库中,用户可通过存储过程的名字调用执行.存储过程 ...
- MYSQL 更改数据库data存储目录 创建用户 创建权限 设置远程访问的权限.
一. 怎么更改数据库data存储目录: 1. 安装MYSQL. 2. 切换到 C:\Program Files\MySQL\MySQL Server 5.6 3. 新建my.ini. 加入如下配置: ...
- mysql基础(DQL语言、DML语言、DDL语言)详解
DQL语言:数据库查询语言 分组查询:Group by 和分组函数搭配使用: 案例:通过部门编号筛选每个部门的平均工资 Select department_id,avg(salary) where 表 ...
- mysql安装后目录介绍,MySQL安装后的目录结构及配置文件详解
MySQL安装后的目录结构及配置文件详解 MySQL安装后的目录结构及配置文件详解 MySQL目录结构说明 MySQL 安装完成后,会在磁盘上生成一个目录,该目录就被称为 MySQL 的安装目录. M ...
- 002-windowa基础(DOS命令:net user 用户 密码 /add)
002-windowa基础(DOS命令:net user 用户 密码 /add) 思路:1.用命令创建系统新用户:2.将创建的新用户加入到管理员组:3.用新用户登录 声明:本文所有内容仅供学习参考,请 ...
- mysql压缩包删除_mysql解压缩方式安装和彻底删除的方法图文详解
一.安装mysql (1)将下载下来的mysql压缩文件解压缩到需要安装mysql的目录中 (2)打开解压后的文件夹,复制default.ini文件并重命名为my.ini,此文件的相关配置为: (3) ...
最新文章
- (简要介绍)Winograd schema challenge(Winograd question)
- 比特币现金(BCH),存在网络上的隐形矿工哈希率分布
- 兼容性好的CSS字体投影
- 【存储技术大杂烩】谈谈FC-SAN、IP-SAN、DAS、NAS几种存储技术
- python 表单中值为空的还需要传入么_牛掰!100行Python,自动动手打造一款多国语言翻译软件...
- 作风和个性特点伪原创工具
- Python实现霍夫曼树
- 大型分布式架构详解:架构模式+敏捷性+可扩展+案例等
- 什么是机器学习---人工智能工作笔记0012
- 苹果或推中国特色版 iPhone;小米回应萌拍抄袭苹果事件;微软停止审核发布 Windows Phone 8.x | 极客头条...
- iOS开发进阶-实现多线程的3种方法
- PhotoShop - 建立剪切蒙版
- 谷粒商城笔记+踩坑(17)——【认证模块】登录,用户名密码登录+微博社交登录+SpringSession+xxl-sso单点登录
- HDU 6146:Pokémon GO
- [数据压缩作业1]利用Audacity分析浊音、清音、爆破音|RGB文件三通道分量的熵计算
- python制作自己的专属二维码
- linux 查看当前用户和组的信息,Linux查看所有用户和组信息
- VMware虚拟机的安装、创建及CentOS 7的安装
- VisualGDB的基本使用
- 基于JavaSwing坦克大战游戏的设计和实现