zoukankan      html  css  js  c++  java
  • linux初学者-数据库管理MariaDB篇

     

    linux初学者-数据库管理MariaDB篇

            MariaDB是一种数据库管理系统,是MySQL的一个分支,但是比MySQL更加优秀,可以说是MySQL的替代品。MariaDB使用的是SQL语句。下文将会对MariaDB的安装,设置,一些基本的SQL语句进行简要的概述。

      1、安装

            在有yum源的前提下,输入"yum install mariadb-server.x86_64 -y"可以安装MariaDB数据库,不同的系统可能有不同的版本。

      2、安全设置

            因为MariaDB是一个数据库管理系统,所以安全是必须的,最基本的安全设置有以下两个步骤。

            第一个步骤,输入"netstat -antple | grep mysql"查看网络端口是否打开,如下图所示,是打开的。编辑配置文件"/etc/ym.cnf",在下图位置输入"skip-networking=1"来关闭端口,重启服务后再查看,网络端口关闭。

            第二个步骤,输入"mysql_secure_installation"来设置root用户的登陆密码,如下图所示,输入两次密码后,系统会询问一些问题,为了安全考虑,建议全部选择"Y"。

            上述两个步骤完成后,系统的网络端口关闭,且root用户需要输入密码才能登陆数据库。

      3、数据库的使用

            前以叙述,MariaDB是数据库的管理系统,且使用的是SQL语句,下面将叙述在数据库的使用中常用的SQL语句,一般规范的SQL语句是需要大写的,但小写也可以使用。在这里为了方便,不作区分。

        3.1、数据库的查询

            "show datebases;",显示数据库。

            "use mysql;",进入一个数据。

            "show tables;",显示数据库里的表格。

            "desc user;",查看一个表格名为"user"的信息。

            "select * from user;",查看这个名为"user"的表格的所有内容。

            "select * from user where Host='127.0.0.1';",查看这个名为"user"的表格中"Host"是"127.0.0.1"的部分。

            "select Host,Process_priv from user",从"user"表格中查看"Host"和"Process_priv"两个字段。

         3.2、数据库中的创建

            "create database hello;",创建一个名为hello的数据库。

            "create table userinf(*);",进入hello数据库中后,创建一个名为"userinf"的表格,如下图所示,表格的格式和内容可以自己编写。

            "insert into userinf values ('tom','111','20');",在这个"userinf"表格中插入值,如下图所示,可以为空的表格中插入值可以不写入值,但必须有格式,例如下图。

         3.3、数据库中的修改

             目前数据库的名称是无法更改的,只能先对该数据库的数据进行备份,然后重新建立新的数据库,将数据导入进去。

             "alter table userinf rename information;",将表格"userinf"的名称改为"information"。

             "alter table userinf add class varchar(50);",在表格"userinf"的最后添加一列"class"。

             "alter table userinf drop class;",删除表格"userinf"的"class"列。

             "alter table userinf add class varchar(50) after username;",在表格"userinf"中的"username"列后添加"class"列。

             "update userinf set class='3';",将表格"userinf"中"class"列的数据全部改为"3"。

             "pdate userinf set class='1' where username='tom';",将表格"userinf"中"username"是"tom"的行的"class"改为"1"。

         3.4、数据库中的删除

             "delete from userinf where username='tom' and class='1';",删除"userinf"文件中"username"是"tom"且"class"是"1"的行。

             "drop table userinf;",删除表格"userinf"。

             "drop database hello;",删除数据库"hello"。

         4、数据库的备份与恢复

             在数据库的管理过程中,经常需要数据库的备份。

             "mysqldump -uroot -predhat WE > /mnt/WE.sql",可以对"WE"的数据库进行备份,将备份文件存在/mnt/WE.sql文件中。

             如下图所示,如果不小心删除了数据库"WE",那么就需要通过这个备份来恢复了。

            恢复备份时,先输入"mysql -uroot -predhat -e "create database WE;",来新建一个数据库"WE",或者其他名称也可以,也可以使用命令"create database WE;"在数据库内建立。

             输入"mysql -uroot -predhat WE < /mnt/WE.sql",就可以将原WE数据库中的数据导入到新的数据库中了。

         5、忘记root用户密码

             在数据库的管理中,如果忘记了root用户的密码就要对其重新进行设置,设置步骤如下所示:

              a、"systemctl stop mariadb"。停止MariaDB。

              b、"mysqld_safe --skip-grant-tables &"。启动安全模式,且跳过认证标。

              c、"mysqld"。不需要密码可以直接进入数据库,输入"use mysql"进入mysql数据库。

              d、"update user set Password=password('redhat') where User='root';"。修改"user"表中"root"用户的密码信息,"Password=password('redhat')"表示密码设为"redhat",前面的"password"表示对"redhat"进行加密。

              e、"ps ax | grep mysql","kill -9 PID"。强行结束掉"mysql"的所有进程。

             上述步骤完成后重新开启MariaDB,然后就可以输入就改后的密码登陆数据库了。

         6、设置用户和访问权限

              MariaDB的使用中,有时需要添加一些其他用户,使这些用户可以登陆,并且在数据库中拥有一定的权限。其具体做法如下所示。

              "create user we@localhost identified by 'redhat';"。表示创建一个用户,这个用户只可以从本机登陆,登陆密码为"redhat"。如果将其中的"we@localhost"改为"we@'%'",就代表可以从任何地方登陆。

              创建成功之后输入"select * from mysql.user where User='we'",就可以看到创建的这个用户信息。

              这个用户创建完成后没有进行授权,虽然可以登陆,但是看不到也修改不了数据库中的任何数据。

              "grant select on hello.* to we@localhost;",表示将"hello"数据库中的查看权限授权给"we"用户。

              "show grants for we@localhost;",可以查看指定用户的授权列表,如下所示,"we"用户有在"hello"数据库中的查看权力。如果授权了但是查看不到,输入"flush privileges;"可以重新加载授权表。

              授权过后的"we"用户重新登陆数据库就可以看到"hello"数据库中的数据了。还可以授予"insert"、"update"、"delete"和"drop"等权力,只有授予过的权力可以使用。

              "revoke select on hello.* from we@localhost;",表示撤销用户"we"的查看权力。

              "drop user we@localhost;",表示删除"we"用户,删除后再次输入"select * from mysql.user where User='we'"就看不到这个用户的信息了。

  • 相关阅读:
    PAT (Advanced Level) Practice 1100 Mars Numbers (20分)
    PAT (Advanced Level) Practice 1107 Social Clusters (30分) (并查集)
    PAT (Advanced Level) Practice 1105 Spiral Matrix (25分)
    PAT (Advanced Level) Practice 1104 Sum of Number Segments (20分)
    PAT (Advanced Level) Practice 1111 Online Map (30分) (两次迪杰斯特拉混合)
    PAT (Advanced Level) Practice 1110 Complete Binary Tree (25分) (完全二叉树的判断+分享致命婴幼儿错误)
    PAT (Advanced Level) Practice 1109 Group Photo (25分)
    PAT (Advanced Level) Practice 1108 Finding Average (20分)
    P6225 [eJOI2019]异或橙子 树状数组 异或 位运算
    P4124 [CQOI2016]手机号码 数位DP
  • 原文地址:https://www.cnblogs.com/davidshen/p/8145977.html
Copyright © 2011-2022 走看看