单元 八
Mariadb数据库
简介
本单元涵盖的主题:
1. 安装Mariadb数据库
2. 配置和管理数据库
3. 配置数据库用户和访问权限
4. 备份和恢复数据库
配置环境:
1.vim /etc/sysconfig/network-scripts/ifcfg-eth0 systemctl restart network ifconfig
2.vim /etc/yum.repos.d/rhel_dvd.repo yum clean all
3.hostnamectl set-hostname mariadb.example.com
1.登陆并进行安全初始化
[root@mariadb ~]# yum install mariadb-server -y ##安装数据库服务
Complete!
[root@mariadb ~]# systemctl start mariadb
[root@mariadb ~]# vim /etc/my.cnf ##关闭数据库在网络接口开启的接口
[root@mariadb ~]# systemctl restart mariadb
[root@mariadb ~]# netstat -antlpe | grep mysql
[root@mariadb ~]# mysql ##直接访问mysql
[root@mariadb ~]# mysql_secure_installation ##安全初始化设置
[root@mariadb ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@mariadb ~]# mysql -uroot -p ##-u表示指定登陆用户,-p表示指定此用户密码
2.查询
[root@mariadb ~]# mysql -uroot -p
MariaDB [(none)]> show databases; ##显示数据库
MariaDB [(none)]> use mysql; ##进入mysql库
MariaDB [mysql]> show tables; ##显示当前库中表的名称
MariaDB [mysql]> select * from user; ##查询user表中的所有内容(*可以用此表中的任何字段来代替)
MariaDB [mysql]> desc user; ##查询user表的结构(显示所有字段的名称)
3.数据库以及表的建立
MariaDB [mysql]> create database lijingyan; ##建立名字为lijingyan的表
[root@mariadb ~]# cd /var/lib/mysql/
[root@mariadb mysql]# ls ##查看自己在数据库中建立的表
[root@mariadb mysql]# rm -fr westos/ ##删除用rm -fr 数据库中都是文件
[root@mariadb mysql]# mysql -uroot -p
MariaDB [(none)]> create database westos ##创建westos库
MariaDB [(none)]> show databases;
MariaDB [(none)]> use westos;
Database changed
MariaDB [westos]> show tables; ##显示当前数据库中表的名称
Empty set (0.00 sec)
MariaDB [westos]> create table linux( ##创建linux表,并且linux表含有两个字段
-> username varchar(15) not null, ##username字符字段最大是15
-> passwd varchar(15) not null ##passwd字符字段最大是15
-> );
Query OK, 0 rows affected (0.11 sec)
MariaDB [westos]> desc linux;
MariaDB [westos]> insert into linux values ('user1','123');##向linux表中插入数据,username字段的数据为user1
MariaDB [westos]> insert into linux values ('user2',password('123'));##插入password字段的数据是用password加密过的
MariaDB [westos]> select * from linux;
MariaDB [westos]> desc linux
-> ;
MariaDB [westos]>delete from linux where password='123'; ##删除密码为123的user
4.更新数据库信息
MariaDB [westos]> update linux set password=password('123') where username='user1';##更新user1的密码
MariaDB [westos]> alter table linux add class varchar(20) not null;##添加class字段到linux表最后一列(默认)
MariaDB [westos]> select * from linux;
MariaDB [westos]> alter table linux drop class; ##删除class字段
也可以用after来选择将class添加到什么位置 ##添加class字段到date字段之后
5.删除数据库
delete from linux where username=user1; ##删除user1的数据从linux表中
drop table linux; ##删除linux表
drop database westos; ##删除westos库
6.数据库的备份
mysqldump -u root -pwestos --all-database ##备份所有表中的所有数据
mysqldump -u root -pwestos --all-database --no-data ##备份所有表,但不备份数据
mysqldump -u root -pwestos westos ##备份westos库
mysqldump -u root -pwestos westos > /mnt/westos.sql ## 备份westos库并把数据保存到westos.sql中
mysqldump -u root -pwestos westos linux > /mnt/linux.sql ##备份westos库中的linux表
mysql -uroot -pwestos -e "create database lijingyan;" ##建立westos库
[root@mariadb mysql]# mysql -uroot -pwestos lijingyan < /mnt/westos.sql ##把数据导入westos库
7.用户授权
create user lee@localhost identified by 'lee'; ##建立用户lee,此用户只能通过本机登陆
create user lee@'%' identified by 'lee'; ##建立用户lee, 此用户可以通过网络登陆
grant insert,update,delete,select on westos.test to lee@localhost; ##用户授权
grant select on westos.* to lee@'%'
show grants for lee@'%' ##查看用户授权
show grants for lee@localhost
revoke delete on westos.test from lee@localhost; ##去除用户授权权力
drop user lee@'%' ##删除用户
8.密码修改
[root@mariadb mnt]# mysqladmin -uroot -pwestos password lee ##修改超级用户密码
[root@mariadb mnt]# mysql -uroot -pwestos ##尝试用旧密码登陆失败
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@mariadb mnt]# mysql -uroot -plee ##用新密码登陆成功
[root@mariadb mnt]# systemctl stop mariadb.service
[root@mariadb mnt]# mysqld_safe --skip-grant-tables & ##开启mysql登陆接口并忽略授权表
[root@mariadb mnt]# mysql ##直接不用密码就可以登陆
MariaDB [(none)]> update mysql.user set Password=password('123') where User='root'; ##过滤mysql的所有进程并结束这些进程
[root@mariadb mnt]# ps aux | grep mysql
[root@mariadb mnt]# kill -9 1890
[root@mariadb mnt]# systemctl restart mariadb ##重新开启mysql
[root@mariadb mnt]# mysql -uroot -p123 ##登陆测试成功
二.数据库的网页管理工具(图形控制)
1.安装
[root@mariadb ~]# yum install httpd php php-mysql -y ##安装
[root@mariadb ~]# systemctl start httpd
[root@mariadb ~]# systemctl enable httpd
[root@mariadb ~]# > /var/log/messages
[root@mariadb ~]# systemctl enable httpd
[root@mariadb ~]# systemctl stop firewalld
[root@mariadb ~]# systemctl disable firewalld
[root@mariadb ~]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html
[root@mariadb html]# mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
[root@mariadb mysqladmin]# cp -p config.sample.inc.php config.inc.php
[root@mariadb mysqladmin]# vim /var/www/html/index.html
[root@mariadb mysqladmin]# vim config.inc.php
[root@mariadb mysqladmin]# systemctl restart httpd
[root@mariadb mysqladmin]# systemctl restart mariadb