部署安装数据库
数据库:高级的Excel软件
- 数据库的常用名词
字段:username字段(表头:username password class address)
表:表格
库:存放表格的目录
查询:对表格中的指定内容进行查看
- 安装并启用数据库
dnf list | wc -l 6656
安装数据库,mariadb是MySQL的分支
dnf search mariadb
dnf install mariadb-server.x86_64 -y
rpm -ql mariadb-server.x86_64
目录 | 说明 |
---|---|
/var/lib/mysql | 数据目录 |
/etc/my.cnf.d/mariadb-server.cnf | 主配置文件 |
/usr/lib/systemd/system/mariadb.seervice | 服务启动脚本 |
启动数据库
systemctl enable --now mariadb
#无密码,直接登录
mysql
登陆数据库
- 对数据库进行安全初始化
1)step1:设置密码
#初始化脚本
mysql_secure_installation
#回车:查询原始密码
#y:是否设定数据库的管理员的密码
#设定密码:westos
#y:是否禁止匿名用户的登录权利
#y:是否禁止管理员通过远程登录远程超级用户的登录权利
#删除测试库
#y:reload刷新数据库
密码登陆数据库
2)step2:关闭端口
默认情况下,MySQL是对外开放端口
netstat -antlupe | grep mysql
企业要求关闭3306端口,存在对外开放的端口,很危险
编辑主配置文件
vim /etc/my.cnf.d/mariadb-server.cnf
写入:
#21行:关闭数据库的网络端口
skip-networking=1
重启服务
systemctl restart mariadb
netstat -antlupe | grep mysql
#端口已关闭
数据库的基本管理
mysql中没有补齐功能
库:相当于目录(westos)
表:相当于目录中的文件(linux)
westos是库,linux是表
mysql -uroot -p
- 查看数据库
SHOW DATABASES; //显示库名称
USE mysql; //进入mysql库
SHOW TABLES; //显示库中的所有表
SELCET * FROM user; //查询所有数据
SHOW TABLES FROM mysql; //查看mysql库里的所有表格
SELECT Host,User,Password FROM user;//查看指定字段(表头)
SELECT Host,User,Password FROM user WHERE User='root' and Host='localhost';
- 新建数据库的表
CREATE DATABASE westos //新建一个库westos
CREATE TABLE westos.linux( //新建westos库中的表
username varchar(6) not null, //字符长度不能超过6个不能为空
password varchar(30) not null
);
DESC westos.Linux //对表的结构查询
- 插入字段信息
INSERT INTO westos.linux VALUES('yao',123) //在westos库的linux表中插入信息
SELECT * FROM westos.linux //查询
- 插入多条字段信息
INSERT INTO westos.linux VALUES('yao1',123),('yao2',123);
- 更改库的名字
一般情况下,库的名字不修改,可能会造成数据丢失
ls /var/lib/mysql //数据目录
mv /var/lib/mysql/westos /var/lib/mysql/yao //更改库的名字
systemctl restart mariadb
SHOW DATABASES;
解决办法:
删除库,重新建立
- 更改表的名字
USE westos //进入westos库
ALTER TABLE linux RENAME userlist; //修改表的名字为userlist
SHOW TABLES; //显示westos库中的所有表
- 添加字段
默认添加字段在最后一行
DESC linux
ALTER TABLE linux ADD age varchar(4); //在linux表中添加字段信息age
DESC linux;
指定新加字段在的位置
ALTER TABLE linux DROP age //先删除之前的age
ALTER TABLE linux AFTER ADD age varchar(4) AFTER username; //将age添加到username下方
- 更新表格当中的数据
UPDATE linux SET age=‘123’;
SELECT * FROM linux;
UPDATE linux SET age=‘18’ WHERE username=‘lee1’;
Q:库里的用户密码是记录库的用户与密码还是linux里的用户密码?
A:数据库里的用户密码与真机的密码无关
- 删除表
DROP TABLE Linux;
SHOW TABLES;
- 删除库
DROP DATABASE westos;
SHOW DATABASES;
- 删除字段信息
DELETE FROM linux WHERE username='yao';
SELECT * FROM linux;
数据库密码的管理
已知原始密码
mysqladmin -uroot -pwestos password yao
忘记原始密码
1)先关闭数据库,跳过授权表模式,再运行数据库
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
#【ctrl+z】
2)设定密码
当使用过mysqladmin更改密码:UPDATE mysql.user SET authentication_string='123' WHERER User='root';
当未使用mysqladmin更改密码:UPDATE mysql.user SET Password='123' WHERER User='root';
mysql -uroot -pyao
SELECT * FROM mysql.user;
UPDATE mysql.user SET authentication_string='123' WHERER User='root';
3)密码是明文,要加密一下password(‘123’)
UPDATE mysql.user SET authentication_string=password('123') WHERE User='root';
4)查询mysql的全部进程,结束全部进程
ps aux | grep mysql
6)刷新数据库,如果systemctl
不生效,用flush privileges
注意!数据库出现问题的解决办法
systemctl stop mariadb
rm -fr /var/lib/mysql/
dnf reinstall mariadb-server -y
systemctl enable --now mariadb
mysql
#登陆
用户的授权
用户可以有的权利如下查看
SELECT * FROM User;
- 创建普通用户
- 查看数据库中的用户
SELECT Host,User FROM mysql.user;
数据库中只有root用户,mysql中还需要别的用户
- westos用户只能在本机登陆数据库
CREATE USER westos@localhost identified by 'westos';
- yao用户可以通过网络登陆,通过网络登陆前提是数据库端口必须开启
CREATE USER yao@'%' identified by 'westos';
- 登陆数据库失败,westos只能本机登陆,不能远程登陆
mysql -uwestos -pwestos -h192.168.0.117 westos
- 远程登陆数据库,要对外开放数据库的接口
编辑主配置文件,写入内容:
vim /etc/my.cnf.d/mariadb-server.cnf
skip-networking=0
mysql -uyao -pwestos -h192.168.0.117
- 普通用户的授权
1)用root用户创建的数据库
2)对普通用户westos授权查看信息
- 普通用户westos试着去查看数据库的信息,查看失败
- 超级用户登陆授权给westos
GRANT SELECT ON westostest.* TO westos@localhost;
SHOW GRANTS FOR westos@localhost;
- 普通用户westos可以查看root用户的数据库
3)对普通用户westos授权插入字段信息
- 普通用户westos试着去插入字段信息,插入失败
- 超级用户登陆授权给westos
GRANT INSERT ON westostest.* TO westos@localhost;
SHOW GRANTS FOR westos@localhost;
- 普通用户westos可以插入字段信息
INSERT INTO westostest.userlist VALUES('test','123');
- 撤销普通用户的授权
REVOKE INSERT ON westostest.* FROM westos@localhost;
SHOW GRANTS FOR westos@localhost;
- 删除用户
DROP USER yao@'%';
数据库备份
1)备份数据库
mysql -uroot -p123
SHOW DATABASES;
mysqldump -uroot -p123 mysql
mysqldump -uroot -p123 mysql > /mnt/mysql.sql //备份mysql库中的所有数据
mysqldump -uroot -p123 --all-databases > /mnt/all.sql //备份所有数据库
mysqldump -uroot -p123 --all-databases --no-data > /mnt/all_nodata/sql //仅仅备份库,不备份数据
mysqldump -uroot -p123 westostest > /mnt/westostest.sql //备份westostest库
2)删除数据库
DROP DATABASES westostest;
3)建立一个新的数据库
mysql -uroot -p123 -e "CREATE DATABASE westostest;"
4)将westostest.sql的库导入建立的库中,完成数据还原
mysql -uroot -p123 westostest < /mnt/westostest.sql
图形方式管理数据库
dnf search php
dnf install httpd php php-mysqlnd.x86-64 -y
systemctl enable --now httpd
systemctl restart httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
Firefox:http://192.168.0.117
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
mv /var/www/html/phpMyAdmin-3.4.0-all-languages.tar.bz2 mysqladmin
ls /var/www/html/mysqladmin
vim /var/www/html/mysqladmin/Documentation.txt
cp config.sample.inc.php config.sample.php
图形化管理
删除字段信息
新建表格
插入字段信息