首页 > 代码库 > Mariadb
Mariadb
1.Mariadb的介绍
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。
MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。而且从MySQL迁移到MariaDB也是非常简单的:
1、数据和表定义文件(.frm)是二进制兼容的
2、所有客户端API、协议和结构都是完全一致的
3、所有文件名、二进制、路径、端口等都是一致的
4、所有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不变
5、mysql-client包在MariaDB服务器中也能够正常运行
6、共享的客户端库与MySQL也是二进制兼容的
也就是说,在大多数情况下,你完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
Mariadb数据库(mysql的一个分支)
mysql oracle mysql redis memcached
mysql ——> sun——>oracle
2.安装软件
一定到把skip-networking=1写到mysqld的语句块里面。意义是关闭数据库的网络连接。
再netstat就grep不到端口号了。此时只允许通过套接字文件进行本地连接,阻断所有来自网络的tcp/ip连接
3.数据库的用户验证
刚才直接在命令行输入mysql就能连接到数据库,这是不安全的。解决方法
mysql_secure_installation
Enter current password for root (enter for none): ####输入数据库密码,由于没有设置密码,直接回车
Set root password? [Y/n] #####是否设置root密码,输入与y并回车或者直接回车
New password: #####设置root用户的密码
Re-enter new password: #####再次输入你设置的密码
Remove anonymous users? [Y/n] 是否删除匿名用户,生产环境建议删除,直接回车
Disallow root login remotely? [Y/n] 是否禁止root远程登陆,根据在及需求设置
Remove test database and access to it? [Y/n] 是否删除test数据库,直接回车
Reload privilege tables now? [Y/n] 是否重新加载权限表,直接回车
现在直接mysql出现报错
只有输入密码才能登陆
4.简单的SQL语句
show databases; 显示数据库
use mysql; 进入数据库
show tables; 显示数据库中的表
desc user; 查看user表的数据结构
flush privileges; 刷新数据库信息
select host.user,password from user;查询user表中的host,user,password字段
create database westos; 创建westos数据库
use westos;
create table linux( 创建表,username,password字段
username varchar(15) not null,
password varchar(15) not null
);
select * from mysql.user; 查询mysql库下的user表中的所有
alter table linux add age varchar(4); 添加age字段到linux表中
ALTER TABLE linux DROP age 删除age字段
ALTER TABLE linux ADD age VARCHAR(5) AFTER name在name字段后添加字段age
show tables;
desc linux;
insert into linux values (‘user1‘,‘passwd1‘); 在linux表中插入值为username = user1,password = password1
update linux set password=password(‘passwd2‘) where username=user1; 更新linux表中user1 的密码为password2
delete from linux where username=user1;删除linux表中user1的所有内容
grant select on *.* to user1@localhost identified by ‘passwd1‘;授权user1 密码为passwd1 并且只能在本地 查询数据库的所有内容
grant all on mysql.* to user2@‘%‘ identified by ‘passwd2‘;授权user2 密码为passwd2 可以从远程任意主机登录mysql 并且可以对mysql数据库任意操作
创建用户
CREATE USER wxh@localhost identified by ‘westos‘;
CREATE USER lee@‘%‘ identified by ‘redhat‘;
用户授权
GRANT INSERT,UPDATE,DELETE,SELECT on mariadb.* to wxh@localhost;
GRANT SELECT on mariadb.* to lee@‘%‘;
重载授权表
FLUSH PRIVILEGES;
查看用户授权
SHOW GRANTS FOR wxh@localhost;
撤销用户权限
REVOKE DELETE,UPDATE,INSERT on mariadb.* from wxh@localhost;
删除用户
DROP USER wxh@localhost;
5.密码恢复
关掉服务,跳过grant-tables授权表 不需要认证登录本地mysql数据库
更新mysql.user 表中条件为root用户的密码为加密码为redhat
结束进程,重启服务,登陆验证是否成功
6.数据备份与恢复
mysqldump -uroot -predhat westos `> westos.sql 备份数据库
显示数据库
显示表中的内容
删除westos库
创建一个westos库,并把/mnt/westos.sql库文件倒入到westos库中
此时显示数据库,发现westos库回来了
此时显示westos库中的linux表,发现表中的内容也恢复了
此时数据恢复工作完成
备份
# mysqldump -uroot -predhat westos > westos.dump
# mysqldump -uroot -predhat --all-databases > backup.dump
# mysqldump -uroot -predhat --no-data westos > westos.dump
恢复
# mysqladmin -uroot -predhat create db2
# mysql -uroot -predhat db2 < westos.dump
7.图形管理数据库
yum install httpd php php-mysql.x86_64 -y ###安装软件
systemctl start httpd ###打开httpd
systemctl stop firewalld.service ###关闭火墙
下载一个安装包(可以在网上下,我是从老师的250上面下载的)
phpMyAdmin-3.4.0-all-languages.tar.bz2
mv phpMyAdmin-3.4.0-all-languages.tar.bz2 /var/www/html/ ###将下载的包放到http的默认发布目录
cd /var/www/html/
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 ###解压安装包
rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2 删除安装包
mv phpMyAdmin-3.4.0-all-languages myadmin 将解压的目录换个见到的名字
cd myadmin/
cp -p config.sample.inc.php config.inc.php
vim config.inc.php
重启httpd服务
systemctl restart httpd
systemctl start mariadb ###打开数据库
访问myadmin
创建一个数据库(库名hello)
创建一张表(在hello库中创建一个world表)
保存
查看是否创建成功
在表中加入信息
查看内容是否创建成功
文本查询是否成功(验证)
hello库
world表
表中的内容
Mariadb