• 初识MariaDB数据库管理系统


    由于Oracle公司在2009年收购了MySQL的母公司Sun,因此MySQL数据库项目也随之纳入Oracle麾下,逐步从开源变成闭源。MySQL项目创始者重新研发了一款名为MariaDB的全新数据库管理系统。该软件当前由开源社区进行维护,是MySQL的分支产品,而且几乎完全兼容MySQL。

    初始化MariaDB服务

    1.安装MariaDB数据库主程序和服务端程序,安装完成后启动服务程序并加入到开机启动项。

    yum install -y mariadb mariadb-server
    systemctl start mariadb
    systemctl enable mariadb

    2.执行mysql_secure_installation命令,对数据库程序进行初始化操作。初始化操作涉及下面5个步骤:

    1.设置root管理员在数据库中的密码值(注意,该密码并非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键)。
    2.设置root管理员在数据库中的专有密码。
    3.随后删除匿名账户,并禁止root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
    4.删除默认的测试数据库,取消测试数据库的一系列访问权限。
    5.刷新授权列表,让初始化的设定立即生效。
    

    mysql_secure_installation
    Enter current password for root (enter for none):当前数据库密码为空,直接按回车键
    Set root password? [Y/n] y
    New password:输入要为root管理员设置的数据库密码(666666)
    Re-enter new password:再次输入密码(666666)
    Remove anonymous users? [Y/n] y(删除匿名账户)
    Disallow root login remotely? [Y/n] y(禁止root管理员从远程登录)
    Remove test database and access to it? [Y/n] y(删除test数据库并取消对它的访问权限)
    Reload privilege tables now? [Y/n] y(刷新授权表,让初始化后的设定立即生效)

    关于第3点,实际上在很多生产环境中都需要使用站库分离的技术(即网站和数据库不在同一个服务器上),这种状况下访问数据库大部分是通过远程访问的。要允许root管理员从远程访问,则上面初始化策略的第3步应设置为no。还需要设置防火墙,使其放行对数据库服务程序的访问请求,数据库服务程序默认会占用3306端口,在防火墙策略中服务名称统一叫作mysql。最后还需要设置允许远程登录数据库的权限。

    关于数据库的远程登录,客户机(Linux)需要安装MariaDB主程序(yum install -y mariadb)才能使用相关命令。

    firewall-cmd --permanent --add-service=mysql #放行mysql服务
    firewall-cmd --reload
    mysql -u root -p
    MariaDB [(none)]> grant all privileges on . to root@'%' identified by '666666'; #将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器

    首次登陆MariaDB数据库,用root身份登录。

    mysql -u root -p #以root身份登录MariaDB数据库,-p验证该用户在数据库中的密码是否正确
    Enter password: 此处输入root管理员在数据库中的密码(初始化时设置的密码666666) #
    MariaDB [(none)]> #登陆成功后的命令开头格式
    MariaDB [(none)]> SHOW databases; #查看当前有哪些数据库(执行数据库命令时,都需要在命令后面用分号(;)结尾)
    MariaDB [(none)]> SET password = PASSWORD('123456'); #把当前用户(root)在数据库中的密码更改为123456
    MariaDB [(none)]> exit #退出登录
    mysql -u root -p #再次以root身份登录数据库
    Enter password:此处输入root管理员在数据库中的新密码(123456) #此时需要输入新密码才能成功登陆

    管理用户以及授权

    创建用户:使用root管理员登录数据库管理系统,然后按照“CREATE USER 用户名@主机名 IDENTIFIED BY '密码'; ”的格式创建数据库管理账户。

    MariaDB [(none)]> CREATE USER liwh@localhost IDENTIFIED BY '9527'; #创建用户liwh,仅供本地登录(localhost),密码为9527
    MariaDB [(none)]> use mysql #使用数据库mysql
    MariaDB [mysql]> SELECT HOST,USER,PASSWORD FROM user WHERE USER="liwh"; #查看账户信息(数据库中的用户信息保存在mysql数据库的user表中)
    MariaDB [mysql]> exit #退出登录
    [root@linuxprobe ~]# mysql -u liwh -p #以liwh身份登录(该用户没有数据库的任何操作权限)
    MariaDB [(none)]> show databases; #查看MariaDB中有哪些数据库(显示不全,只有一个information_schema)

    为用户授权(grant)和移除授权(revoke)。

    grant命令:用于为账户进行授权。在使用grant命令时需要写上要赋予的权限、数据库及表单名称,以及对应的账户及主机信息。GRANT命令的常见格式以及解释:

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

    revoke命令:移除授权的命令(revoke)与授权命令(grant)不同之外,其余部分(格式和参数)都是一致的。

    为账户授权:账户的授权工作肯定是需要数据库管理员账户来执行的。

    1.以root管理员的身份登录到数据库管理系统中,针对mysql数据库中的user表单向账户liwh授予查询、更新、删除以及插入等权限;
    2.查看用户liwh权限,以liwh身份登录数据库验证是否具有具体权限;
    3.把用户liwh在上面获取的权限全部移除。
    

    [root@linuxprobe ~]# mysql -u root -p #以root身份登录MariaDB
    MariaDB [(none)]> use mysql; #使用mysql数据库
    MariaDB [mysql]> GRANT SELECT,UPDATE,DELETE,INSERT ON mysql.user TO liwh@localhost; #赋予liwh对mysql数据库中的user表增删改查权限
    MariaDB [mysql]> SHOW GRANTS FOR liwh@localhost; #查看用户liwh的权限
    MariaDB [mysql]> exit #退出登录
    [root@linuxprobe ~]# mysql -u liwh -p #以liwh身份登录MariaDB
    MariaDB [(none)]> show databases; #查看MariaDB中有哪些数据库(只会显示liwh有权限操作的数据库)
    MariaDB [(none)]> use mysql #进入mysql数据库
    MariaDB [mysql]> SHOW TABLES; #查看mysql数据库中有哪些表(只会显示liwh有操作权限的表)
    MariaDB [mysql]> exit #退出登录
    [root@linuxprobe ~]# mysql -u root -p #以root身份登录MariaDB
    MariaDB [(none)]> use mysql; #使用mysql数据库
    MariaDB [mysql]> REVOKE SELECT,UPDATE,DELETE,INSERT ON mysql.user FROM luke@localhost; #移除liwh对mysql数据库的user表的增删改查权限
    MariaDB [mysql]> SHOW GRANTS FOR luke@localhost; #查看liwh权限(可以发现刚才对mysql数据库的user表的增删改查权限已经消失)

    创建数据库与表单

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

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

    创建数据库test,并进入该数据库,创建表member。

    MariaDB [(none)]> CREATE DATABASE test; #创建数据库test
    MariaDB [(none)]> SHOW databases; #查看当前有哪些数据库
    MariaDB [(none)]> use test; #使用test数据库
    MariaDB [test]> CREATE TABLE member(num int,name char(15),yearsold int); #在数据库test中创建表menber,定义3个字段
    MariaDB [test]> DESCRIBE member; #查看表menber结构信息

    管理表单及数据

    MariaDB [test]> INSERT INTO member(num,name,yearsold) VALUES('9527','liwh', '25'); #往表member插入数据:9527,liwh,25
    MariaDB [test]> INSERT INTO member(num,name,yearsold) VALUES('9528','liangjm', '29'); #往表member插入数据:9528,liangjm,29
    MariaDB [test]> INSERT INTO member(num,name,yearsold) VALUES('9529','wujm', '24'); #往表member插入数据:9529,wujm,24
    MariaDB [test]> select * from member; #查看表member所有内容(显示共3条内容)
    MariaDB [test]> update member set num = 6666 where name = 'liangjm'; #把name值为liangjm的记录的num值改为6666
    MariaDB [test]> delete from member where num = 9529; #删除num值为9529的记录
    MariaDB [test]> select * from member where yearsold > 24; #查出所有yearsold值大于24的记录(剩余的两条记录的yearsold值均大于24)

    数据库的备份及恢复

    mysqldump命令:用于备份数据库数据,格式:mysqldump [参数] [数据库名称]。其中参数-u参数用于定义登录数据库的账户名称,-p参数代表密码提示符。

    test数据库备份以及恢复步骤:

    1.将test数据库中的内容导出成一个文件,并保存到root管理员的家目录中;
    2.进入MariaDB,彻底删除test数据库(drop),这样member表也将被彻底删除。然后重新建立test数据库;
    3.使用输入重定向符把刚刚备份的数据库文件导入到mysql命令中,执行该命令;
    4.进入test数据库,查看test数据库中的表,发现先前的member表,数据库恢复完成。
    

    mysqldump -u root -p test > /root/testDB.dump #导出test数据库到文件testDB.dump
    MariaDB [(none)]> DROP DATABASE test; #彻底删除test数据库
    MariaDB [(none)]> SHOW databases; #可以发现test数据库已经消失
    MariaDB [(none)]> CREATE DATABASE test; #重新创建test数据库
    mysql -u root -p test < /root/testDB.dump #把数据库备份文件testDB.dump导入到mysql命令
    mysql -u root -p #以root身份登入MariaDB
    MariaDB [(none)]> use test; #使用test数据库
    MariaDB [test]> SHOW tables; #可以发现member表已恢复
    MariaDB [test]> DESCRIBE member; #member表结构与删除前一模一样

  • 相关阅读:
    vmware ubuntu 异常关机无法连接到网络
    Speed up GCC link
    常用的一些解压命令
    Log4j 漏洞复现
    Test Case Design method Boundary value analysis and Equivalence partitioning
    CCA (Citrix Certified Administrator) exam of “Implementing Citrix XenDesktop 4”
    What is Key Word driven Testing?
    SAP AGS面试小结
    腾讯2013终端实习生一面
    指针的引用
  • 原文地址:https://www.cnblogs.com/yachengmuCC/p/16025841.html
Copyright © 2020-2023  润新知