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已经被删除
图形操纵数据库的方式更加简单清晰,而且可以节约大量时间。(图形管理模式中还有命令提示哦,忘记的话记得要看命令提示哦)