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

来源:互联网 发布:落英纷飞 音乐软件 编辑:程序博客网 时间:2024/05/29 18:47

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


原创粉丝点击