数据库之mariadb整体概述

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
135 5
|
5月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
67 1
|
3月前
|
存储 关系型数据库 MySQL
Maria DB Workbench支持哪些数据库引擎
【10月更文挑战第17天】Maria DB Workbench支持哪些数据库引擎
39 0
|
4月前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
60 0
|
5月前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
656 0
|
5月前
|
SQL Ubuntu 关系型数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
69 0
|
7月前
|
存储 关系型数据库 MySQL
深入OceanBase内部机制:高性能分布式(实时HTAP)关系数据库概述
深入OceanBase内部机制:高性能分布式(实时HTAP)关系数据库概述
|
7月前
|
SQL 关系型数据库 MySQL
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
120 0
|
7月前
|
存储 关系型数据库 MySQL
MySQL数据库——索引(1)-概述以及B-Tree结构
MySQL数据库——索引(1)-概述以及B-Tree结构
38 0
|
7月前
|
SQL 存储 关系型数据库
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)二
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)二
48 0