Linux之mariadb

1.mysql的背景
       MySQL是一个关系型数据库管理系统MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。搭配 PHP 和 Apache可组成良好的开发环境。
2.mysql的安装
yum install  mariadb-server.x86_64   -y    ##安装
Linux之mariadb
systemctl start mariadb      ##启动
Linux之mariadb
netstat -antlpue | grep mysql       ##过滤,网络接口
Linux之mariadb
/etc/my.cnf                                    ##主配置文件
vim /etc/my.cnf

skip-networking=1                     ##跳过网络接口
Linux之mariadb
systemctl restart mariadb         ##重启
用netstat -antlpue | grep mysql查看     ##网络接口成功跳过
Linux之mariadb

3.mysql的基本使用 
(1)密码设置
mysql_secure_installation     ##第一次安装mysql以后通过这条命令可以对mysql进行设置
(2)登陆
mysql -uroot -predhat            ##从本机登录mysql数据库,密码跟在后面不安全
mysql -uroot -p                      ##这种登陆方式比较安全
Linux之mariadb
(3)查看
show databases;                   ##显示数据库
Linux之mariadb
use mysql;                ##进入数据库
Linux之mariadb
show tables;                ##显示数据库中的表
Linux之mariadb
desc user;                ##查看mysql.user表的数据结构
Linux之mariadb
select host,user,password from user;    ##查询user表中的host,user,password字段
Linux之mariadb
create database westos;            ##创建westos数据库
Linux之mariadb
use westos;                     ##进入westos数据库  
(4)创建表      
create table linux(            ##创建表,username,password字段
username varchar(15) not null,
password varchar(15) not null
 );
Linux之mariadb
desc linux;
Linux之mariadb
select * from mysql.user    ##查询mysql库下的user表中的所有
(5)更改
alter table linux rename redhat;      ##linux表重命名为表redhat;
Linux之mariadb
alter table redhat add class varchar(6);     ##添加age字段到linux表中
Linux之mariadb
ALTER TABLE redhat DROP age            ##删除age字段
Linux之mariadb
ALTER TABLE redhat ADD age  varchar(6)  AFTER name ##在name字段后添name字段 
Linux之mariadb
show tables;
(6)插入
在westos数据库的redhat表中插入数据
insert into redhat values ('user1','passwd1');    ##在linux表中插入值为username,password
Linux之mariadb
(7)更新
update redhat set password=password('passwd2') where username=user1;    ##更新linux表中user1 的密码为password2
Linux之mariadb
delete from  redhat where username='user1';    ##删除linux表中user1的所有内容
Linux之mariadb
(8)授权
CREATE USER [email protected]'localhost'identified by 'passwd';  ##授权user 密码为passwd
Linux之mariadb
grant select on  *.* to [email protected];                ##只能在本地 查询数据库的所有内容
show grants for [email protected];                         ##查看权限
Linux之mariadb
当切换到[email protected],删除数据库时没有权限
Linux之mariadb
在root用户下授权,成功删除数据库
Linux之mariadb
revoke select on westos.* from [email protected];     ##取消lee下的westos数据库的查看功能
Linux之mariadb
show grants for [email protected];                         ##查看权限,[email protected]的删除权限被取消
Linux之mariadb
(9)备份
redhat中的数据库
Linux之mariadb
mysqldump -uroot -predhat westos > /mnt/mysql.sql     ##备份westos数据库到mysql.sql
Linux之mariadb
Linux之mariadb
为了证明数据的却成功备份了,现在删除mariadn中的redhat数据库
Linux之mariadb
mysql     -uroot -predhat -e "create database redhat"    ##-e:执行命令创建redhat库
mysql     -uroot -predhat redhat < /mnt/mysql.sql          ##恢复mysql.sql 到redhat
Linux之mariadb
查看redhat数据库,数据是否成功备份(结果显示备份成功,也成功恢复数据)
Linux之mariadb
也可以采用直接在备份中修改,也能成功恢复数据
vim /mnt/mysql.sql                  ##直接在备份里修改也可以
:
create database westos;
use westos;
Linux之mariadb
mysql -uroot -p123 <  /mnt/mysql.sql      ##备份文件中已经创建了数据库,并使用,所以不用在指定数据库,直接导入即可
 Linux之mariadb
4.root用户的密码恢复
systemctl stop mariadb                    ##停止maria服务
mysqld_safe --skip-grant-tables &   ##跳过grant-tables授权表  
mysql                                          ##进入数据库时发现不用输密码,不用认证
update mysql.user set Password=password('123') where User='root';  ##修改密码为'123'
Linux之mariadb
ps aux | grep mysql                 ##显示mysql进程
Linux之mariadb
kill -9 mysql进程的id                 ##结束mysql进程
systemctl     restart  mariadb            ##开启服务
当采用mysql进入时,发现不能进入,密码输入正确方可进入数据库
Linux之mariadb
5.数据库的图形phpmyadmin开启
yum install php                           ##下载php
yum install php-mysql                ##下载php的mysql插件
tar jxf phpmyadmin-*.tar.bz2      ##把phpmyadmin-*.tar.bz2解压到/var/www/html
mv phpmyadmin mysqladmin1                   ##为了方便重新命名
cp config.sample.inc.php config.inc.php    ##切换到mysqladmin1目录下执行
Linux之mariadb
测试:IP/mysqladmin1/index.php    ##IP是mariadb所在主机,要把mariadb在主机开启
Linux之mariadb
之前在文本模式下建立的redhat数据库也显示在图形界面中,两者是同步的,linux表中的数据也完美呈现。
Linux之mariadb
图形管理界面搭配PHP和Apache使用,方便管理,查询大量的数据