linux之数据库mariadb

MariaDB

1.定义:

MariaDB的特性:插件式存储引擎:存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择存储引擎也称为“表类型”

MariaDB与MySQL的比较:

        (1) 支持更多的存储引擎

        (2) MyISAM-->Aria (改进版)不支持事务

        (3) InnoDB --> XtraDB(改进版) 支持事务

        (4) 诸多扩展和新特性 

        (5) 提供了较多的测试组件

        (6) 完全的开源软件

2.配置


2.1.数据库监听窗口的配置


[[email protected] ~]# yum install mariadb-server -y                    ###安装数据库
[[email protected] ~]# systemctl start mariadb                             ###开启数据库服务
[[email protected] ~]# mysql                                                        ###进入数据库
[[email protected] ~]# netstat -antlp | grep mysql                        ###查看数据库端口 校验mariadb的监听端口
linux之数据库mariadb  
[[email protected] ~]# vim /etc/my.cnf
linux之数据库mariadb
skip-networking=1   ####屏蔽网络  此时只允许通过套接字文件进行本地连接,阻断所有来自网络的tcp/ip连接[[email protected] ~]# systemctl restart mariadb
[[email protected] ~]# netstat -antlp | grep mysql
[[email protected] ~]# mysql

2.2数据库的安全初始化


[[email protected] ~]# mysql_secure_installation

linux之数据库mariadb

####数据库的安全初始化  使用mysql_secure_installation工具进行数据库安全设置,根据提示完成操作:
Set root password? [Y/n] Y    ###设置用户名密码
Remove anonymous users? [Y/n] Y   ####移除匿名用户
Disallow root login remotely? [Y/n] Y   ####允许超户远程登陆
Remove test database and access to it? [Y/n] Y   ###移出测试用户
Reload privilege tables now? [Y/n] Y  ####刷新数据库
[[email protected] ~]# mysql -uroot -p

linux之数据库mariadb


2.3数据库的基本操作


[[email protected] ~]# mysql -uroot -p
MariaDB [(none)]> show databases;  ###显示数据库
MariaDB [(none)]> use mysql      ###进入数据库
MariaDB [mysql]> show tables;      ###查看当前数据库表中的内容

linux之数据库mariadbMariaDB [mysql]> select * from user;  ###查询user表中的所有内容(*可以用此表中的任何字段来代替)
MariaDB [mysql]> desc user;         ####查询user表的结构(显示所有字段的的名称)linux之数据库mariadb


2.4数据库的建立


MariaDB [(none)]> create database westos;    ###创建westos数据库
MariaDB [(none)]> use westos

linux之数据库mariadb


MariaDB [westos]> create table linux(
    -> username varchar(15) not null,
    -> password  varchar(15) not null );
Query OK, 0 rows affected (0.36 sec)
####创建linux表,并且linux表中含有两个字段username, passworf  每个字段长度为15个字符,并且不能为空。

linux之数据库mariadb

MariaDB [westos]> show tables;     ##查看该数据库表格
MariaDB [westos]> insert into linux values ('user1','123');
####向linux表中插入数据,用户名为user1,密码为123此时密码没有加密
MariaDB [westos]> select * from linux;
MariaDB [westos]> insert into linux values ('user2',password('123'));

####向linux表中插入数据,用户名为user2,密码为123此时密码加密
MariaDB [westos]> select * from linux;      ##查看表格信息
MariaDB [westos]> update linux set password=password('123') where (username='user2' or username='user1') ;
#####更新多个选项


2.5数据库的更新


MariaDB [westos]> alter table linux add age  varchar(20);      ###增加一列

linux之数据库mariadb

MariaDB [westos]> alter table linux add date  varchar(20) after password;

#####在linux表格中的password列后添加一列date

MariaDB [westos]> select * from linux;

linux之数据库mariadb

MariaDB [westos]> update linux set password=password('123') where (username='user2' or username='user1') ;

linux之数据库mariadb

MariaDB [westos]> update linux set password=123 where username='user2' ;
MariaDB [westos]> update linux set password=password('123') where username='user3' ;
####更新数据库中的数据

