1、数据库的基本概念
数据库就是个高级的表格管理
常见数据库:mysql、oracle、SQL server
mysql
SUN------------>oracle
数据库中常见的名词:
字段:表格中的表头
表:表格
库: 存放表格的目录
查询 :对表格中的指定内容进行查看
2、mariadb的安装
dnf search mariadb
dnf install mariadb-server.x86_64 -y
rpm -ql mariadb #查看
/var/lib/mysql #数据目录
/etc/my.cnf.d/ mariadb-server.cnf #主配置文件
/usr/lib/systemd/system/mariadb.service #服务的启动脚本
systemctl enable --now mariadb #启动服务
对数据库进行安全初始化
mysal-secure-installation
登录
mysql -uroot -p #enter之后再输入密码
默认情况下,数据库对外开放端口,一般在企业中需要关闭
netstat -antulpe | grep mysql
关闭数据库网络端口,需要编辑配置文件
vim /etc/my.cnf.d/mariadb-server.cnf
systemctl restart mariadb #重启服务
此时端口已经关闭:
3、数据库的基本管理
#注意:每个命令结束之后都要打分号
1)查看
SHOW DATABASES; #显示库的名称
USE mysql; #进入mysql库
SHOW TABLES;#显示现在所在库中所有表
SHOW TABLES FROM mysql ; #显示mysql库中所有表,此命令不需进入mysql库中
SELECT * FROM user ; #查询所有数据
SELECT Host,User,Password FROM user; #查询指定字段
SELECT Host FROM mysql.user WHERE User=‘root’; #查询
CREATE DATABASE westos; #建立库westos
CREATE TABLE westos.linux ( username varchar(6) not null, password varchar(30) not null ); #建立westos中linux表,表项为username和password且不为空
DESC westos.linux; #显示westos库中的linux表结构
INSERT INTO westos.linux VALUES (‘lee’,123);
INSERT INTO westos.linux VALUES (‘lee1’,123),(‘lee2’,123);
更改库的名称,但有可能会导致数据丢失,不建议这么做
cd /var/lib/mysql/
mv westos lee
systemctl restart mariadb
USE westos;
ALTER TABLE linux RENAME userlist; #更改linux表格名称为userlist
ALTER TABLE linux ADD age varchar(4); #在linux表格中增加age字段
ALTER TABLE linux DROP age; #删除age字段
ALTER TABLE linux ADD age varchar(4) AFTER username; #增加age字段到username字段后
UPDATE linux SET age=‘123’; #设置所有人age为123
UPDATE linux SET age=‘18’ WHERE username=‘lee1’; #设置lee1地age为18
DELETE FROM linux WHERE username=‘lee’ and age=‘123’; #删除username为lee且age等于123的表项
DROP TABLE linux; #删除linux表格
4、数据库密码管理
1)更改密码(已经知道密码)
mysqladmin -uroot -pwestos password lee
密码露出来不安全,即可采用另一种方式:
mysqladmin -uroot -p password
2)数据库密码破解(忘记时使用)
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
此时不输入密码可直接进:
mysql -uroot
UPDATE mysql.user SET authentication_string=password(‘123’) WHERE User=‘root’;
退出
ps aux | grep mysql #查看mysql进程
kill -9 xxxx #关闭相关进程
systemctl restart mariadb
此时可用你更改过后的密码进入
5、用户授权
CREATE USER westos@localhost identified by ‘westos’;
localhost表示此用户只能在本机登录数据库
CREATE USER westos@’%’ identified by ‘westos’;
%表示此用户可以通过网络登录数据库,可在网络登录的前提是数据库必须开启网络登陆的接口
创建实验环境:
CREATE DATABASE westostest;
CREATE TABLE westostest.userlist(
-> username varchar(10) not null,
-> password varchar(30) not null
-> );
INSERT INTO westostest.userlist VALUES(‘test’,‘123’);
GRANT SELECT ON westostest.* TO westos@localhost; #赋予westos@localhost用户查询的权力
SHOW GRANTS FOR westos@localhost; #显示赋予westo@localhost用户的权力
GRANT INSERT ON westostest.* TO westos@localhost; #赋予westos@localhost用户插入的权力
此时westos用户可插入
REVOKE INSERT ON westostest.* FROM westos@localhost; #取消赋予westos@localhost用户插入的权力
DROP user westos@’%’; #删除用户
SELECT Host,User FROM mysql.user; #此时能看到已经没有此用户了
6、数据库的备份与恢复
数据库的备份:
mysqldump -uroot -pwestos mysql > /mnt/mysql.sql #备份mysql数据库
mysqldump -uroot -pwestos --all-databases > /mnt/all.sql #备份所有数据库
mysqldump -uroot -pwestos --all-databases --no-data > /mnt/all_nodata.sql #备份所有库但不备份数据库中结构,即备份它的结构
mysqldump -uroot -pwestos westostest > /mnt/westostest.sql #备份westostest数据库
恢复数据库:
mysql -uroot -pwestos -e “CREATE DATABASE westostest;” #建立名为westostest的数据库
mysql -uroot -pwestos westostest < /mnt/westostest.sql #将之前的备份输入到新建数据库里面
此时可以看到数据库恢复:
7、phpmyadmin的安装
dnf install httpd php php-mysqlnd -y
systemctl enable --now httpd
systemctl stop firewalld
cd /mnt/
cp phpMyAdmin-3.4.0-all-languages.tar.bz2 /var/www/html/
cd /var/www/html/
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
cd mysqladmin/
less Documentation.txt #查看帮助文件
cp config.sample.inc.php config.sample.php
此时访问登陆进去,即可看到你建立的数据库: