Linux新手随手笔记2.9-使用MariaDB数据库管理系统

甲骨文公司 (数据库公司,不是考古公司啊,哈哈哈)  oracle

他的产品有my sql(后来收购的,原来是sun公司的)

后来就出现了MariaDB其实和my sql差不多。

初始化mariaDB服务

我们先安装Mariadb数据库主程序和服务端程序,

然后我们重启mariadb服务并且添加到开机启动项

在确认MariaDB数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面5个步骤。

  1. 设置root管理员在数据库中的密码值(注意,该密码并非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键)。

  2. 设置root管理员在数据库中的专有密码。

  3. 随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。

  4. 删除默认的测试数据库,取消测试数据库的一系列访问权限。

  5. 刷新授权列表,让初始化的设定立即生

/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.
Set root password? [Y/n] y
New password:输入要为root管理员设置的数据库密码
Re-enter new password:再次输入密码
Password updated successfully!
Reloading privilege tables..
 ... Success!
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] y(禁止root管理员从远程登录)
 ... Success!
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] y(删除test数据库并取消对它的访问权限)
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
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数据库。其中,-u参数用来指定以root管理员的身份登录,而-p参数用来验证该用户在数据库中的密码值,并且是在下一行来输入密码。

这里要注意,我们数据库命令后面都是要以;做结尾。

下面我们执行show databases来查看数据库管理系统中有哪些数据库。

刚才我们已经设置好了root的密码,然后我们现在重置一下root密码。

然后我们用set password = password ('redhat');来进行修改root用户密码为redhat,我们原来是123456,别忘了分号。

然后我们再重新登陆一下。

可以看到我们的123456上不去了,redhat没问题,修改成功。

在生产环境中总不能一直“死啃”root管理员。为了保障数据库系统的安全性,以及让其他用户协同管理数据库,我们可以在MariaDB数据库管理系统中为他们创建多个专用的数据库管理账户,然后再分配合理的权限,以满足他们的工作需求。为此,可使用root管理员登录数据库管理系统,然后按照“CREATE USER 用户名@主机名 IDENTIFIED BY '密码'; ”的格式创建数据库管理账户。再次提醒大家,一定不要忘记每条数据库命令后面的分号(;)

不过我们现在这个新建的用户仅仅是一个没有权限的用户,我们需要给他赋予权限

然后我们用grant 命令镜像授权,就是授权查,改,删,插入权限。对于mysql数据库的。然后* 是表示全部,就是mysql里面全部表,你也可以写成user只对这一个表。然后是给laoji这个用户授权的,@后面是本地账户的意思。

                                                       GRANT命令的常见格式以及解释

命令 作用
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 对某个特定数据库中的特定表单给予授权
GRANT 权限 ON 数据库.* TO 用户名@主机名 对某个特定数据库中的所有表单给予授权
GRANT 权限 ON *.* TO 用户名@主机名 对所有数据库及所有表单给予授权
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名 对某个数据库中的所有表单给予多个授权
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 对所有数据库及所有表单给予全部授权(需谨慎操作)

然后做好之后我们重新登陆一下,这次登录laoji这个用户。

然后我们show databases看一下。

我们看到多出来这个mysql数据库的权限,开始是没有的,可以翻上去看。这里我们忘了写分号,然后执行是出不来结果的,然后你再加上就好了。

同样我们可以使用use mysql来切换到这个数据库里面进行查看表。

这说明我们可以对里面的表进行增删改查了。

然后我们再登录root用户

既然我们可以赋予别人权利,那么就可以收回,用revoke命令。

那么我们现在再登陆一下laoji用户看一下。

我们可以看到,mysql数据库没了,连看都看不到了,别说其他操作了。

创建数据库与表单

然后我们切换到root用户下

在MariaDB数据库管理系统中,一个数据库可以存放多个数据表,数据表单是数据库中最重要最核心的内容。我们可以根据自己的需求自定义数据库表结构,然后在其中合理地存放数据,以便后期轻松地维护和修改。

                                                                     用于创建数据库的命令以及作用

用法 作用
CREATE database 数据库名称。 创建新的数据库
DESCRIBE 表单名称; 描述表单
UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值; 更新表单中的数据
USE 数据库名称; 指定使用的数据库
SHOW databases; 显示当前已有的数据库
SHOW tables; 显示当前数据库中的表单
SELECT * FROM 表单名称; 从表单中选中某个记录值
DELETE FROM 表单名 WHERE attribute=值; 从表单中删除某个记录值

我们看到现在我们有个3个数据库。

然后我们创建出来一个linux数据库,再查看我们就看到多出来一个数据库。

然后我们切换到linux数据库

然后我们创建一个表单,表单名称我们就起book吧。

然后格式就是create table 表名 (字段1 字段类型,字段2 字段类型,.....);其中我们name书名类型为15个字节以内,也就是char(15)类型,然后价格和页数都是整数类型int.

那么我们创建好这个表单了,但是怎么知道这个表单格式就有了呢,那么我们就描述一下我们这个表单。用desc也可以,不用写全describe。

管理表单及数据

既然我们创建出来这个表了,那么我们添加几条数据进去。添加sql是insert into 表名(字段1,字段2,字段3,.......)values('值1','值2','值3',......)

我们插入4条数据。

我们先全部查询一下。

这样他的信息就都会显示出来。

那么我们怎么精确查询呢,我不想要全部的数据,我只想要某个范围的或者某条数据的,那么我们就要加上where条件来查询。

这样我们就可以查询到chuanqi这本书这一条数据,

这样就可以查询出价格小于90块钱的书籍有哪些。

这样写就是单独查询出来我们书名和页数,不显示价格。

                                          where命令中使用的参数以及作用

参数 作用
= 相等
<>或!= 不相等
> 大于
< 小于
>= 大于或等于
<= 小于或等于
BETWEEN 在某个范围内
LIKE 搜索一个例子
IN 在列中搜索多个值

下面我们改一下这些数据,比如说我们想修改这本书的价格。我们用update

我们看到这样就把chuanqi这本书的价格从80修改到50了。

那么如果我们想全部修改成为一个值得话就不用加条件,直接修改。

这样就全部修改成50了,这样做很危险。

然后我们删除,delete.

这样做是删除某一条数据,就是我们删除表中的叫做wangzhe3的这条数据。

如果不加条件就是清空整张表。

数据库的备份及恢复

我们先再插入随便的几条数据。

下面我们说一下数据库的备份与恢复。

我们先退出数据库,然后进行备份,如下

用命令mysqldump ,-u定义我们登录数据库的账户名称,我们这里是root,-p是密码提示,后面是要备份的数据库名称,我们备份linux数据库。然后我们被分到/root/目录下。名字叫做linuxDB.dump。

我们看一下,已经有了这个文件了。

接下来我们进入root账户把数据库删除掉。

然后们先重新建立一个linux数据库,(里面是没有数据的哦)

接下来是见证数据恢复效果的时刻!使用输入重定向符把刚刚备份的数据库文件导入到mysql命令中,然后执行该命令。接下来登录到MariaDB数据库,就又能看到linux数据库以及book数据表单了。数据库恢复成功!

这样就有了,非常nice。这也是我们运维基本的知识。

原文地址:https://www.cnblogs.com/hshyx/p/10884191.html