一.数据库的安装
数据库(Database)是按照数据结构来 组织、存储和管理数据的建立在计算机存储设备上的仓库。常见的数据库有MySQL、SQL Server、Oracle、Sybase、DB2。MariaDB数据库管理系统是MySQL的一个分支。
首先安装数据库
yum search mariadb //查找与mariadb有关的软件包
yum install mariadb-server.x86_64 -y //安装mariadb的server软件和client软件
systemctl start mariadb #####启动mariadb服务
systemctl enable mariadb ####开启服务并设置为开机自启
查看数据库接口mysql ##端口打开不安全
netstat -antuple | grep mysql
只允许本地连接,阻断所有来自网络的连接
vim /etc/my.cnf 添加 skip-networking=1
systemctl restart mariadb.service
netstat -antlpe | grep mysql
二.数据库的使用
1.数据库的初始化
设置mysql的登陆密码
mysql_secure_installation 初始化,输入密码(第一次直接回车),剩下的回车默认
mysql -u root -p ##注意:密码不要写在-p后,不安全
2.数据库的查询
SHOW DATABASES; ##查看有哪些库
USE 库名称; ##进入这个库
SHOW TABLES; ###查询库里的表
DESC 表名称; ##表的结构
SELECT * FROM 表名称; ###查询表里所有内容
SELECT 字段1,字段2,.....FROM 表名称 WHERE 字段=‘字段信息’;
SELECT Host,user,select_priv FROM WHERE user=‘localhost’;
3.创建数据库
CREATE DATABASE westos; //创建以数据库名称为westos
create table linux( //创建表(linux的表)
-> username varchar(10) not null,
-> passwd varchar(6) not null
-> );
INSERT INTO linux values ('jack','123'); //向表中插入内容
INSERT INTO linux (passwd,username) values("456","user2"); //按照指定顺序向表中插入数据
4.数据库的更改
ALTER TABLE linux ADD class varchar(20); //添加class列到linux表中
UPDATE linux SET class='linux' where username="jack" AND passwd="123"; //更新表中的内容
ALTER TABLE linux DROP class; 不要class
ALTER TABLE linux ADD age varchar(20) AFTER passwd; 在password之后加,指定添加age
ALTER TABLE linux RENAME user; 把表linux改成表user
delete from user where username='jack'; //删除表中用户名为jack的记录
DROP table user; //删除表
DROP DATABASE westos; //删除数据库
三.数据库用户管理
1.用户创建
CREATE USER [email protected] identified by '123';
//创建用户redhat,可在本机登陆,密码为123
CREATE USER [email protected]'%' identified by 'hello';
//创建用户hello,可在远程登陆,密码为hello
create database ddd;
grant all on ddd.* to [email protected];
//给[email protected]用户授权,授权所有权限,权限有(insert,update,delete,select,create)
用户添加成功
flush privileges; //刷新,重载授权表
show grants for [email protected]; //查看用户授权
mysql -u redhat -p
可以用redhat用户查看ddd数据库的表
可以向表中插入内容
切换回root用户,删除指定用户授权
revoke all on ddd.* from [email protected];
drop user [email protected]; //删除用户
四.忘记mysql用户密码时,怎么找回?
1. 关闭mariadb服务
systemctl stop mariadb
2. 跳过授权表(数据库安全模式开启,不需要密码登陆)
mysqld_safe --skip-grant-tables &
3. 修改root密码
mysql
UPDATE mysql.user SET Password=password('westos') where User='root'; ##加密,密码westos
4. 关闭跳过授权表的进程,启动mariadb服务,使用新密码即可
ps aux | grep mysql
kill -9 pid 所有进程id一个个结束
systemctl start mariadb.service
mysql -uroot -p 登陆
mysqladmin -uroot -pwestos password westos 密码记得时候修改密码
五.mysql的备份与恢复
mysqldump -uroot -predhat userdata > /mnt/westos.sql ##指定userdata数据库的资料备份
mysqldump -uroot -predhat --all-database > /mnt/data.all 所有数据库资料备份
mysqldump -uroot -predhat --all-database --no-data > /mnt/data.err ##只备份数据结构,不备份数据
恢复方式一:
vim /mnt/westos.sql
CREATE DATABASE userdata;
use userdata;
mysql -uroot -predhat < /mnt/westos.sql
恢复方式二:
mysql -uroot -predhat -e "CREATE DATABASE userdata;"
mysql -uroot -predhat userdata < /mnt/westos.sql