一 什么是数据库
- 数据库就是一个高级的表格软件
- 常见数据库:Mysql Oracle Mongodb db2 sqlite sqlserver …
- 数据库中的常用名词:
【1】字段:表格中的表头就相当于数据库的字段
【2】表:表格
【3】库:存放表格的目录
【4】查询:对表格中的指定内容进行查看
二 安装并启用数据库
【1】安装数据库
(1)需要搭建好软件仓库
(2)dnf search mariadb搜索到 mariadb-server.x86_64插件安装包进行安装
(3)安装数据库所需要的插件
dnf install mariadb-server.x86_64 -y #安装数据库插件
- 其中
- /var/lib/mysql
#为其数据目录 - /etc/my.cnf.d/mariadb-server.cnf
#为主配置文件 - /usr/lib/systemd/system/mariadb.service
#为服务的启动脚本
(4)开启数据库服务
systemctl enable --now mariadb
【2】对数据库进行安全初始化
(1)mysql_secure_installation 初始化脚本
-
问题:
1 账户原始密码(没有密码直接回车)
2 是否设定数据库的管理员密码
3 是否要去掉匿名用户登录权限
4 禁止管理员通过远程登录
5 删除测试库
6 刷新数据库
-
设置成功后即可登录数据库
(2)登录数据库
mysql -uroot -p
输入密码
quit退出
(3)netstat -antlupe | grep mysql #查看mysql的对外开放接口
- 默认情况下数据库对外开放接口为3306,一般在企业中需要关闭
(4)编辑配置文件 vim /etc/my.cnf.d/mariadb-server.cnf
写:skip-networking=1 #关闭数据库的网络端口
(5)重启数据库服务
systemctl restart mariadb
(6)netstat -antlupe | grep mysql #查看端口是否关闭
三 数据库基本管理(增删查改)
【1】查看
-
首先进入数据库,
-
SHOW DATABASES;#显示库名称
-
USE mysql; #分号表结束#进入mysql库
-
SHOW TABLES;#显示库中所有表
-
SHOW TABLES FROM mysql;
#查看哪一个库里面的所有表名
-
SELECT * FROM user;
#查看user中的所有数据
-
SELECT Host,User,Password FROM user;
#查看user里面的字段
-
SELECT Host,User,Password FROM user WHERE User=‘root’ and Host=‘localhost’;
#查看root@localhost 的字段
【2】新建
-
CREATE DATABASE westos;
#建立数据库
-
CREATE TABLE westos.linux(
-> username varchar(6) not null,
-> password varchar(30) not null
-> );
#建立数据库的表
【3】查看
- DESC westos.linux;
#查看westos库中的linux表的信息
【4】插入
- INSERT INTO westos.linux VALUES (‘lee’,123);
#插入数据
*SELECT * FROM westos.linux; #查询 - INSERT INTO westos.linux VALUES(‘lee1’,‘123’),(‘lee2’,‘123’); #可以同时插入多个数据
【5】修改库的名字,一般情况下不修改
cd /var/lib/myu
cd /var/lib/mysql/
mv westos lee #强制将westos数据库名字更换成lee,但是该操作可能导致数据丢失
mysql -uroot -p #登录数据库
SHOW DATEBASES; #显示数据库名字更改成功
#在企业中库的名字一般不改,因为有可能会导致数据丢失
【6】更改表的名字
- ALTER TABLE linux RENAME userlist;
#将表的名字由linux改为userlist - SHOW TABLES;
#查看是否更改成功
【7】添加字段
-
ALTER TABLE linux ADD age varchar(4);
#在表的最后加age字段
-
ALTER TABLE linux DROP age;
#删除字段
-
ALTER TABLE linux ADD age varchar(4) AFTER username;
#在username字段后添加age字段
【8】更新数据
-
UPDATE linux SET age=‘123’
#将所有age字段中为空的都设置为123
-
UPDATE linux SET age=‘18’ WHERE username=‘lee1’;
#设置lee1的age为18
【9】删除
-
DELETE FROM linux WHERE username=‘lee’ and age=‘123’;
#删除linux表中lee年龄为123的用户行
-
DROP TABLE linux;
#删除linux表 -
DROP DATABASE westos;
#删除数据库
四 数据库的密码管理
【1】更改密码
-
知道密码的情况:
mysqladmin -uroot -pwestos password lxy199853 #当原始密码知道的时候可以直接修改
-
不知道密码的情况下
-
systemctl stop mariadb
#停止数据库服务 -
mysqld_safe --skip-grant-tables &
#跳过授权表进入数据库 ==&==不占用终端,在后台运行 -
UPDATE mysql.user SET Password=password(‘lee’) WHERE User=‘root’;
#当未使用过mysqladmin更改过密码时,更改超级用户的密码 -
UPDATE mysql.user SET authentication_string=password(‘123’) WHERE User=‘root’;
-
#当使用过mysqladmin更改过密码更改超级用户密码
-
quit退出
-
ps aux | grep mysql
#查看mysql所有进程 -
kill -9 5080
-
kill -9 5174
#结束所有数据库进程 -
ps aux | grep mysql
#查看是否删除成功 -
systemctl start mariadb
#重新开启数据库后,密码更新完成
五 重装数据库
【1】systemctl stop mariadb
#停止数据库服务
【2】rm -rf /var/lib/mysql/
#直接删除掉数据库所在的目录
【3】dnf reinstall mariadb-server -y
#重新安装mariadb-server 插件
【4】systemctl enable --now mariadb
#重启数据库服务
六 用户的授权
-
一般情况下,在安装mysql时,只默认管理员可以登录并对数据库中的数据进行操作,因此要对普通用户进行授权,才可以使得普通用户登录数据库,对数据库中的数据进行操作。
-
做法:
-
mysql -uroot -p #登录
-
SELECT Host,User FROM mysql.user;
#查阅数据库用户
-
CREATE USER westos@localhost identified by ‘westos’;
#表示此用户只能在本机登录数据库
-
CREATE USER westos@’%’ identified by ‘westos’;
#表示此用户可以通过网络登录数据库,可用网络(登录的前提下是数据库必须开启网络登录接口 -
mysql -uwestos -pwestos -h172.25.254.101
#可以远程登录 -
vim /etc/my.cnf.d/mariadb-server.cnf中将skip-networking=1注释掉才可以远程登录
#但一般情况下企业不允许用户远程登录) -
GRANT SELECT ON westos .* TO westos@localhost;
#给westos中的westos表中授权SELECT -
SHOW GRANTS FOR westos@localhost;
#查看授权 -
GRANT INSERT ON westos.* TO westos@localhost;
#授权insert
-
westos此时便可以登录mysql,并对数据库中的数据进行(SELECT)查询与(INSERT)插入的操作
-
REVOKE INSERT ON westos.* FROM westos@localhost;
#删除授权insert
-
用户权利有哪些的查看方式:
SELECT * FROM mysql.user;
-
DROP user westos@localhost; #删除用户
七 数据库的备份:
-
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 westos > /mnt/westostest.sql
#备份westostest库
-
cat /mnt/all.sql #查看/mnt/all.sql中的备份内容
八 数据库的还原:
-
mysql -uroot -pwestos -e “CREATE DATABASE westostest;”
#如果数据库westos被删除了,需要先创建一个新的数据库
-
mysql -uroot -pwestos westostest</mnt/westostest.sql
#将备份还原到westostest数据库中
九 phpmyadmin的安装(虚拟机中图形化的数据库)
dnf install php httpd php-mysqlnd.x86_64 -y #安装相关插件
systemctl enable --now httpd #开启httpd服务
systemctl restart httpd #重启httpd服务
firewall-cmd --permenant --add-service=http #在火墙中添加http服务
firewall-cmd --reload#重载httpd服务
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/ #解压phpmyadmin压缩包
cd /var/www/html/ #切换目录至/var/www/html
ls #查看目录下是否有phpMyAdmin-3.4.0-all-languages文件
mv phpMyAdmin-3.4.0-all-lanaguages myaqladmin #将该文件移到myaqldamin
ls #查看mysqladmin目录
cd myaqladmin/ #切换目录
ls #查看说明文档Documentation.txt其中的说明:需要将config.inc.php 拷贝到 config.sample.inc.php
cp config.sample.inc.php config.sample.php #将config.sample.inc.php文件拷贝到config.sample.php文件中
测试: http://192.168.1.101/myaqladmin 即可使用图形化的虚拟机