2.6删除表中的数据


delete from table_name where attribute = value;

linux之数据库mariadb

####删除user1


####drop table table_name

linux之数据库mariadb


#######删除表格

MariaDB [westos]> alter table linux drop age;

######删除linux表格中age字段

linux之数据库mariadb

###删除数据库drop database database_name;

linux之数据库mariadb



2.7数据库备份


     mysqldump -uroot -predhat --all-database   ####备份所有表中的所有数据
     mysqldump -uroot -predhat --all-database --no-data  ####备份所有的表,但不备份数据
     mysqldump -uroot -predhat westos             ###备份westos数据库

linux之数据库mariadb

     mysqldump -uroot -predhat westos > /mnt/westos.sql  ###备份westos库并把数据保存到westos.sql中

     mysql -uroot -e "create database westos"  ###建立westos库

linux之数据库mariadb

     mysql -uroot -predhat westos  < /mnt/westos.sql   ###把数据导入到数据库中
     mysql -uroot -predhat westos  linux > /mnt/linux.sql   ####备份westos数据库中linux表到/mnt/linux.sql中
    

2.8数据库用户授权

[[email protected] ~]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> select User ,Host from mysql.user;

linux之数据库mariadb

MariaDB [(none)]> create user [email protected] identified by 'lee';   ####创建用户[email protected]并设置密码lee
MariaDB [(none)]> create user [email protected]'%' identified by 'lee';

linux之数据库mariadb

MariaDB [(none)]> show grants for [email protected];            ###显示用户的权限

linux之数据库mariadb

MariaDB [(none)]> grant select on westos.linux to [email protected]'%';    ####用户的授权

linux之数据库mariadb

linux之数据库mariadb

[[email protected] ~]# vim /etc/my.cnf
[[email protected] ~]# mysql -ulee -plee -h 172.25.254.121
MariaDB [(none)]> use westos

MariaDB [westos]> revoke delete on westos.linux from [email protected];      ####撤销用户的权限

linux之数据库mariadbMariaDB [westos]> revoke delete on westos.linux from [email protected]'%';
MariaDB [westos]> drop user [email protected]'%'                         #####删除用户

linux之数据库mariadb

2.9数据库超户密码忘记


[[email protected] ~]# mysqladmin -uroot -predhat password westos   ####修改超户密码

linux之数据库mariadb

[[email protected] ~]# mysql -uroot -pwestos
[[email protected] ~]# systemctl stop mariadb
[[email protected] ~]# mysqld_safe --skip-grant-tables &          ###开启myql登陆接口并忽略授权表
[[email protected] ~]# mysql   ###直接不用密码可以登陆

linux之数据库mariadb

MariaDB [(none)]> select User ,Host,Password from mysql.user;

MariaDB [(none)]> update mysql.user set Password=password('456') where User='root';
 ####更新超级用户密码信息
linux之数据库mariadb
MariaDB [(none)]> select User ,Host,Password from mysql.user;
MariaDB [(none)]> quit
[[email protected] ~]# ps aux | grep mysql
linux之数据库mariadb
[[email protected] ~]# kill -9 6888
[[email protected] ~]# kill -9 6683
[[email protected] mysqladmin]# systemctl restart mariadb
[[email protected] ~]# mysql -uroot -p456

MariaDB [(none)]> show databases;


2.10数据库图形界面管理数据库

####安装相应的软件httpd php php-mysql phpMyAdmin-3.4.0-all-languages.tar.bz2


[[email protected] ~]# yum install httpd php php-mysql -y
[[email protected] ~]# systemctl enable httpd
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
[[email protected] ~]# cd /var/www/html/
[[email protected] html]# mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
[[email protected] html]# cd mysqladmin/

#####文件的配置

[[email protected] mysqladmin]# cp -p config.sample.inc.php config.inc.php
[[email protected] mysqladmin]# vim config.inc.php
$cfg['blowfish_secret'] = 'mysql'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
####添加数据库
[[email protected] mysqladmin]# systemctl restart mariadb

###测试

linux之数据库mariadb

linux之数据库mariadb