Mariadb
michael widenius
Mysql 的一个分支
完全兼容mysql 包括API和名命令行
SUN----Oracle mysql | Oracle
搭建环境
vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改虚拟机的ip地址(不与其它机器ip重复即可)
systemctl restart network 重启网络,让配置生效
yum repolist 确保yum源可用

若yum源不可用,则如下图所示,编辑yum源文件的配置,确保自己的yum源可用。(详情请查看linux软件管理该篇博客)

安装
1.安装
yum install mariadb-server -y
systemctl start mariadb

2安全初始化
*)默认情况下,数据库的网络接口是打开的
为了安全需要关闭此接口

vim /etc/my.cnf 关闭网络接口
skip-networking=1 在打开的文件/etc/my.cnf中加入该命令关闭打开的接口

再次查看端口,没有端口显示

数据库安全初始化
mysql_secure_installation 对数据库进行安全初始化

设置密码

删除已有用户

不允许远程登陆

删除测试数据

重新加载数据库

重新启动服务

本地登陆
mysql -uroot -pwestos 明文输入密码(非常不安全)

mysql -uroot -p 键盘输入密码不显示(推荐使用该登陆方式,比较安全)

数据库的信息查询及其数据更改
查询
SHOW DATABASES;
USE DATABASES;查看数据库
SHOW TABLES;查看数据库中的表
USE DATABASENAME 使用数据库
SELECT * FROM TABLE 查看某个表的所有信息
SELECT Host FROM user WHERE User=’root’;查询当前表的Host字段(Host列)且User为root(行号为root)的信息。
查看数据库
SHOW DATABASES; 查看所有数据库

查看某个数据库的信息
USE mysql;查看mysql数据库的信息

查看当前数据库中所有表
SHOW TABLES;


查看该表中User的所有信息
SELECT * FROM User;
数据库中的信息是以表的形式存放的,但因为表头太长,所以才显示的不规范,我们来单独的查看年其中的某个字段的信息(某列的信息)会清楚的看到其存储形式。


查看User表中Host的信息
SELECT Host FROM user
可以看到Host的信息以列的形式存放,非常整齐。

查看user表中的Host,User信息。

查看user表中的Host,User,Password信息。
SELECT Host,User,Password from User;

查看user表中行的Host为172.0.0.1的Host,User,Password信息。
Host中并没有172.0.0.1的信息,所以什么信息都不显示

查看user表中行的Host为127.0.0.1的Host,User,Password信息。
User表Hos一列中只有一列的信息为172.0.0.1,所以只显示了这一行的Host,User,Password的值。

数据库的建立
CREATE DATABASE westos; 建立库westos

USE westos;进入库

CREATE TABLE userlist ( 建立表userlist
->username varchar(50) not full,
->password varchar(100)not full
->);

DESC userlist;查看表结构

SELECT * FROM userlist; 查看表userlist中的所有信息
未添加信息前可以看到表中什么信息都没有(因为是新建立的表,我们也没有添加信息,所以没有信息显示)

INSERT INTO userlist VALUES(‘cui’,‘321’);添加表的信息第一栏为cui,第二栏为321.
SELECT * FROM userlist; 查看表userlist中的所有信息
添加信息后可以看到第一栏变为了‘cui’,第二栏变为了‘321’.

同理添加信息‘zhang’,‘123’至表中后查看表的信息。

修改
UPDATE userlinux SET username=’cheng’ where username=’cui’修改username为cui一栏的username为cheng
修改前

修改后

添加年龄至表结构中
ALTER TABLE userlist ADD age varchar(5);
添加前

添加后;

修改年龄
UPDATE uerlist SET age=‘12’ where username=‘cheng’; 修改usernmae为cheng的年龄为15
UPDATE uerlist SET age=‘15’ where username=‘zhang’;修改username为zhang的年龄为15
修改前

修改后

表的结构
若直接添加age会自动添加至下一行,若我们想让其添加至其它行该如何做呢
ALTER TABLE userlist ADD age varchar(5) AFTER username; 添加age至usernmae后一行


删除
DELETE FROM userlist WHERE username=’cheng’删除表中名字为cheng的一栏
删除前

删除后

DELETE FROM userlist WHERE username=(‘zhang1’|‘zhang’); 删除表中username为zhang1和zhang的信息后,表中的所有信息都不存在了。即表为空(empty)
可以看到都被删除

DELETE FROM userlist WHERE usernmae=’cheng’ AND age=’12’;删除表中名字为cheng年龄为12的信息。
删除前

删除后

DROP TABLE userlist; 丢弃表
删除表后可以看到westos的库内为空(只有userlist这一个表)

DROP DATABASE westos;丢弃库
丢弃库前

丢弃库后

数据库的备份
数据库中的信息以文件方式存放在/var/lib/mysql中

可以看到我们新建的数据库westos
Mysqldump -uroot -pwestos westos > /mnt/westos.sql 备份库westos至/mnt/westos.sql
Mysqldump -uroot -pwestos westos --no-data > /mnt/westos.sql不备份数据(只备份库表的结构)
Mysqldump -uroot -pwestos --all-databse >/mnt/westos.sql 备份所有库到/mnt/westos.sql
Mysqldump -uroot -pwestos --all-database --no-data> /mnt/westos.sql 备份所有库表结构至/mnt/westos.sql
恢复的方法:
Mysql -uroot -pwestos </mnt/westos.sql
删除后创建的westos为空库,若想要恢复,需要先建立数据库

利用备份恢复

恢复后查看表恢复

用户授权
先打开数据库的网络端口,使其能够接受数据
打开/etc/my.cnf文件,注释skip-networking=1即可

CREATE USER westos@‘%’ identified by ‘westos’; 添加用户westos@% ,登陆密码为westos
CREATE USER westos1@‘localhost’ identified by ‘westos’;添加用户
westos1@localhost
添加用户

SHOW GRANTS FOR westos1@localhost;查看westos1@localhost的权限变化
GRANT INSERT ON westos.* TO westos1@localhost; 给用户
westos1@localhost添加加入的权限。

可以一次赋予多个权限,但需要用‘,’隔开;

REVOKE INSERT ON westos.* FROM westos1@localhost; 取消
westos1@localhost用户的添加功能
用户中westos1并没有添加用户的功能,只能查找,更新和删除

登陆服务端
Yum whatprovides */mysql 利用该命令查找我们需要安装的软件

找到我们要安装的软件

安装该软件

利用远程登陆进入服务机并使用westos1用户登陆(因为westos1只允许在本机(服务机)登陆)
非服务机登陆westos@“%”,%代表所有的机器

非服务机登陆westos1@‘localhost’无法登录 (只有本机可以登陆)

westos可以登陆但无法执行命令,无法查询库文件;

服务器查看该用户权限可以看到其没有任何权限

服务机登陆westos1@‘localhost’

进行删除操作。

无法进行插入的操作(因为我们在服务器回收了westos1的插入功能)

服务器端查看westos1的权限
可以看到其有查找,更新和删除的权限,但没有插入的权限。

DROP USER westos1@localhost; 删除用户westos1@localhost
删除前

删除后

FLUSH PRIVILEGES;刷新(有时在完成配置后,服务可能会未生效,所以需要刷新,若已经生效,则不需要进行该操作)
数据库密码的更改
知道秘密时
mysqladmin -u root -pwestos password cheng 修改密码westos为cheng

忘记密码时
systemctl stop mariadb
mysqld_safe --skip-grant-tables &

USE mysql;

update mysql.user set Password=‘westos’ where user=‘root’;使用该命令修改密码(注意:该命令修改的密码为明文,很不安全)

update mysql.user set Password=password(‘westos’) where User=‘root’;(修改密码为加密方式)

kill -9 mysql的所有进程id

systemctl restart mariadb

登录数据库

图形界面控制数据库
yum install httpd
systemctl start httpd
cd /var/www/html


下载安装phpMyAdmin-3.4.0-all-languages(下载的文件在当前目录)

yum install php php-mysql -y
这里显示的是我们已经安装过了,不需要再次安装

tar jxf phpMyAdmin-3.4.0-all-languages 解压文件

mv phpMyAdmin-3.4.0-all-languages mysqladmin 修改名称(为了简化操作,之前的名字太过于冗长)

cd mysqladmin
cp config.sample.inc.php config.inc.php
vim config.inc.php

systemctl restart httpd

测试查看服务器
http://172.25.254.142/mysqladmin

登陆后即可对数据库进行控制
对数据库westos的userlist表进行控制
首先用命令查看表的信息

在网页添加cheng与cn两个用户后可以看到网页的数据库已经发生了变化

用命令查看表userlist的信息

删除用户‘zhang’
点击zhang的删除出现下图所示界面后点击OK表示确定删除

删除后userlist 表中只剩下cheng与cn两个信息

用命令查看数据库可以看到zhang已经被删除

图形操纵数据库的方式更加简单清晰,而且可以节约大量时间。(图形管理模式中还有命令提示哦,忘记的话记得要看命令提示哦)
本文围绕Mariadb数据库展开,它是Mysql的分支且完全兼容。介绍了搭建环境、安装步骤,包括安全初始化。详细说明了数据库的查询、建立、修改、删除等操作,还提及备份恢复方法、用户授权、密码更改,最后介绍了图形界面控制数据库的方式,操作更简单清晰。
1103

被折叠的 条评论
为什么被折叠?



