数据库mariadb的使用

一 安装mysql
MySQL是一个关系型数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性
1)yum search mariadb
寻找与mariadb有关的软件包

yum install mariadb-server.x86_64 -y

安装mariadb的server软件
2) 启动mariadb服务

systemctl start mariadb
systemctl enable mariadb

3) mariadb监听的端口

netstat -antlpe | grep mysql
ss -antlpe | grep mysql

这里写图片描述
4) 只允许本地连接,阻断所有来自网络的连接

vim /etc/my.cnf

写入:skip-networking=1
并且重启服务:systemctl restart mariadb
二 mariadb的初始化
1) 设置mysql的登陆密码

mysql_secure_installation

这里写图片描述
设置新的登陆密码

mysql -uroot -pwestos

这里写图片描述
检验新密码是否登陆成功
2) mysql基本操作语句
1>

show databases;

这里写图片描述
显示数据库,类似于目录,里面包含多个表
2>

use mysql;

这里写图片描述
进入名称为mysql的数据库
3>

show tables;

这里写图片描述
显示该数据库中的表
4>

desc user;

这里写图片描述
显示表的结构
5>

select * from user;

这里写图片描述
显示user表中的内容
6>

select Host,User,Password from user;

这里写图片描述
显示表中某几列
7>

create database westos;

这里写图片描述
创建一数据库名称为westos
8>

create table westosuser(
    -> username varchar(10) not null,
    -> passwd varchar(6) not null
    -> );
![这里写图片描述](https://img-blog.csdn.net/20180905113324871?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY2ODEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
创建一表

9>

insert into westosuser values ('user1','123');

这里写图片描述
向表中插入内容
10>

insert into westosuser(passwd,username) values("456","user2");

这里写图片描述
按照指定顺序向表中插入数据
11>

update westosuser set passwd='456' where username="user1";

这里写图片描述
更新表中的内容
12>

alter table westosuser add sex varchar(3);

这里写图片描述
添加sex列到westosuser表中
13>

delete from westosuser where username="user1";

这里写图片描述
删除表中用户名为user1的记录
14>

drop table westosuser;

这里写图片描述
删除表
15>

drop database westos;

这里写图片描述
删除数据库
三 用户和访问权限的操作
1)create user hello@localhost identified by 'hello';
这里写图片描述
创建用户hello,可在本机登陆,密码为hello
2)

create user hello@'%' identified by 'hello';

这里写图片描述
创建用户hello,可在远程登陆,密码为hello
3)

create database mariadb;

这里写图片描述
创建一数据库mariadb,对普通用户进行
4)

grant all on mariadb.* to hello@localhost;

这里写图片描述
给hello@localhost用户授权,如果为all,授权所有权限
一般有这些权限:insert,update,delete,select,create
5)

flush privileges;

这里写图片描述
刷新,重载授权表
6)

show grants for hello@localhost;

这里写图片描述
查看用户授权
7)

revoke delete,update on mariadb.* from hello@localhost;

这里写图片描述
删除指定用户授权
8)

drop user hello@localhost;

这里写图片描述
删除用户
四 忘记mysql用户密码时,该怎么找回
1) 关闭mariadb服务

systemctl stop mariadb

这里写图片描述
2) 跳过授权表

mysqld_safe --skip-grant-table &

这里写图片描述
注意:这里要用超级用户
3) 修改root密码

mysql

这里写图片描述

update mysql.user set Password=password('redhat') where User='root';

这里写图片描述
4) 关闭跳过授权表的进程,启动mariadb服务,使用新密码即可
1>

ps aux | grep mysql

这里写图片描述
2>

kill -9 pid

这里写图片描述
3>

systemctl start mariadb

这里写图片描述
4>

mysql -uroot -predhat

这里写图片描述
这时再用mysql是进不去了
五 mysql的备份与恢复
1) 备份
1>

mysqldump -uroot -predhat  mariadb >mariadb.dump

这里写图片描述
将内容备份到当前目录的mariadb.dump文件中
2>

mysqldump -uroot -predhat --no-data mariadb > `date +%Y_%m_%
d`_mariadb.dump

这里写图片描述
也可以设置显示其日期
3>

mysqldump -uroot -pwestos --all-databases >mariadb.dump

这里写图片描述
也可以选择备份库的所有内容
2)恢复
1>

mysqladmin -uroot -predhat create hello

建立数据库hello
2>

mysql -uroot -predhat  mariadb< mariadb.dump

将数据恢复到hello库中
六 mariadb的中文编码问题
当使用mysql数据库时,当然会使用中文存储一些数据,但是默认情况下存储的中文是 ???,表示看不懂
因此如何修改数据库中的编码格式设置呢?
1) 数据库编码格式的查看
首先登陆到数据库里面:mysql -uroot -predhat
查看mysql的编码格式:show variables like 'character_set_%';
这里写图片描述
2) 临时修改数据库的编码格式
修改除了character_set_filesystem之外的其他变量的编码格式为utf8

set character_set_server='utf8';
set character_set_database = 'utf8';

这里写图片描述
但是,当重启服务后,刚才的设置就会直接失效
3) 永久修改数据库的编码格式
配置mysql的配置文件
首先我们切换到配置文件 /etc/my.cnf.d 目录中,设置编码格式:

cd /etc/my.cnf.d 

这里写图片描述
第一个文件修改: client.cnf 这里需要超级用户来完成,普通用户只有可读的权限

vim client.cnf

这里写图片描述
第8行添加 default-character-set=utf8
第二个文件修改: server.cnf

vim server.cnf

这里写图片描述
第13行添加: character-set-server=utf8
但是发现设置完后,发现重启mariadb服务后,character_set_database并没有进行修改,因此,直接设置character_set_database编码格式为utf8

set character_set_database = 'utf8';

这里写图片描述
这样就解决了中文编码的问题了
七 中文编码的检测
创建员工表(employee),要求包含字段(工号、姓名、年龄、性别、薪资、部门)。
要求命令行完成以下操作:(禁止使用图形工具软件)
1)添加三条员工信息
分别是:
1:张三,18 , 男,5000 , IT部门
2:李四,20,男,6000,市场部
3:小红,28,女,10000,人事部
2)删除关于“张三“的记录
3)将“李四“的性别改为”女”
4)查询并显示员工表中所有的员工信息

MariaDB [(none)]> create database employee;
MariaDB [(none)]> use employee;
MariaDB [employee]> create table employinfo(工号 int(5),姓名 varchar(30),年龄 int(5),性别 varchar(10),薪资 int(10),部门 varchar(30));
MariaDB [employee]> insert into employinfo values(1,'张三',18,'男',5000,'IT部门');
MariaDB [employee]> insert into employinfo values(2,'李四',20,'男',6000,'市场部');
MariaDB [employee]> insert into employinfo values(3,'小红',28,'女',10000,'人事部');
MariaDB [employee]> delete from employinfo where 姓名='张三';
MariaDB [employee]> update employinfo set 性别='女' where 姓名='李四';
MariaDB [employee]> select * from employinfo;

这里写图片描述
首先建立数据库employee
这里写图片描述
建立数据库中表employinfo包含的信息:工号、姓名、年龄、性别、薪资、部门
这里写图片描述
添加三个人的信息
这里写图片描述
删除关于张三的记录
这里写图片描述
将李四的性别改为女,并显示员工表中所有的员工信息

猜你喜欢

转载自blog.csdn.net/weixin_42668123/article/details/82386963
今日推荐