MariaDB
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相关操作
安装MariaDB
yum search mariadb
# 软件包
yum install mariadb mariadb-server -y
# 软件和client软件
启动mariadb服务
systemctl start mariadb
systemctl enable mariadb
mariadb监听的端口
netstat -antlpe | grep mysql
ss -antlpe | grep mysql
vim /etc/services
只允许本地连接,阻断所有来自网络的连接
vim /etc/my.cnf
skip-networking=1
systemctl restart mariadb
# 查找与mariadb有关的
# 安装mariadb的server
# 所有服务与端口默认的对
mariadb的初始化
# 设置mysql的登陆密码
mysql_secure_installation
mysql -uroot -p
用户和访问权限的操作
create user hello@localhost identified by 'hello';
# 创建用户hello,可在本机登陆,密码为hello
create user hello@'%' identified by 'hello';
# 创建用户hello,可在远程登陆,密码为hello
create database mariadb;
# 创建一数据库mariadb,对普通用户进行
grant all on mariadb.* to hello@localhost;
# 给hello@localhost用户授权,如果为all,授权所有权限
flush privileges;
# 刷新,重载授权表
show grants for hello@localhost;
# 查看用户授权
revoke delete,update on mariadb.* from hello@localhost;
# 删除指定用户授权
drop user hello@localhost;
# 删除用户
忘记用户密码时,怎么找回
# 关闭mariadb服务
systemctl stop mariadb
# 跳过授权表
mysqld_safe --skip-grant-table &
# 修改root密码
mysql
> update mysql.user set Password=password('westos') where User='root';
# 关闭跳过授权表的进程,启动mariadb服务,使用新密码即可
ps aux | grep mysql
kill -9 pid
mysql -uroot -p
mysql的备份与恢复
# 备份:
mysqldump -uroot -p mariadb > mariadb.dump
mysqldump -uroot -pwestos --no-data mariadb > `date +%Y_%m_%
d`_mariadb.dump
mysqldump -uroot -pwestos --all-databases > mariadb4.dump
# 恢复:
mysqladmin -uroot -pwestos create mariadb2
mysql -uroot -pwestos mariadb2 < mariadb.dump
数据库中基本内容
数据库:database
数据表:table
列
行
主键:不会重复,表中的唯一值
表头
数据库中基本操作以及各个属性
show databases;
# 显示数据库中的内容,类似于目录,里面包
use mysql;
# 进入名称为mysql的数据库
show tables;
# 显示该数据库中的表
desc user;
# 显示user表中的内容
select * from user;
# 显示表中某几列
select Host,User,Password from user;
# 显示表的结构
create table employee(id varchar(50), name varchar(50), age int) default charset=utf8;
# 创建employee数据表
# 定义id、name为字符串类型,字节长度最大值为50
# 定义age为int型
# 默认编码方式为utf-8(可以识别中文)
insert into employee values ('1', '粉条', 10);
# employee数据表中插入数据
create table if not exists employee(id varchar(50), name varchar(50), age int) default charset=utf8;
# 如果employee数据表不存在则进行创建数据表操作
alter table westosuser add sex varchar(3);
# 添加sex列到westosuser表中
delete from westosuser where username="user1";
# 删除表westosuser中username='user1'的内容
drop table westosuser;
# 删除表westosuser
drop database westos;
# 删除数据库westos