mariadb数据库的使用
1 mariadb数据库
MariaDB 是一个采用 Maria 存储引擎的MySQL分支版本,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器。
1.1 安装mariadb
dnf search mariadb
dnf install mariadb-server.x86_64 -y
1.2 软件的基本信息
- mariadb.service :启动服务
- 3306 :默认端口号
- /etc/my.cnf :主配置文件
- /var/lib/mysql:数据目录,当需要重新安装mariadb时需要清理此目录或备份
1.3 数据库开启
- 开启mariadb服务:
systemctl enable --now mariadb.service
- 查看mysql端口是否开启:
ss -antlupe |grep mysql
- 查看mariadb服务的状态:
systemctl status mariadb.service
2 数据库的安全初始化
2.1 关闭数据库端口
- 编辑数据库的配置文件:
vim /etc/my.cnf.d/mariadb-server.cnf
- 重启数据库服务:
systemctl restart mariadb.service
- 查看mysql的端口:
ss -antlupe |grep mysql
2.2 执行安全初始化脚本
- 安装完数据库后,默认不需要密码就能登陆
- 执行完安全初始化脚本:
mysql_secure_installation
- 执行完安全初始化脚本后需要指定登陆用户的帐号和密码:
登陆有两种方式:
(1) mysql -uroot -p
:指定用户,然后根据提示输入用户的密码
(2)mysql -uroot -pwestos
: -u:用户,-p:密码
3 数据库的基本管理
3.1 查看
- 常用的查看数据库数据的命令
命令 | 功能 |
---|---|
show databases; | 显示库的名称 |
use username; | 进入username的库 |
show tables; | 显示库中的表 |
select * from tablename; | 查询tablename表中的所有数据 |
select User from tablename; | 查询tablename表中的User字段的数据 |
- 数据库中查看命令的使用
3.2 新建
- 常用的新建数据库及表的命令
命令 | 功能 |
---|---|
create database linux; | 新建库 |
use linux; | 进入linux库 |
create table student(name varchar(12) not null, passwd varchar(20) not null); | 新建表 |
desc linux; | 显示表结构 |
- 创建一个库linux,并在linux库中创建student表,其中student表中包括字段name和passwd
- 使用linux库:
use linux
- 创建student表
create table student(name varchar(12) not null,passwd varchar(20) not null);
- 查看表linux的结构:
desc linux;
3.3 插入数据
- 插入一条数据:
insert into student values('hello','123');
- 插入两条数据:
insert into student values('lim','123'),('tom','234');
- 查看linux表中的所有字段:
select * from linux;
- 刷新数据库:
flush privileges
, - 必须使用flush privileges的两种情况:改密码和授权超用户
3.4 更改
- 重命名表的名称:
alter table linux rename westos;
- 在表中添加age字段:
alter table westos add age varchar(3);
- 指定插入字段的位置:
alter table westos add class varchar(16) after name;
在表中插入字段时,最好不要将字段添加到表的第一个字段,
- 删除表中的指定字段:
alter table westos drop class;
- 将name字段值为“ tom ”行的passwd值更改为 “ 666 ”
update westos set passwd='666' where name='tom';
3.5 删除
- 删除westos表中name=‘coco’的所在行:
delete from westos where name='coco';
- 删除westos表中name=tom或者passwd=123的行:
delete from westos where name='tom' or passwd='123';
- 删除表:
drop table westos;
- 删除库:
drop database linux;
4 数据库密码管理
4.1 数据库密码更改
有root用户的原始密码时,可以通过下面的命令直接修改数据库的密码:mysqladmin -uroot -pwestos password root
4.2 数据库密码的破解
如果忘记数据库的原始密码,可以通过下面的步骤破解数据库的密码
(1)登陆数据库
- 关闭mariadb服务:
systemctl stop mariadb.service
- 查看mariadb服务的状态:
systemctl status mariadb.service
- 将数据库的安全检测打入后台:
mysqld_safe --skip-grant-tables &
- mysql:登陆数据库
(2)进入数据库后修改密码
- 在rhel7中修改数据库的密码
update mysql.user set Password=password('westos') where User='root';
- 在rhel8中修改数据库的密码:
update mysql.user set authentication_string=password('westos') where User='root';
(3)结束mysql的所有进程
-
查看mysql的所有进程:
ps -aux | grep mysql
-
结束mysql的所有进程:
kill -9 34536 34636
注意:
一定要确保musql的所有进程结束,否则重启数据库后,mysql可以直接登陆,不需要用户和密码
(4)验证密码是否更改成功
- 重启mariadb服务:
systemctl restart mariadb.service
- root用修改过的密码重新登陆数据库:
mysql -uroot -pwestos
5 用户授权
(1)创建用户只能用localhost登陆
create user linux@'localhost' identified by 'linux';
- 授权后linux用户可以登陆,但是没有查看的权限
(2)通过网络或localhost登陆
- 赋予权限:
grant 权限 on 数据库名.数据表 to 用户名@可登录地址;
grant insert,select on mysql.* to linux@localhost; ##将 insert,select的权限 赋予linux@localhost
- 查看权限:
show grants for 用户名@可登录地址;
show grants for linux@localhost;
(3)收回权限:revoke 权限 on 数据库名.数据表 用户名@可登录地址;
revoke select on mysql.* from linux@localhost ##收回 linux@localhost的select权限
-
收回mysql.*的用户授权:
evoke select on mysql.*from lee@localhost;
-
查看权限:
show grants for lee@localhost;
- 删除用户linux:
drop user linux@localhost;
- 刷新数据库:
flush privileges;
6 数据库的备份和还原
6.1 数据库的备份
(1)备份所有的数据库:mysqldump -uroot -pwestos --all-database
(2)备份所有的数据库,不包括数据
mysqldump -uroot -pwestos --all-database --no-data
6.2 备份数据库的还原
(1)实验环境:
- 创建数据库linux:
mysql -uroot -pwestos -e "create database linux;"
- 备份据库linux中的数据到/mnt/linux.sql
mysqldump -uroot -pwestos linux >/mnt/linux.sql
- 删除linux库:
mysql -uroot -pwestos -e "drop database linux;"
(2)恢复备份数据库的两种方式
- 先创建库再还原数据库
-
创建数据库:
mysql -uroot -pwestos -e "create database linux;"
-
将备份的数据导入linux库中:
mysql -uroot -pwestos linux < /mnt/linux.sql
-
查看linux库中student表的内容:
mysql -uroot -pwestos -e "select * from linux.student;"
- 直接还原被删的数据库
mysql -uroot -pwestos < /mnt/linux.sql
- 出现错误提示,没有数据库被选择,原因是备份的
/mnt/linux.sql
文件中没有创建linux库和使用这个库,编辑/mnt/linux.sql
文件,添加创建库linux和进入linux库的命令:
5 MySQL管理工具:phpMyAdmin
phpMyAdmin 是使用最广泛的MySQL图形化管理工具,是一款使用PHP 开发的基于B/S模式的 MySQL 客户端软件,该工具是基于 Web 跨平台的管理程序,并且支持多语言。
phpMyAdmin 为Web 开发人员提供了类似 Access,SQL Server 的图形化数据库操作界面,通过该管理工具可以对 MySQL 进行各种操作,如何创建数据库,数据表和生成 MySQL 数据库脚本文件等。
5.1 phpmyadmin的安装
(1)开启httpd服务:systemctl start httpd
(2)关闭防火墙: systemctl stop firewalld
(3)安装软件:dnf install php php-mysqlnd.x86_64 -y
(4)官网下载安装包:phpMyAdmin-3.4.0-all-languages.tar.bz2
(5)将安装包解压到/var/www/html/目录下:tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
(6)重命名: mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
(7)进入到/var/www/html/mysqladmin目录中复制模板文件:cp config.sample.inc.php config.inc.php
(8)重启httpd服务:systemctl start httpd
(9)输入网址:http://172.25.254.10/mysqladmin/
, 查看软件安装成功的界面
5.2 phpmyadmin的使用
(1)输入账号密码登陆
(2)选择语言
(2)创建数据库
(3)在linux库中新建表
(4)在表中插入数据
(5)数据库的查询
(6)删除linux数据库