数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
一.安装数据库和基本安全初始化
1.安装数据库软件
yum install mariadb-server
2.打开数据库软件
systemctl start mariadb
3.查看数据库在网络中对外的接口
netstat -antlpe | grep mysql
4.编辑配置文件关闭该接口
vim /etc/my.cnf
在里边写上skip-networking=1
5.重启数据库服务
systemctl restart maridb
6.我们发现,现在数据库可以在本机无密码登陆,这样是很不安全的,所以我们需要对其做一些安全初始化的配置。
执行安全初始化脚本:mysql_secure_installation
现在没有密码,直接回车,输入新的密码,确认密码,接下来的操作都是回车
7.以用户登陆
mysql -uroot -p
二.查询sql
1.登陆mysql登录(mysql后所有命令均以分号结尾)
2.显示一共有几个数据库
SHOW DATABASES;
3. 进入mysql数据库
USE mysql;
4.显示mysql数据库中有的表
SHOW TABLES;
5 显示user表的格式.
DESC user;
6.在user表中查询所有
SELECT * FROM user;
6.在user表中查询指定的属性
SELECT User,Host,Passwd FROM user;
7.查有条件的属性
SELECT User,Host,Password,Select_priv FROM user WHERE User='root'AND Host='localhost';
三.创建数据库和数据库中的表
1.创建一个数据库名为linux
CREATE DATABASE linux;
2.在数据库中建立一个表名为jay0
CREATE TABLE jay0( username varchar(6) not null, password varchar(10) not null);
varchar(6) 表示该属性的数据类型为varchar,长度不超过6
notnull 表示该属性值不能为空
3. 向表格中添加内容(要按照表格的格式添加)
INSERT INTO jay0 values('tom','12345');
四.数据库的修改
数据库和数据库中表的信息存放在/var/lib/mysql
1.修改表的名字
ALTER TABLE jay0 RENAME messages;
2.修改表的结构
(1)将某一属性添加到表的最后
ALTER TABLE jay0 ADD age varchar(10);
(2)将某一属性添加到指定位置
ALTER TABLE jay0 ADD age varchar(10) AFTER username;
3.删除表中的某个属性
ALTER TABLE jay0 DROP age;
4.修改表中满足某一条件的属性值
UPDATE jay0 SET password='123' WHERE username='tom';
5.删除表中满足条件的某一行
DELETE FROM jay0 WHERE username='tom';
6.删除表
DROP TABLE jay0;
7.删除数据库
DROP DATABASE linux;
五.用网页管理数据库
1.安装http,php以及支持php管理mysql的php-mysql.x86_64
2.下载适合自己主机版本的phpMyAdmin-3.4.0-all-languages.tar.bz2
3.在目录/var/www/ftp下将这个文件解压
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
4.对解压文件重命名
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
mysqladmin是管理数据库的入口
5.进入mysqladmin目录下
cp config.sample.inc.php config.inc.php
6.配置工作就做好了,在浏览器处输入172.25.254.110/mysqladmin进入管理界面
7.在管理界面出新建数据库和数据库中的表
8.在shell中登陆mysql,我们会发现,数据库和表格已经同步过来了
六.管理数据库用户
1.创建用户
CREATE USER qi@localhost identified by 'redhat';
创建用户的名称是qi,密码是redhat
qi@localhost表示该用户只能本机登陆,qi@'%'表示该用户可以远程登陆
2.查看数据库中的所有用户
SELECT User FROM mysql.user
3.显示某个用户对数据库所有的权限
SHOW GRANTS FOR qi@localhost;
4.对某个用户授予固定的权限
GRANT INSERT,UPDATE on linux.* to qi@localhost;
对qi这个用户添加linux表的增加和更新权限
5.撤销年某个用户的固定权限
REVOKE UPDATE on linux.* from qi@localhost;
撤销qi这个用户对linux表的更新权限
6.重新加载授权表
FLUSH PRIVILEGES;
7.删除某个用户
DROP USER qi@localhost;
七.忘记数据库超级用户的密码
1.关掉数据库
systemctl stop mariadb
2.跳过注册表直接登陆数据库并打入后台
mysqld_safe --skip-grant-tables &
3.登陆数据库(不用密码)
4.修改数据库超级用户密码
update mysql.user set Password='123' WHERE User='root';(密码会以明文显示)
update mysql.user set Password=password('123') WHERE User='root';(密码是以密文显示)
5.结束不用密码登陆的进程
fg ctrl+z
killall -9 mysqld_safe
6.查看mysql的所有进程,并结束掉
ps aux | grep mysql
kill -9 进程号
7.打开数据库
systemctl start mariadb
八.备份与恢复数据库
1.备份所有数据库
mysqldump -uroot -predhat --all-database (备份框架和内容)
mysqldump -uroot -predhat --all-database --no-data (只备份框架)
2.备份数据库到指定的位置
mysqldump -uroot -predhat linux > /mnt/linux.sql
3.删除已经备份的数据库
mysql -uroot -predhat -e "drop database linux;"
4.恢复数据库
mysql -uroot -predhat mysql < /mnt/linux.sql
因为数据库中已经没有linux这个数据库了,所以在恢复的时候我们会遇到问题
解决方法:
(1)vim /mnt/linux.sql
在里边写上:CREATE DATABASE linux;
USE linux;
mysql -uroot -predhat mysql < /mnt/linux.sql
(2)删除按第一种方法恢复的数据库,在/mnt/linux.sql中注释掉刚添加的那两行
mysql -uroot -predhat -e "CREATE DATABASE linux;" 先创建linux这个数据库
mysql -uroot -predhat mysql < /mnt/linux.sql