【Linux-云原生-笔记】数据库操作基础
一、什么是数据库?
数据库就是一个有组织、可高效访问、管理和更新的电子化信息(数据)集合库。
简单来说,数据库就是一个高级的Excel
二、安装数据库并初始化
1、安装数据库(MySQL)
dnf search一下mysql数据库的包
dnf search mysql
示例
复制这个软件包名
dnf install一下
dnf install mysql-server.x86_64
示例
2、打开数据库服务
systemctl enable --now mysqld.service
示例
3、启动数据库和初始化
(1)访问数据库
mysql
可以看看数据库:
mysql> SHOW DATABASES;
quit退出
quit
(2)安全初始化(设定密码相关)
mysql_secure_installation
接下来会弹出许多问题选项,我们这样设置:
1)
Would you like to setup VALIDATE PASSWORD component?
是否要更改密码?
Press y|Y for Yes, any other key for No: y
我们输入y,确认
2)
There are three levels of password validation policy:
LOW Length >= 8
低等级密码,大于8位即可
MEDIUM Length >= 8, numeric, mixed case, and special characters中级密码,要有大小写
STRONG Length >= 8, numeric, mixed case, special characters and dictionary高级密码,大小写,特殊符号
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
我们这里选择低级密码,输入0
3)
Please set the password for root here.
New password: 这里输入你要的密码,大于等于8位即可,这里博主用12345678,注意密码不会显示,并且记清楚了!
Re-enter new password: 再输一次
4)
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :
再次确认是否要更改密码,我们输入yes
5)
Remove anonymous users? (Press y|Y for Yes, any other key for No) :
是否要禁止匿名用户,输入yes
6)
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
是否要禁用root用户远程登录?我们输入yes
7)
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
是否刷新数据库?输入yes
8)
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
重启,我们输入yes
结束初始化
(3)测试安装是否成功
测试:没有密码登录失败
测试:有密码登录成功
PS:在企业中登录可不能这么登录,这样的话密码就可以通过history来看到了,那就泄露了
所以我们可以这样登录:
这样密码就不会显示出来了
测试结束
三、sql语句基本知识
1、基本语法
(1)查看当前数据库
show databases;
(2)创建数据库
create database lincoln;
(3)使用数据库
use lincoln;
(4)显示库中的表
show tables from mysql;
(5)建立表
create table mysql.userlist ( username varchar(10) not null, passwd varchar(50) not null );
(6)删除表
drop table mysql.userlist;
(7)插入数据到表
insert into userlist values ('user1','123');
我这边多插入几条:
(8)查看表的所有数据
select * from userlist;
(9)(只)查看username数据
select username from userlist;
(10)条件查询(where)
select username from userlist where passwd='333';
在userlist这个表中,查询密码passwd为333的username
(11)修改表名称
alter table userlist rename user_list;
(12)添加列到指定位置(username之后)
alter table user_list add age varchar(4) after username;
(13)删除列
alter table user_list drop age;
删完记得再加回来哈(再执行(12)的命令即可)
(14)更新整列数据
update user_list set age='20';
可以看一下,添加成功
(15)更新指定数据
update user_list set age='15' where username='user3';
(16) 删除某行数据
delete from user_list where username='user3';
可以查看一下:
已删除user3
(17)备份数据库中所有数据到all.sql文件中
先退出数据库(quit)
mysqldump -u root -p12345678 -A > /mnt/all.sql
那个警告不用管,是说你的密码可能会泄露
(18)备份数据库结构但不备份数据
mysqldump -uroot -p12345678 -A --no-data > /mnt/all-nodata.sql
(19)备份lincoln库
mysqldump -u root -p12345678 -A lincoln > /mnt/lincoln.sql
(20)删除库
drop database lincoln;
(21)恢复数据到指定库中
还是先quit退出数据库
然后,先创建一个库:
mysql -u root -p12345678 -e "create database lincoln;"
将刚刚备份(步骤19)的lincoln库的数据恢复到刚刚建立的lincoln库中
mysqldump -u root -p12345678 -p lincoln < /mnt/lincoln.sql
完成