数据库之mariadb整体概述

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、数据库的安装方式及其安装步骤 

1、安装方式 

rpm包安装,yum安装,二进制包安装,编译安装   

2、安装步骤 (本文是使用二进制包安装)

1)下载mariadb相应版本的数据库,解压 

tar xf mariadb-5.5.48-linux-86_64.tar.gz -C /usr/local/ 

2)创建软链接及其创建用户和存放数据目录和授权其目录文件 

cd /usr/local 

ln -sv mariasb-5.5.48 mysql 

chown -R root.mysql mysql

groupadd -r mysql 

useradd -r -g mysql mysql 

mkdir /mydata/data -pv  

chown -R mysql.mysql /mydata/data 

3)给数据库提供配置文件及其启动脚本 

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf  

cp /usr/local/mysql/support-files/my.server /etc/init.d/mysqld 

chkconfig --add /etc/init.d/mysqld  

chkconfig mysqld on  

4)给/etc/my.cnf加上如下项

datadir=/mydata/data

skip-name-resolve=ON 

innodb-file-per-table=ON  

5)初始化数据库及其启动数据库

/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data

service mysqld start   

6)执行mysql_secure_installation命令设置密码及其删除匿名用户等操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@centos6 ~] # mysql_secure_installation
/usr/bin/mysql_secure_installation : line 379: find_mysql_client:  command  not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password  for  the root user.  If you've just installed MariaDB, and
you haven't  set  the root password yet, the password will be blank,
so you should just press enter here.
Enter current password  for  root (enter  for  none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password  set , so you can safely answer  'n' .
Change the root password? [Y /n ] n
  ... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created  for
them.  This is intended only  for  testing, and to  make  the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous  users ? [Y /n ] y
  ... Success!
Normally, root should only be allowed to connect from  'localhost' .  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y /n ] n
  ... skipping.
By default, MariaDB comes with a database named  'test'  that anyone can
access.  This is also intended only  for  testing, and should be removed
before moving into a production environment.
Remove  test  database and access to it? [Y /n ] n
  ... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y /n ] y
  ... Success!
Cleaning up...
All  done !  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks  for  using MariaDB!


二、MariaDB基础 

1、配置文件查找次序

/etc/my.cnf/-->/etc/mysql/my.cnf-->~/.my.cnf  

2、mariadb的命令行交互式客服端工具 

mysql[options] [database] 

常用选项: 

 -u:username,用户名,默认为root 

 -h:host远程主机或地址,默认为localhost  

 -p:password,用户的密码 

 -D:database_name,设置指定连接库

 -e:直接在命令行运行mysql数据库中的命令

实例:mysql -uroot -hlocalhost -p mysql -utestuser -h10.1.%.% -p  mysql -uroot -p -e 'show databases';


图示: 



wKiom1f6M8KCVSUdAABOyFt9PbE176.png


3、mariadb数据库命令行客服端命令

