mysql数据库的基本管理
什么是数据库
- 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。对数据进行存储以及删除等操作。数据库就是个高级的表格软件。
- 常见的数据库
常用数据库有mysql、oracle、sqlserver、sqlite、postgreSQL等 - 数据库中常用名词
字段:相当于表格中的表头
表 :表格
库:存放表格的目录
查询:对表格中的指定内容进行查看。
配置软件仓库安装数据库
使用dnf list | wc -l 可以查看安装包数量是否有6604个,如果没有,说明我们需要配置软件仓库
软件仓库配置成功(此处我配置的是本地软件仓库,需要使用镜像)
dnf search mariadb #搜索这个软件
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
dnf install mariadb-server.x86_64 -y ##安装
rpm -ql mariadb-server ##查看文件
/var/lib/mysql ##数据目录
/etc/my.cnf.d/mariadb-server.cnf ##主配置文件
/usr/lib/systemd/system/mariadb.service ##服务的启动脚本
systemctl enable --now mariadb ##启动服务
启动后就可以使用mysql直接登录了,不需要密码 ,但是这样不安全,我们要对数据库进行安全初始化
mysql_secure_installation ##设置数据库的基本初始化
mysql -uroot -p ##设定后使用此命令登录
##初始化需要填写的内容
##做出初始化之后的两种登录方式
数据库的端口关闭
#在企业中,一般情况下,需要将对外开放端口关闭。
使用netstat -antlupe | grep mysql查看端口状态
#管理端口的关闭和打开需要编辑其主配置文件
vim /etc/my.cnf.d/mariadb-server.cnf ##编辑主配置文件
skip-networking=1 ##文件第21行,加入此命令,关闭数据库的网络端口
systemctl restart mariadb ##重启服务
数据库的基本管理
-
查看
SHOW DATABASES; ##查看所有库 USE mysql; ##进入mysql库 SHOW TABLES; ##查看库中所有表,进入库中之后查看表,不需要指定哪个库 SHOW TABLES FROM mysql ##查看指定库里面的所有表 SELECT * FORM user; ##查看库里的表中所有数据 SELECT Host,User,Password FROM user; ##查询表中指定字段 SELECT Host,User FROM user WHERE User='root'and Host='localhost'; ##查询表中的指定内容
-
新建
SHOW DATABASES CREATE DATABASE westos ##新建库 CREATE TABLE westos.linux ( username varchar(6) not null, password varchar(30) not null ); ##字符长度不能超过六个,不能为空,建立数据库的表 DESC westos.linux ##查询表的信息 INSERT INTO westos.linux VALUES('lee',123) ##插入数据 SELECT * FROM westos.linux ##查询 INSERT INTO westos.linux VALUES('lee1','123'),('lee2','123'); ##插入多个数据
-
更改
更改库的名字(这个一般情况下不改,容易造成数据的丢失) cd /var/lib/mysql ls mv westos LI systemctl restart mariabd 更改表 (进入库中进行修改) ALTER TABLE Linux RENAME userlist SHOW TABLES ALTER TABLE userlist RENAME linux 更改表目录 DESC linux; ##查看表目录的性质 ALTER TABLE linux ADD age varchar(4); ##加表目录 DESC linux ALTER TABLE linux DROP age ##删除表目录 更新表格当中数据 UPDATE linux SET age='123' ##age表格中全部是123 SELECT * FORM linux UPDATE linux SET age='18' WHERE password='789'; ##指定更改password中789列中的age为18 SELECT * FORM linux
-
删除
SELECT * FORM linux; DELETE FROM linux WHERE age='18'; ##删除数据 DROP TABLE linux; ##删除表 SHOW TABLES; DROP DATABASE westos; ##删除库 SHOW DATABASES
数据库的密码管理
-
已知密码进行修改
mysqladmin -uroot -pwestos password lee ##更改为lee -
忘记密码进行修改
systemctl stop mariadb ##停掉服务 mysqld_safe --skip-grant-tables & ##进入数据库未开启授权表模式,跳过授权表,就可以直接登录,进去后直接修改密码。 mysql ##用此登录 SELECT * FROM mysql.user ##这是用户的一个列表,用户信息在里面,其中authentication_string 代表密码信息 UPDATE mysql.user set authentication_string='lee' WHERE User='root'; ##用这个命令生成的密码是明文的,可以用SELECT * mysql .user看见,不安全 UPDATE mysql.user set authentication_string=password('lee') WHERE User='root'; ##用这个命令密码即可保密 exit ##更改完后退出 ps aux | grep mysql ##查看进程 kill -9 18506 ##将进程全部结束掉。 ps aux | grep mysql ##再看一下进程,保证进程全部结束掉 systemctl start mariadb.service ##再次开启这个服务 数据库出问题了(企业中不能删) 停掉 systemctl stop mariadb 删目录rm -rf /var/lib/mysql/ 重装一下dnf reinstall mariadb-server -y
用户的授权
建立用户
CREATE USER westos@localhost identified by 'westos' ##此用户只能在本机登录数据库
CREATE USER westos@'%' identified by 'westos' ##用户可以进行远程登录,网络登录 ,可用网络登录的前提是数据库必须开启对外开放接口
建立表格做出实验环境
CREATE DATABASE westostest; ##在root下建立一个数据库
CREATE TABLE westostest.userlist(
username varchar(10) not null,
passwd varchar(30) not null
); ##创建了一个表格
INSERT INTO westostest.userlist VALUES('lee','123'),('lee1','123');
##给表格填入东西
SELECT * FROM westostest.userlist; ##查看这个表格的信息
在root下对其他用户授权
GRANT SELECT ON westostest.* TO westos@localhost; ##给westos@localhost这个用户授予查看这个目录的权利
SHOW GRANTS FOR westos@locahost ##查看权利是否已经授予
切换到westos中查看信息
SELECT * FROM westostest.userlist;
##可以查看,但是在 westos@locahost中我们还是不能插入,如果要进行插入还是要进行授权
在root 下进行授权
GRANT INSERT ON westostest.* TO westos@localhost;
SHOW GRANTS FOR westos@locahost;
切换到westos中查看信息
INSERT INTO westostest.userlist VALUES('lee2','123');
取消授权
REVOKE INSERT ON westostest.* FROM westos@localhost;
用户权利有哪些?SELECT Host,User FROM mysql.user; 可以看见所有用户的权利。
数据库的备份
mysqldump -uroot -pwestos mysql
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
DROP DATABASE westostest; ##删掉一个库
SHOW DATABASES;
删掉之后还原
mysql -uroot -pwestos -e "CREATE DATABASE westostest;" ##首先应该建立一个库
mysql -uroot -pwestos westostest < /mnt/westostest.sql ##还原库
SHOW DATABASES;
管理数据库(需要安装一个插件 phpmyadmin3.4)
##管理数据库需要安装一个插件 phpmyadmin3.4,php,默认电脑不支持数据库,需要安装一个插件支持数据库
dnf reinstall httpd php php-mysqlnd.x86_64 -y ##安装插件
systemctl enable --now httpd
systemctl restart httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html ##进入文件所在位置将其解压到http默认发布目录
cd /var/www/html/ ##进入默认发布目录
mv phpMyAdmin-3.4.0-all-languages mysqladmin ##更改名字方便使用
cd mysqladmin ##切换所解压的文件中
ls
vim Documentation.txt ##进入软件帮助文档查看安装需要什么,由此知道我们需要生成一个配置文件
cp config.sample.inc.php config.sample.php
http://192.168.2.100/mysqladmin ##浏览器中管理数据库
##拖入压缩包进行解压