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'"就看不到这个用户的信息了。

  • 相关阅读:
    sql server 表变量和临时表
    c# 操作excel 总结
    ifttt.com:让你的网络行为能引发连锁反应
    jQuery.tmpl.js
    [置顶]IFTTT与Google+是什么?ifttt怎么玩?
    使用 TRY/CATCH 语句解决 SQL Server 2005 死锁
    TFS2010 取消锁定
    Android 开发简介
    Cocos2d开发系列(七)
    针对中小型网站(3000人左右/15分钟)的服务器架构
  • 原文地址:https://www.cnblogs.com/davidshen/p/8145977.html
Copyright © 2011-2022 走看看