mariadb数据库管理
MariaDB背景
- MariaDB是MySQL源代码的一个分支,随着Oracle买下Sun,MySQL也落入了关系型数据库王者之手。在意识到Oracle会对MySQL许可做什么后便分离了出来(MySQL先后被Sun、Oracle收购),MySQL之父的Michael以他女儿Maria的名字开始了MySQL的另外一个衍生版本:MariaDB。这两个数据库究竟有什么本质的区别没有?
MariaDB与MySQL区别
-
区别一:
MariaDB不仅仅是Mysql的一个替代品,MariaDB包括的一些新特性使它优于MySQL。 -
区别二:
MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
MariaDB 是一个采用Aria存储引擎的MySQL分支版本, 这个项目的更多的代码都改编于 MySQL 6.0 -
区别三:
通过全面测试发现,MariaDB的查询效率提升了3%-15%,平均提升了8%,而且没有任何异常发生;以qp为单位,吞吐量提升了2%-10%。由于缺少数据支持,现在还不能得出任何结论,但单从测试结果看来还是非常积极的。join中索引的使用以及查询优化,特别是子查询方面,MariaDB都有不少提升。此外,MariaDB对MySQL导入导出有良好支持。
MariaDB的安装
- 首先,需要在虚拟机上配置实验环境。
1.配置网络
2.配置yum源
3.修改主机名,方便我们查看其性质
4.关闭图形,使用真机ssh连接,目的是为了更降低真机负载
- 配置好实验环境之后,我们开始安装数据库软件MariaDB
yum search mariadb
yum install mariadb-server -y
systemctl start mariadb
数据库安全初始化
- 默认情况下,数据库的网络接口是打开的。为了安全需要关闭此接口。
netstat -antlupe | grep mysql ##查看端口
vim /etc/my.cnf ##关闭网络接口
写入:
skip-networking=1 ##跳过网络端口开放,注意,需要写到[mysqld]下面,因为是针对mysql服务器的
systemctl restart mariadb ##重启服务
图
- 数据起始状态设定信息是不安全的,不需要密码就能进入数据库,需要做以下设定:(需要用一个安全初始化脚本)
mysql_secure_installation ##安全初始化脚本
现在再次进入数据库就需要用户和密码了。
数据库管理
基础知识
数据库中,最大的单元是库DATABASES,每个数据库中有多个表TABLES,表由字段组成,一个字段就是一列,一行内容就是一条数据。
- 注意:数据库中不分层次。
- 数据库优化:大库变小库,大表变小表,大的字段变小的字段。否则,会导致查询速度变慢。
进入数据库
mysql -uroot -p
输入密码进入
查询
SHOW DATABASES; ##查看数据库
USE DATABASENAME; ##进入某个数据库
SHOW TABLES; ##查看表格
SELECT * FROM TABLE ##查看表的内容
SELECT Host FROM user WHERE User='root'; ##查看user表中Host字段为root的数据内容
##WHERE设定查询条件,为某一行的内容,后面跟行
建立
- 在建立表时,其字段名的类型not null,此字段不能为空;varchar可变长字符类型,不会被空格补全;char 定长字符类型,指定长度后会用空格补全
- 注意:库一般不要改名,表可以改名。
SHOW DATABASES; ##列出库
CREATE DATABASE westos; ##建立库
USE westos; ##进入库
CREATE TABLE linux ( ##建立表
-> username varchar(50) not null,
-> password varchar(50) not null
-> );
DESC linux; ##查看表结构
INSERT INTO linux VALUES ('lee','123'); ##插入数据到linux表中
SELECT * FROM linux; ##查询所有字段在linux表中
SELECT username,password from linux; ##查询指定字段在linux表中
更改
UPDATE linux SET password=password('lee') where username='lee';
## 密码更改时需要用加密字符方式更改
ALTER TABLE linux ADD class varchar(20);
ALTER TABLE linux DROP CLASS;
ALTER TABLE linux ADD age varchar(20) AFTER password;
ALTER TABLE linux RENAME redhat;
备份与删除
- 1.首先先要备份数据库为对应的库文件,使用
mysqldump
命令
mysqldump -uroot -pwestos westos > /mnt/westos.sql(指定的库备份文件)
mysqldump -uroot -pwestos westos --no-data ##只备份westos的表结构
mysqldump -uroot -pwestos --all-database ##备份全部数据库
mysqldump -uroot -pwestos --all-database --no-data ##只备份表结构,不备份数据
- 2.进入数据库,进行相关的删除操作,可以先插入行。(注意:插入行数据的时候要按照数据库的表结构进行)
INSERT INTO userlist VALUES('lee','12','20');
- 3.然后删除数据,删除多个数据时,可以使用 or 进行隔开。
DELETE FROM uselist WHERE username='mac' or username= 'mac11';
- 4.当多个数据某个字段一致时,可以添加多个字段进行精准匹配。
DELETE FROM uselist WHERE username='lee' AND age='20';
- 5.删除表,删除数据库
DROP TABLE uselist;
DROP DATABASE westos;
恢复数据库
- 方法1:
mysql -uroot -pwestos -e "CREATE DATABASE westos;" ##创建数据库
mysql -uroot -pwestos westos < /mnt/westos.sql ##导入备份数据库文件
- 方法2:
vim /mnt/westos.sql
写入:
CREATE DATABASE westos;
USE westos;
导入文件:
mysql -uroot -pwestos < /mnt/westos.sql
用户授权
- 在数据库server端:
- 1 查看mysql用户信息:
SELECT Host,User FROM mysql.user;
- 2 添加用户:
CREATE USER lee@'localhost' identified by 'westos';
创建一个在本地回环接口的用户,和密码
CREATE USER westos@'%' identified by 'westos';
%标示可以再任何主机登陆,也即是说可以通过其他主机登陆;
- 3 开启网络端口:
vim /etc/my.cnf
把跳过网络打开
systemctl restart mariadb
重启服务
-
4 关闭火墙
-
在远程客户端:
-
1 配置yum源,(记住版本信息要与系统信息一致)
-
2 用yum provides */mysql
-
3 找到mysql客户端后,
yum install 1:mariadb-5.5.52-1.el7.x86_64 -y
-
4 用命令
mysql -uwestos -pwestos -h172.25.254.202
远程登陆数据库 -
5 发现没有任何权限:即看不到数据库内容
-
回到数据库server端,进行授权
-
1 使用root身份进入数据库
2 查看用户权限SHOW GRANTS FOR westos@'%';
3 添加权限:GRANT SELECT on westos.* TO westos@'%';
4 回到客户端再次查看,发现有表
5 同样的方式添加其他权限
GRANT INSERT,DELETE on westos.* TO westos@'%';
6 去除权限:REVOKE INSERT ON westos.* FROM westos@'%';
7 最后可以删除用户:DROP USER westos@'%';
8 记得刷新:FLUSH PRIVILEGES;
##刷新数据库
更改数据库密码
知道数据库root密码情况下
- 更改root用户密码:
mysqladmin -uroot -predhat password mac
注意:这种方式只能用来改root密码,普通用户的密码需要进入mysql,使用UPDATE更改。
- 更改普通用户密码:
通过root用户进入到mysql,使用update更新普通用户密码
UPDATE mysql.user set Password=password('123456') WHERE User='root';
忘记root密码的情况下:
不知道密码时,
- 1> 关掉数据库
- 2> 安全模式下 跳过授权表 & 后台允许
- 3> 进入mysql 更新用户密码:
- 4 >查看并关闭mysql 所有进程;
- 5 >重启mysql服务,密码修改成功!
数据库图形管理工具
1 下载httpd,设置为开机启动,开启httpd,进入其共享目录/var/www/html
2 下载phpMyAdmin压缩包
3 解压于当前目录/var/www/html
tar -jxvf phpMyAdmin-3.4.0-all-languages.tar.bz2
4 为了方便,修改目录名简短易读mv phpMyAdmin-3.4.0-all-languages mysqlAdmin
5 进入改目录,读readme
6 发现readme让你读Documentation.txt
7 Documentation.txt这个文件详细介绍了一些细节:比如版本,比如安装时需要注意的东西,例如加cookie标示等
Now you must configure your installation. There are two methods that can be
used. Traditionally, users have hand-edited a copy of config.inc.php, but
now a wizard-style setup script is provided for those who prefer a
graphical installation. Creating a config.inc.php is still a quick way to
get started and needed for some advanced features.
You'll need a few directives to get going, a simple configuration may look like
this:
<?php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
?>
8 上面内容说了,需要复制一份文件,cp config.sample.inc.php config.inc.php
vim config.inc.php
在此文件中,添加cookie
9 安装php.x86_64,php-mysql.x86_64 ,安装完成后,可以使用php -m
查看相关文件
10 重启httpd
11 访问网站,进行数据库图形化操作数据库。