Linux下的数据库管理

数据库

按照数据结构来组织、存储和管理数据的建立里在计算机存储设备上的仓库。
简单理解就是,许多表格放在一起,组成一个库,库放在一起组成一个数据库,mysql目前应用最广泛,mariadb是其中一个分支。
1、数据库的安装和安全初始化设置

[root@localhost yum.repos.d]# yum install mariadb-server -y
[root@localhost yum.repos.d]# systemctl start mariadb
[root@localhost yum.repos.d]# mysql #默认可以直接登陆,不安全
[root@localhost yum.repos.d]# netstat -antlpe | grep mysql *#可以看到默认端口,表示数据库安装后默认裸露在互联网上
[root@localhost yum.repos.d]# vim /etc/my.cnf #编辑配置文件
skip-networking=1 #跳过数据库在网络上开启端口的功能
[root@localhost yum.repos.d]# systemctl restart mariadb
[root@localhost yum.repos.d]# netstat -antlpe | grep mysql #无开启端口
[root@localhost yum.repos.d]# mysql_secure_installation #安全初始化脚本
添加密码
关闭匿名用户登陆
关闭超级用户远程登陆
删除测试数据库和访问
重新加载权限列表
[root@localhost yum.repos.d]# mysql -uroot -p #登陆数据库,输入密码,进入

这里写图片描述
2、数据库的查询

MariaDB [(none)]> SHOW DATABASES; #查询数据库里有什么库
MariaDB [(none)]> USE mysql; #使用mysql库
MariaDB [mysql]> SHOW tables; #查询库里有什么表格

这里写图片描述

MariaDB [mysql]> SELECT * FROM user; #查询user表的所有内容
MariaDB [mysql]> SELECT User,Host,Password FROM user; #查询user表里的User字段、Host字段和Password字段
MariaDB [mysql]> SELECT User,Host,Password FROM user Where User='root' AND Host='localhost';
# Where 跟查询的条件,条件要用‘’,查询user表里User=root且Host=localhost的User字段、Host字段和Password字段
MariaDB [mysql]> DESCRIBE user; #查询表的数据结构,也可写成DESC user

这里写图片描述
3、数据库的创建、插入

MariaDB [(none)]> CREATE DATABASE linux; #创建linux库
MariaDB [(none)]> USE linux; #使用linux库
MariaDB [linux]> SHOW tables; #查看linux库里有什么表格
MariaDB [linux]> CREATE TABLE yee(
-> username varchar(6) not null,
-> password varchar(50) not null); #linux库里创建yee表格,varchar表示可变长字符
MariaDB [linux]> DESC yee; #查询yee表的结构
MariaDB [linux]> INSERT INTO yee values ('tom',123); #yee表里插入内容,username为tom,password为123
MariaDB [linux]> SELECT * FROM yee; #查看yee表里的内容

这里写图片描述

4、数据库信息的修改
(1)库名的修改

[root@localhost yum.repos.d]# cd /var/lib/mysql/ #默认路径
[root@localhost mysql]# ls #可以查看到建立的库linux
[root@localhost mysql]# mv linux/ westos #修改库名linux为westos
[root@localhost mysql]# systemctl restart mariadb #重启数据库

但是,一般情况下,库的名字不建议修改,修改后可能会出错!
(2)表名的修改

MariaDB [linux]> ALTER TABLE yee RENAME hahaha; #修改表的名字

(3)表字段的添加与删除

MariaDB [linux]> ALTER TABLE hahaha ADD age varchar(10); #添加表的字段,默认添加在最后
MariaDB [linux]> ALTER TABLE hahaha DROP age; #删除某个字段
MariaDB [linux]> ALTER TABLE hahaha ADD age varchar(10) AFTER username; #添加字段到某个位置,不能加到最前面,有错乱的可能

这里写图片描述

这里写图片描述
(4)表内容的修改与删除

MariaDB [linux]> UPDATE hahaha SET username='jerry' WHERE username='tom'; #修改表的内容
MariaDB [linux]> DELETE FROM hahaha WHERE username='jerry'; #删除表的内容

这里写图片描述

(5)表和库的删除

MariaDB [linux]> DROP TABLE hahaha; #删除表
MariaDB [linux]> DROP DATABASE linux; #删除库

这里写图片描述
5、网页模式管理数据库

[root@localhost mysql]# yum install php httpd -y #下载php和httpd
[root@localhost mysql]# yum search php #搜索支持php的相关软件
[root@localhost mysql]# yum install php-mysql.x86_64 -y
[root@localhost mysql]# systemctl start httpd #开启htpp服务
[root@localhost mysql]# systemctl stop firewalld
[root@localhost mysql]# cd /var/www/html/
[root@localhost html]# ls
phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@localhost html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 #解压缩
[root@localhost html]# ls
phpMyAdmin-3.4.0-all-languages phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@localhost html]# rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2 #删除压缩包,节省空间
[root@localhost html]# mv phpMyAdmin-3.4.0-all-languages/ mysqladmin #重命名为mysqladmin
[root@localhost html]# ls
[root@localhost html]# cd mysqladmin/
[root@localhost mysqladmin]# cp config.sample.inc.php config.inc.php #复制生成config.inc.php文件

