数据库
1.数据库的介绍
1.什么是数据库
数据库就是个高级的表格软件
数据库在不设定的情况下不允许其他主机登陆(安全性)
2.常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …
3.Mysql (SUN -----> Oracle)
4.mariadb
##数据库中的常用名词##
1.字段 :表格中的表头
2.表 :表格
3.库 :存放表格的目录
4.查询 :对表格中的指定内容进行查看
2.mariadb的安装
dnf install mariadb-server.x86_64 -y
3.软件基本信息
mariadb.service ##启动服务
3306 ##默认端口号
/etc/my.cnf.d/mariadb-server.cnf ##主配置文件
/var/lib/mysql ##数据目录,当需要重新安装mariadb时需要清理此目录或备份
4.数据库开启
systemctl enable --now mariadb
5.数据库的安全初始化
1.关闭数据库开放端口
关闭端口为了防止别人通过ip连接你的主机访问你的数据库
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
skip-networking=1
systemctl restart mariadb
netstat -antlupe | grep mysql #此命令查询不到端口
2.执行安全初始化脚本
mysql_secure_installation
默认不需要密码,初始化完毕后需要
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@Mariadb ~]# mysql -u root -p ## -u 指定登陆用户 -p 密码
6.数据库的基本管理
1.查看
SHOW DATABASES; ##显示库名称
MariaDB [westos]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| westos |
+--------------------+
4 rows in set (0.000 sec)
USE mysql; ##进入mysql库
MariaDB [mysql]>USE mysql;
SHOW TABLES; ##显示库中的所有表
MariaDB [mysql]> SHOW TABLES;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| column_stats |
| columns_priv |
| db |
| event |
| func |
| general_log |
| gtid_slave_pos |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| index_stats |
| innodb_index_stats |
| innodb_table_stats |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| roles_mapping |
| servers |
| slow_log |
| table_stats |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| transaction_registry |
| user |
+---------------------------+
SELECT * FROM user; ##查询所有数据
SELECT Host,User,Password FROM user; ##查询指定字段
MariaDB [mysql]> SELECT Host,User,Password FROM user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| 127.0.0.1 | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| ::1 | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
+-----------+------+-------------------------------------------+
SELECT Host FROM mysql.user WHERE User=‘root’ #查询指定数据
MariaDB [mysql]> SELECT Host FROM mysql.user WHERE User='root';
+-----------+
| Host |
+-----------+
| 127.0.0.1 |
| ::1 |
| localhost |
+-----------+
3 rows in set (0.000 sec)
2.新建
CREATE DATABASE westos; ##新建库
CREATE TABLE linux ( ##新建表,新建立的时候必须写入表头
username varchar(6) not null,
password varchar(30) not null
);
DESC linux; ##显示表结构
INSERT INTO linux VALUES (‘user1’,‘123’); #插入数据
FLUSH PRIVILEGES; #刷新数据库
3.更改
ALTER TABLE redhat RENAME linux; # 更改表名字
ALTER TABLE linux ADD age varchar(4) AFTER password; # 添加一列age在password之后;默认在最后一行
MariaDB [westos]> SELECT * FROM linux;
+----------+----------+------+------+------+
| username | password | age | QWE | sex |
+----------+----------+------+------+------+
| user1 | 123 | NULL | NULL | NULL |
| user2 | 666 | NULL | NULL | NULL |
+----------+----------+------+------+------+
ALTER TABLE linux DROP age; # 删除age这一列
UPDATE linux SET user1=‘music’ WHERE username=‘user1’; # 将user1改为music 指定username=user1 这一数据(如果还是没有特征性可以在后面加and age=11等,知道确认为止)
4.删除
DELETE from linux where username=‘user2’ and age=‘18’; # 删除username=‘user2’ and age='18’这一行
DROP TABLE linux; # 删除linux这个表
DROP DATABASE westos; # 删除westos这个库
7.数据密码管理
1.数据密码更改
mysqladmin -u root -p password
原密码
新密码
[root@westoslinux ~]# mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:
2.数据库密码破解(当你忘记密码时登陆)
systemctl stop mariadb #停止服务
mysqld_safe --skip-grant-tables & #将登陆认证程序打入后台运行
mysql -u root 登陆(不需要输入密码)
此时登陆无需密码
效果图如下:
当未使用过mysladmin更改过密码
UPDATE mysql.user set Password=password(‘lee’) WHERE User=‘root’; #
当使用过mysladmin更改过密码
UPDATE mysql.user set authentication_string=password(‘lee’) WHERE User=‘root’;
flush privileges; # 刷新数据库
ps aux | grep mysql # 查看mysql的进程
kill -9 mysql的所有进程 # 关闭所有进程(防止其他人无密码登陆数据库)
systemctl start mariadb # 重启
8.用户授权
CREATE USER lee@localhost identified by 'lee'; ##只能用localhost登陆
CREATE USER lee@% identified by '%'; ##可以通过网络或localhost登陆
GRANT INSERT,SELECT ON westos.* TO lee@localhost;
SHOW GRANTS for lee@localhost;
REVOKE SELECT ON westos.* FROM lee@localhost;
DROP user lee@localhost;
mysql -uwestos -p -h 172.25.254.140 用别人主机授权过的远程用户的登陆数据库
9.数据库的备份
mysqldump -uroot -p123 --all-database 备份数据
mysqldump -uroot -p123 --all-database --no-data 只备份格式
mysqldump -uroot -p123 westos 查看备份文件自动导入/mnt/westos.sql
mysqldump -uroot -p123 westos > /mnt/westos.sql 不查看将备份文件导入文件
test1:备份后删除原有数据库,实验新建数据库
mysql -uroot -p123 -e “create database westos;” 新建westos数据库
(-e “命令” 不打开mysql输入命令)
mysql -uroot -p123 westos < /mnt/westos.sql 将备份文件输入到westos
test2:备份后删除原有数据库
vim /mnt/westos.sql 在文件中编辑:
CREATE DATABASE westos;
USE westos;
systemctl restart mysqld 重启
mysql -uroot -p123 < /mnt/westos.sql 将备份文件输入进新数据库
10.phpmyadmin的安装
phpmyadmin 安装后可以在软件中进行操作,更加简单方便的管理数据库
dnf install httpd php php-mysqlnd -y ## 下载httpd php php-mysqlnd
systemctl enable --now httpd ## 开启httpd服务
systemctl stop firewalld ## 停止火墙
firefox:172.25.254.250/software
wget http://172.25.254.250/software/phpMyAdmin-3.4.0-all-languages.tar.bz2 ##下载
cp phpMyAdmin-3.4.0-all-languages.tar.bz2 /var/www/html/ # 压缩包复制到指定路径
cd /var/www/html/ # 切换路径
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 # 解压
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin # 重命名
cd mysqladmin # 进入目录
cp config.sample.inc.php config.inc.php # 重命名
less Documentation.txt # 查看这个文件
vim config.inc.php # 编辑文件
dnf install php-mysqlnd.x86_64 -y # 下载插件
systemctl restart httpd # 重启
firefox http://192.168.0.12/mysqladmin