目录
一.数据库的介绍 :
1.什么是数据库
数据库就是个高级的表格软件2.常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver .......3.Mysql (SUN -----> Oracle)
4.mariadb
##数据库中的常用名词##
1.字段 :表格中的表头
2.表 :表格
3.库 :存放表格的目录
4.查询 :对表格中的指定内容进行查看
二. mariadb的安装 :
dnf install mariadb-server.x86_64 -y
三. 软件基本信息 :
mariadb.service ##启动服务
3306 ##默认端口号
/etc/my.cnf.d/mariadb-server.cnf ##主配置文件
/var/lib/mysql ##数据目录,当需要重新安装mariadb时需要清理此目录或备份
四. 数据库开启 :
systemctl enable --now mariadb
五.mysql的安全初始化 :
dnf install enable --now mariadb
systemctl enable --now mariadb
mysql ##直接登陆不安全
mysql_secure_installation ##设定密码
#set root passwd ##设置root密码
remove aninymous users ##移除匿名用户登陆
disallow root login remotely ##拒绝远程root登陆
remove test database and access to it ##移除数据库测试
reload privilege tables now ##重新加载表数据
mysql -u root -pwestos ##密码亮出来了不安全,history能看见
rpm -qc mariadb-server
vim /etc/my.cnf.d/mariadb-server.cnf ##21行写 skip-networking=1 关闭了端口
systemctl restart mariadb
netstat -antlupe | grep mysql就看不到它的端口,别人就不能通过端口进行链接了
六. 数据库的基本管理 :
1.查看
SHOW DATABASES; ##显示库名称
USE mysql; ##进入mysql库
SHOW TABLES; ##显示库中的所有表
SELECT * FROM user; ##查询所有数据
SELECT Host,User,Password FROM user; ##查询指定字段
SELECT Host FROM mysql.user WHERE User='root'
2.新建
CREATE DATABASE westos; ##新建库
CREATE TABLE linux ( ##新建表
username varchar(10) not null,
password varchar(50) not null
);
DESC linux; ##显示表结构
INSERT INTO linux VALUES ('user1','123'); #插入数据
INSERT INTO linux VALUES ('user2','123'),('user3','123');
SELECT * FROM linux; #查看linux表内容
FLUSH PRIVILEGES; #刷新数据库
3.更改
ALTER TABLE linux RENAME redhat; #更改linux表格名字为redhat
ALTER TABLE linux ADD age varchar(4) AFTER password; #给linux表格中添加age
UPDATE linux SET age='4'; #将age这一列全部换成4
UPDATE linux SET age='20' WHERE username='user1' #将username=1以及age交汇的数字换成20
ALTED TABLE linux ADD age varchar(4) AFTER username; #varchar字符类型/(4)字符长度/AFTER username 位置
4.删除
DELETE from linux where username='user2' and age='18'; #删除user2和age18交汇的数据
DROP TABLE linux; #删除linux表
DROP DATABASE westos; #删除库
ALTER TABLE linux DROP age; #删除age这一行
七.数据密码管理 :
1.数据密码更改
mysqladmin -u root -p password lee ##把原来的密码改成lee
2.数据库密码破解
systemctl stop mariadb ##暂停mariadb
mysqld_safe --skip-grant-tables & ##开启一个并且打入后台
mysql -u root ##进入mysql
SELECT * FROM user; ##查看mysql信息
UPDATE mysql.user set Password=password('westos') WHERE User='root'; ##当未使用过mysladmin更改过密码
UPDATE mysql.user set authentication_string=password('westos') WHERE User='root'; ##当使用过mysladmin更改过密码
px aux | grep mysql ##查询mysql相关进程
kill -9 mysql的所有进程
systemctl start mariadb ##开启mariadb
八.用户授权 :
1.远程登陆授权 :
root用户登陆mysql后
CREATE USER lee@localhost identified by 'westos'; ##只能用localhost登陆
CREATE USER westos@'%' identified by 'westos'; ##可以通过网络或localhost登陆
改配置文件 vim /etc/my.cnf.d/mariadb-server.cnf ##注释掉21行, 21 #skip-networking=1
重启服务 : systemctl restart mariadb.service
关防火墙 : systemctl stop firewalld.service
然后在另一台主机可以通过 mysql -uwestos -pwestos -h 172.25.254.123 用户登陆, lee和root不行
2.增删改查权力赋予 :
root用户登陆mysql后
SELECT *FROM mysql.user; ##看有几个用户
GRANT INSERT,SELECT ON westos.* TO lee@localhost; ##赋予lee用户查看的权力
SHOW GRANTS for lee@localhost;
GRANT INSERT,SELECT ON westos.* TO lee@localhost; ##赋予westos用户查看权力
GRANT INSERT,SELECT ON westos.* TO westos@'%';
SHOW GRANTS for westos@'%';
REVOKE SELECT ON westos.* FROM lee@localhost; ##删除用户lee的权力
REVOKE SELECT ON westos.* FROM westos@'%'; ##删除用户westos的权力
DROP user lee@localhost;
九.数据库的备份 :
mysqldump -uroot -p123 --all-database
mysqldump -uroot -p123 --all-database --no-data ##备份库不备份数据
mysqldump -uroot -p123 westos ##备份数据库到系统默认的文件中
mysqldump -uroot -p123 westos > /mnt/westos.sql ##备份westos库并且倒入到指定文件
恢复方法1:
mysql -uroot -p123 -e "create database westos;" ##创建库
mysql -uroot -p123 westos < /mnt/westos.sql ##倒入库数据
恢复方法2:
vim /mnt/westos.sql ##21,22行插入
CREATE DATABASE westos;
USE westos;
mysql -uroot -p123 < /mnt/westos.sql