数据的定义
数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。
什么是数据库
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
主要的数据库种类
名称 | 所属公司 |
---|---|
sqlserver | Miscrosoft |
mysql | Oracle |
oracle | Oracle |
db2 | IBM |
现在大多数企业所使用的数据库是Mysql,他是开源的,而Oracle则是最稳定的。
本篇则重点介绍一下Mysql
一.数据库的安装与安全初始化
安装
1.yum search mariadb
2.yum install mariadb-server -y
3.systemctl start mariadb
安全初始化
1.netstat -antlupe | grep mysql ##查看接口
2.vim /etc/my.cnf ##在配置文件里关闭接口
skip-networking=1
3.systemctl restart mariadb ##重启服务
4.mysql_secure_installation ##安全初始化插件,修改密码
Enter current password for root (enter for none): ##输入原密码
Set root password? [Y/n] ##设置数据库超级用户密码
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] ##是否删除匿名用户
Disallow root login remotely? [Y/n] ##不允许root用户远程登陆
Remove test database and access to it?[Y/n] ##是否删除test库
Reload privilege tables now? [Y/n] ##是否重新加载权限表
5.mysql -uroot -p ##密码登陆
登陆后操作命令一般用大写字母,命令后用;结尾
二.数据库管理
1.新建
SHOW DATABASES; ##列出库
CREATE DATABASE hello; ##建立库
USE hello; ##进入库
CREATE TABLE linux ( ##建立表
->username varchar(50) not null,
->password varchar(50) not null
-> );
DESC linux; ##查看表结构
INSERT INTO linux VALUES ('aaa','111'); ##插入数据到linux表中
SELECT * FROM linux; ##查询所有字段在linux表中
SELECT username FROM linux; ##查询指定字段在linux表中
2.备份
mysqldump -uroot -p123456 hello > /mnt/hello.sql ##备份库
mysqldump -uroot -p123456 hello --no-data ##只备份框架
mysqldump -uroot -p123456 --all-database ##备份所有数据库
mysqldump -uroot -p123456 --all-database --no-data ##只备份所有库的框架
3.更改
一般不要改变数据库的名称,否则可能会导致数据丢失
UPDATE linux SET password=password('00')WHERE username='aaa'; ##更改数据,where后面是指定的信息
此时新添加的password是加密形式的字符
ALTER TABLE linux ADD class varchar(20); ##插入新的数据
ALTER TABLE linux DROP class; ##删除class
ALTER TABLE linux ADD age varchar(20) AFTER username; ##增加的数据在password之后,默认加在最后
ALTERA TABLE linux RENAME redhat; ##更改表名称
4.删除
DELETE FROM redhat WHERE username='aaa'; ##删除数据
DROP TABLE redhat; ##删除表
DROP DATABASE hello; ##删除库
5.恢复
方式1
1.vim /mnt/hello.sql ##编辑文件
CREATE DATABASE hello;
USE hello;
2.mysql -uroot -p123456 < /mnt/hello.sql ##导入数据
方式2
mysql -uroot -p123456 -e "CREATE DATABASE hello;"
mysql -uroot -p123456 hello < /mnt/hello.sql
6.用户授权
SELECT USER FROM mysql.user; ##查看用户列表
CREATE USER student@'localhost' identified by '111111'; ##建立本地用户,student@'%'则用户可在其他主机远程登陆
但student没有进入和查看hello库的权限,需要添加
在root用户登陆
GRANT SELECT,INSERT on hello.* TO student@localhost; ##给用户关于库的相关权限
SHOW GRANTS FOR student@localhost; ##显示用户权限列表
REVOKE INSERT ON hello.* FROM student@localhost;##取消用户权限
DROP USER student@localhost;##删除用户
FLUSH PRIVILEGES; ##刷新
7.密码的更改
mysqladmin -uroot -p123456 password 654321 ##修改密码
忘记root密码
1.systemctl stop mariadb ##停止服务
2.mysqld_safe --skip-grant-tables & ##跳过读取密码服务文件并打入后台
3.mysql
UPDATE mysql.user SET Password=password('hello') where User='root'; ##修改密码
4.ps aux | grep mysql
5.kill -9 ##结束mysql所有进程
6.systemctl start mariadb ##打开服务
7.mysql -uroot -phello ##用新密码登陆