浏览器:172.25.254.167/mysqladmin,登陆进入网页模式,可以在网页模式对数据库进行管理
这里写图片描述
这里写图片描述
6、用户建立、授权和删除

MariaDB [(none)]> CREATE USER myself@localhost identified by '123'; #创建用户myself,by后跟密码,@‘localhost’只能在本机登陆;@‘%’可以远程登陆
MariaDB [(none)]> SHOW GRANTS FOR myself@localhost; #查看用户授权

这里写图片描述

MariaDB [(none)]> GRANT SELECT on linux.* to myself@localhost; #用户查看授权,myself用户登陆可以查看库、表

这里写图片描述
授权后测试,可以看到库,但不能进行修改、删除等操纵
这里写图片描述

更新、插入及删除授权
MariaDB [(none)]> GRANT UPDATE on linux.* to myself@localhost; #用户更新授权,myself用户在linux库里可以对表中内容进行修改,不能添加
MariaDB [(none)]> GRANT INSERT on linux.* to myself@localhost;  #插入授权,授权后用户可插入新内容
MariaDB [(none)]> GRANT DELETE on linux.* to myself@localhost; #删除授权

撤销授权、删除用户

MariaDB [(none)]> FLUSH PRIVILEGES; #重载授权表
MariaDB [linux]> REVOKE UPDATE on linux.* from myself@localhost; #撤销用户更新授权
MariaDB [linux]> DROP USER myself@localhost; #删除用户

7、数据库密码恢复

[root@localhost Desktop]# systemctl stop mariadb #关闭服务
[root@localhost Desktop]# mysqld_safe --skip-grant-tables & #跳过授权表,将进程打入后台
[root@localhost Desktop]# mysql #直接进入mysql环境
MariaDB [mysql]> SELECT * FROM user; #查看user表
MariaDB [mysql]> UPDATE mysql.user set Password=password('1234') WHERE User='root'; #修改root密码为1234,password('1234')表示使用password加密,否则密码会是明文形式保存
MariaDB [mysql]> SELECT * FROM user; #查看密码是否修改
MariaDB [mysql]> quit #退出
[root@localhost Desktop]# fg #将进程调回前台
[root@localhost Desktop]# killall -9 mysqld_safe #结束进程
[root@localhost Desktop]# ps aux | grep mysql
[root@localhost Desktop]# kill -9 pid #结束其他进程
[root@localhost Desktop]# systemctl start mariadb #打开服务
[root@localhost Desktop]# mysql -uroot -p1234 #密码修改成功

‘ SELECT * FROM user; ’查看,加密字符不同,表示密码已经修改
这里写图片描述
这里写图片描述

数据库密码修改
[root@localhost Desktop]# mysql -uroot -p1234 -e "SHOW DATABASES;" #-e 可以直接执行命令
[root@localhost Desktop]# mysqladmin -uroot -p1234 password '123' #修改超级用户密码
[root@localhost Desktop]# mysql -uroot -p123 #测试,登陆成功

8、数据库的备份

[root@localhost Desktop]# mysqldump -uroot -p123 --all-database #备份所有库
[root@localhost Desktop]# mysqldump -uroot -p123 --all-database --no-data #备份框架,不备份数据

备份及恢复方法一;

[root@localhost Desktop]# mysqldump -uroot -p123 linux > /mnt/linux.sql #备份linux库,保存到/mnt/linux.sql
[root@localhost Desktop]# mysql -uroot -p123 -e "show databases;"
[root@localhost Desktop]# mysql -uroot -p123 -e "drop database linux;" #删除linux库
[root@localhost Desktop]# ls /mnt #备份成功
[root@localhost Desktop]# mysql -uroot -p123 linux < /mnt/linux.sql #恢复时显示失败,因为linux库已经不存在了
ERROR 1049 (42000): Unknown database 'linux'
[root@localhost Desktop]# vim /mnt/linux.sql #编辑文件创建库,使用该库
CREATE DATABASE linux;
USE linux;
[root@localhost Desktop]# mysql -uroot -p123 < /mnt/linux.sql #将备份文件导入库

这里写图片描述

备份及恢复方法二:

[root@localhost Desktop]# mysql -uroot -p123 -e"CREATE DATABASE linux;" #先创建linux库
[root@localhost Desktop]# mysql -uroot -p123 linux< /mnt/linux.sql #将备份文件导入linux库

猜你喜欢

转载自blog.csdn.net/yyyxxxs/article/details/80520753