常用帮助参数如下注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@centos7 ~] # mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection  id  is 19
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
MariaDB [(none)]>
MariaDB [(none)]> \?  #获取帮助也可使用help命令
General information about MariaDB can be found at
http: //mariadb .org
List of all MySQL commands:
Note that all text commands must be first on line and end with  ';'
?         (\?) Synonym  for  `help'.  #获取帮助信息
clear      (\c) Clear the current input statement.  #清除当前行的输入
connect   (\r) Reconnect to the server. Optional arguments are db and host.  #重连数据库
delimiter (\d) Set statement delimiter.
edit      (\e) Edit  command  with $EDITOR.
ego       (\G) Send  command  to mysql server, display result vertically.  #竖立显示信息
exit       (\q) Exit mysql. Same as quit.  #退出当前的数据库
go        (\g) Send  command  to mysql server.  #发送命令到数据库
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current  command .
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\ #) Rebuild completion hash.
source     (\.) Execute an SQL script  file . Takes a  file  name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell  command .
tee        (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed  for  processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help,  type  'help contents'
MariaDB [(none)]>


4、数据库常用数据类型 

1)字符型 

char,varchar,binary,varbinary,txt,blob...

2)数值型

int,float,double,tinyint... 

3)枚举型 

set,enum  

4)时间日期型

date,time,datetime,timestamp,year  

5)数据类型修饰符

unsigned,not null,default  


三、服务端命令

1、数据定义语言(DDL),主要用于管理数据库组件,例如索引,视图,用户,存储过程,主要命令有:create,alter,drop。

对库的操作:

创建:create 

create {database|schema} [if not exists] db_name 

修改:alter 

alter {database|schema} [db_name] 

删除:drop 

drop {database|schema} [if exists] {db_name}


查看支持的字符集:show character set 

查看支持的所有排序的规则:show collation;


图示: 



wKiom1f6PTOChDL-AABWNXN9UA0968.png


对表的操作: 

创建表: 

create [temporary] table [if not exists] tbl_name 


修改表:

alter [online|offline] [ignore] table tbl_name  

字段:   

    添加:add [column] col_name column_definition  

    删除:drop [column] col_name 

    修改:change [column] old_col_name new_col_name column_definition 

              modify [column] col_name column_definition 

键:

    添加:ADD [CONSTRAINT [symbol]] PRIMARY KEY 

      add {primary key unique key foreign}(col1,col2...)

    删除:

主键:drop primary key   

外键:drop foreign key fk_name

索引:

    添加:add {index|key} {index_name} 

    删除:drop {index|key} index_name  


主要实例如下:

1
2
3
4
5
6
7
8
9
10
create database testdb; 
use testdb;
create table  if  not exists students( id  int unsigned NOT NULL primary key, name char(20) NOT NULL, age tinyint unsigned, gender enum( 'f' , 'm' ));
alter table students add class varchar(20) not null after age;  
alter table students change gender sex enum( 'f' , 'm' );
alter table students modify class char(30) after sex; 
alter table students drop primary key ;
alter table students add primary key( id ,name);
alter table students add index class (class);
alter table students drop index class;


图示:


创建库、表及其查看表结构

wKiom1f6RNaiG3RYAABhAB-QWb8505.png

添加和修改字段名字及其类型

wKiom1f6RgTznra9AABnLBLzdRw990.png

修改主键及其添加主键

wKioL1f6RvaAm4AtAABzvkE08u4908.png

查看建表信息及其表的状态信息

wKioL1f6SROw6bUeAABbsoVbSbI883.png


2、数据操纵语言(DML),主要用于管理表中的数据,实现数据的增删改查。

插入数据:insert into 

    insert into tbl_name [cols....] values (val1,val2,...)

实例:insert into students (id,name) value (1,'alren');

          insert into students values (2,'alren',29,'m','one');

查询数据: select 

    select [col1,col2,...] from tbl_name where clause;  

实例:select * from students where id=1; 

          select name,age from students where age>11 and age<20; 

          select name,age from students where age between 11 and 20; 

          select name,age from students where name rlike 'en$'; 

          select age,sex from students where age is not; 

          select age,sex from students where age is not null; 

          select id,name from students order by id desc; 

          select id,name,age from students order by id asc;  

 更新数据:update 

    update [low_priority] [ignore] table_reference   

          update students set age=age+10 where name like '%lren'; 

删除数据:delete from  

    delete from tbl_name where clause; 

    delete from students; #删除表中的所有数据,很危险,谨慎操纵。  

    delete from students order by age desc limit 20;    


图示:


修改表为自增长

wKioL1f6UCSiUlchAAA1cYQ6aPY414.png

插入数据两种方式

wKiom1f6UF3hwWfoAAAsTS0rFsE055.png

查询表中数据

wKiom1f6UomDHJAIAAA5hye4Lo4226.png

更新数据

wKioL1f6U32A8y5hAAA5hye4Lo4766.png

删除数据

wKiom1f6VDexKF27AAA5hye4Lo4388.png


四、创建用户及其授权管理 

1、创建用户账号 

create user 'username'@'host' [indentified by 'password'] 

实例:create user 'testuser'@'10.1.10.%.%' identified by 'pass';   

2、删除用户账号 

DROP USER user [, user] ...

drop user 'username'@'host' 


图示:


删除和授权用户

wKiom1f6WBLg-vTjAAByc9Rw_Ag292.png

测试是否授权成功

wKiom1f6WL7TNOk4AABtpTqRn4U205.png

远程登录测试成功

wKiom1f6Wl6jIWZgAABeyXLiIWg686.png


3、授权管理 

grant privileges_type on [object_type] db_name.tabl_name to 'username'@'host' identified by 'password'

privileges_type:all,create,alter,drop,delete,update,insert,select  

库表的对应有如下关系:db_name.tbl_name

    *.*:所有库的中的所有表 

    db_name.*:指定库的所有表 

    db_name.tbl_name:指定库的指定表 

    db_name.routine_name:指定库上的存储函数或过程


图示:


创建test用户为其授权测试

wKiom1f67jXALciaAABzAgWgVrw391.png授予test用户所有的权限

wKiom1f67p3yI04iAABSVypRay0964.png

回收用户权限 

wKioL1f6743CsgFYAABIm5H5jok489.png

查看当前用户及其指定用户授权信息

wKiom1f68H6i0MO5AABK8A7UWVo560.png

授权一用户只给查询和插入权限,则除此权限外其他权限均无    

wKiom1f69FLyRgxVAABqZT-olmo029.png


本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1860056,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
24 5
|
15天前
|
SQL 关系型数据库 MySQL
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
13 0
|
15天前
|
存储 关系型数据库 MySQL
MySQL数据库——索引(1)-概述以及B-Tree结构
MySQL数据库——索引(1)-概述以及B-Tree结构
13 0
|
15天前
|
SQL 存储 关系型数据库
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)二
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)二
23 0
|
15天前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(1)-多表关系(一对多、多对对多、一对一)、多表查询概述(概念、笛卡尔积、分类)
MySQL数据库——多表查询(1)-多表关系(一对多、多对对多、一对一)、多表查询概述(概念、笛卡尔积、分类)
21 0
|
15天前
|
存储 关系型数据库 MySQL
MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)
MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)
19 0
|
15天前
|
SQL 关系型数据库 MySQL
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
33 0
|
21天前
|
存储 SQL 数据挖掘
数据模型概述与数据库基础
数据模型是描述现实世界数据对象结构的形式化、真实和易理解的表示。分为概念模型(信息模型)和数据模型,前者面向用户,后者关注计算机实现。数据库是结构化、共享、低冗余的数据集合,提供数据独立性。数据库管理系统(DBMS)负责数据的存储、访问和管理,而数据库系统(DBS)包括数据库、DBMS、应用系统、DBA和用户。数据库系统开发涉及需求分析、系统设计(概念设计、逻辑设计、物理设计)、系统实现和运行维护(数据更新、备份、分析等)。
14 0
|
1月前
|
存储 关系型数据库 MySQL
数据库期末考试基础——数据库系统概述
数据库期末考试基础——数据库系统概述
21 2
|
1月前
|
存储 NoSQL 物联网
【MongoDB】MongoDB 数据库概述
【4月更文挑战第1天】【MongoDB】MongoDB 数据库概述
【MongoDB】MongoDB 数据库概述

热门文章

最新文章