一 安装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包含的信息:工号、姓名、年龄、性别、薪资、部门
添加三个人的信息
删除关于张三的记录
将李四的性别改为女,并显示员工表中所有的员工信息