一.数据库的介绍
什么是数据库
数据库就是个高级的表格软件
常见数据库:Mysql、Oracle、mongodb、db2、sqlite、sqlserver .......
Mysql (SUN-----> Oracle)
mariadb:MariaDB数据库管理系统是MySQL的一个分支
数据库中的常用名词:
1.字段 :表格中的表头
2.表 :表格
3.库 :存放表格的目录
4.查询 :对表格中的指定内容进行查看
二.软件的使用
1.mariadb的安装与开启
dnf install mariadb-server -y ##下载mariadb并安装
systemctl enable --now mariadb ##开启
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
rpm -qc mariadb-server
/etc/logrotate.d/mariadb
/etc/my.cnf.d/enable_encryption.preset
/etc/my.cnf.d/mariadb-server.cnf
/var/log/mariadb/mariadb.log
2.关闭数据库开放端口
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
skip-networking=1
systemctl restart mariadb
查看效果:
netstat -antlupe | grep mysql ##此命令查询不到端口据库的安全初始化
2)执行安全初始化脚本
设置超级用户密码
禁止匿名登陆,禁止超级用户远程登录
去掉测试表重新加载数据库
三.数据库的管理
1.显示
MariaDB [(none)]> SHOW DATABASES; ##显示库名称
MariaDB [(none)]> SHOW TABLES FROM mysql; ##查看mysql数据库中的所有表
MariaDB [(none)]> USE mysql; ##进入mysql数据库
MariaDB [mysql]> SHOW TABLES; ##显示库中的所有表
MariaDB [mysql]> SELECT * FROM user; ##查询所有数据
MariaDB [mysql]> SELECT Host,User,Password FROM user; ##查询指定字段
MariaDB [mysql]> SELECT Host,User,Password FROM mysql.user WHERE Host='localhost';
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.更改
MariaDB [westos]> ALTER TABLE userlist RENAME user;
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> DESC user;
MariaDB [westos]> ALTER TABLE user add address varchar(50);
MariaDB [westos]> ALTER TABLE user add age varchar(4);
MariaDB [westos]> DESC user;
MariaDB [westos]> ALTER TABLE user DROP age;
MariaDB [westos]> ALTER TABLE user add age varchar(4) AFTER password;
MariaDB [westos]> DESC user;
MariaDB [westos]> UPDATE user SET password='456' WHERE username='user3';
MariaDB [westos]> SELECT * FROM westos.user;
4.删除
MariaDB [westos]> DELETE FROM westos.user WHERE username='user3';
MariaDB [westos]> DROP TABLE westos.user; ##删除表
MariaDB [westos]> DROP DATABASE westos; ##删除库
四.数据密码管理
1.更改
mysqladmin -uroot -p password westos
2.数据库密码破解
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
UPDATE mysql.user set Password=password('westos') WHERE User='root'; ##当未使用过mysladmin更改过密码
UPDATE mysql.user set authentication_string=password('westos') WHERE User='root'; ##当使用过
mysladmin更改过密码
flush privileges;
ps aux | grep mysql
kill -9 mysql的所有进程
systemctl start mariadb
五.用户授权
添加用户:
CREATE USER westos@localhost identified by 'westos'; ##只能用localhost登陆
CREATE USER lee@% identified by '%'; ##可以通过网络或localhost登陆
用户授权:
GRANT SELECT ON *.* TO westos@localhost; ##给用户westos加入查询权限
GRANT INSERT ON *.* TO westos@localhost;
SHOW GRANTS FOR westos@localhost; ##查看用户权限
REVOKE INSERT ON *.* FROM westos@localhost; ##移除权限
六.数据库的备份
采用非交互方式建立一个库:
mysql -uroot -pwestos -e "CREATE DATABASE westos;"
mysql -uroot -pwestos -e "CREATE TABLE westos.user(user varchar(10) not null,passwd varchar(50) not null);"
mysql -uroot -pwestos -e "INSERT INTO westos.user VALUES ('user1','123'),('user2','123');"
mysql -uroot -pwestos -e "SELECT * FROM westos.user;"
1.库的备份
mysqldump -uroot -pwestos --all-database ##全部备份
mysqldump -uroot -pwestos --all-database --no-data ##不备份数据
mysqldump -uroot -pwestos --all-database --no-data | wc -l
mysqldump -uroot -pwestos --all-database | wc -l
mysqldump -uroot -pwestos westos > /mnt/westos.sql ##将westos库全部备份到/mnt/westos.sql文件中
2.数据的恢复
mysql -uroot -pwestos -e "DROP DATABASE westos;" ##删除mysql数据库中的westos库
mysql -uroot -pwestos -e "SHOW DATABASES;"
方法1:先创建DATABASE,之后导入数据到已经创建的westos库中
mysql -uroot -pwestos -e "CREATE DATABASE westos;"
mysql -uroot -pwestos westos < /mnt/westos.sql
mysql -uroot -pwestos -e "SELECT * FROM westos.user
方法2:编辑备份文件
vim /mnt/westos.sql
CREATE DATABASE westos;
USE westos;
mysql -uroot -pwestos < /mnt/westos.sql ##直接将备份文件导入
mysql -uroot -pwestos -e "SELECT * FROM westos.user;" ##测试一下,是否成功
七.phpmyadmin的安装
cd /mnt/
ls
westos.sql
wget http://172.25.254.250/software/phpMyAdmin-3.4.0-all-languages.tar.bz2
ls
phpMyAdmin-3.4.0-all-languages.tar.bz2 westos.sql
dnf install httpd php php-mysqlnd -y
ls
phpMyAdmin-3.4.0-all-languages.tar.bz2 westos.sql
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
cd /var/www/html/
ls
phpMyAdmin-3.4.0-all-languages
mv phpMyAdmin-3.4.0-all-languages/ myadmin
ls
myadmin
cd myadmin/
cp config.sample.inc.php config.inc.php ##根据模板生成配置文件
less Documentation.txt
vim config.inc.php
systemctl restart httpd ##重启服务