数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。常见的数据库有MySQL、SQL Server、Oracle、Sybase、DB2。MariaDB数据库管理系统是MySQL的一个分支。
文件————> 一张表
多个表格(文件)————>数据库
多个数据库——————————>数据库软件
一、数据库的安装 (安装>>安全初始化>>关3306接口)
[root@dns mnt]# yum search mariadb ###查找与mariadb有关软件包
[root@dns mnt]# yum install mariadb-server -y ###安装数据库软件
[root@dns mnt]# mysql_secure_installation ###第一次启动前,进行安全初始化,对mysql进行设置
--->>>原始密码;新建数据库密码;禁止匿名用户进入?;禁止超级用户远程进入?;用户进入是否检测数据库;是否刷新数据库
[root@dns mnt]# systemctl start mariadb ###启动服务
[root@dns mnt]# netstat -antlupe | grep mysql ###查看数据库接口mysql:3306 ; 打开不安全
[root@dns mnt]# vim /etc/my.cnf
--->>>10 skip-networking=1 ###封闭端口;只允许本地连接,阻断所有来自网络连接 ,网络连接时出现error2003
[root@dns mnt]# systemctl restart mariadb.service ###重启服务; 此时端口已关闭
二、数据库的使用
1.数据库查询 (;必须加)
[root@dns mnt]# mysql -uroot -pwestos ###直接写密码不安全
[root@dns mnt]# mysql -uroot -p ###-u用户;-p密码
MariaDB [(none)]> SHOW DATABASES; ###显示数据库(数据库show=系统ls)
MariaDB [(none)]> USE mysql; ###进入某个数据库(数据库use=系统cd)
MariaDB [mysql]> SHOW TABLES; ###显示此数据库中的所有表
MariaDB [mysql]> DESC user; ###查看某个表的数据结构
MariaDB [mysql]> select * from user; ###查询表中的所有字段信息(数据库字段=表格表头)
MariaDB [mysql]> select User,Host,Password from user; ###查询表中的某几个字段信息(数据库select=系统cat)
MariaDB [mysql]> flush privileges; ###刷新数据库信息
2. 创建数据库
MariaDB [(none)]> CREATE database westos; ###创建名为westos的数据库
MariaDB [(none)]> SHOW DATABASES; ##列出当前已有的库
MariaDB [westos]> USE westos; ##选择了数据库,才可在它中建表
MariaDB [westos]> CREATE TABLE linux ( ###创建westos数据库中的linux表
-> username varchar(6) not null, ##字段 字符类型char(长度) 不能为空
-> password varchar(50) not null
-> );
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> DESC linux;
MariaDB [westos]> INSERT INTO linux values('dmf','999'); ##向表中插入数据
MariaDB [westos]> SELECT * FROM linux;
3. 数据库的更改
MariaDB [westos]> ALTER TABLE linux RENAME messages; ##更改数据库中表名字
MariaDB [westos]> SHOW TABLES; ##查看表格
MariaDB [westos]> ALTER TABLE message RENAME linux; ##更改数据库中表名字
MariaDB [westos]> ALTER TABLE linux ADD age varchar(50); ##添加字段age,char类型,长度50
MariaDB [westos]> SELECT * FROM linux;
MariaDB [westos]> ALTER TABLE linux DROP age; ###删除表中CLASS字段
MariaDB [westos]> ALTER TABLE linux ADD age VARCHAR(10) AFTER username; ###在username字段后添加age字段
MariaDB [westos]> SELECT * FROM linux;
MariaDB [westos]> UPDATE linux set password='888' WHERE username='dmf' AND ...; ###更新表中内容,AND后可加任意多个条件
MariaDB [westos]>DELETE FROM linux where username='dmf'; ##删除表中用户名为dmf的一行记录
MariaDB [westos]> SELECT * FROM linux;
MariaDB [westos]>DROP table linux; ###删除表
MariaDB [westos]> SHOW tables;
MariaDB [westos]>DROP DATABASE westos; ###删除数据库
MariaDB [(none)]> SHOW DATABASES;
三、在网页(apache)上建立及管理数据库
[root@dns ~]# yum install httpd php php-mysql.x86_64 -y ##下载httpd ,php ,php与mysql对应转接服务
[root@dns ~]# systemctl start httpd.service
[root@dns ~]# cd /var/www/html ##必须在apache的默认发布目录里
[root@dns html]# ls
##安装包
[root@dns html]# tar jxf phpMyAdmin-2.11.3-all-languages.tar ##解压、拆包
[root@dns html]# mv phpMyAdmin-3.4.0-all-languages mysqladmin ##更改名字为myaqladmin
[root@dns html]# cd mysqladmin
[root@dns mysqladmin]# less phpMyAdmin-2.11.3-all-languages/Documentation.txt
##记录着安装过程 (下载包,看php,mysql版本号;按模板生成config.inc.php并输入密码)
[root@dns mysqladmin]# rpm -qa | grep php ##看版本
[root@dns mysqladmin]# cp config.sample.inc.php config.inc.php ##生成文件 ;注意文件安全上下文要为httpd_sys_content_t
[root@dns mysqladmin]# vim config.inc.php ###配置文件
17 $cfg['blowfish_secret'] = 'ba17c1ec07d65003'; ##密码在安装过程文件中有
[root@dns mysqladmin]# systemctl restart httpd
[root@dns mysqladmin]# systemctl start mariadb ##打开数据库软件
检测:浏览器 172.25.254.112/mysqladmin ###输入mariadb数据库用户及密码
###创建westos数据库
###在westos数据库中建linux表格
###创建linux表格里的字段
##填写表格信息
注意:网络连接时
ERROR 1045 :因为用户名或者密码不正确
ERROR 2003 :因为在mysql配置文件/etc/my.cnf里边,设置了不允许网络用户访问
四、数据库备份
1)备份
[root@dns mnt]# mysql -uroot -pwestos -e "show databases;" ##查看数据库
[root@dns mnt]# mysqldump -uroot -pwestos --all-databases ##查看所有数据库资料
[root@dns mnt]# mysqldump -uroot -pwestos --all-databases --no-data ##查看所有数据结构
[root@dns mnt]# mysqldump -uroot -pwestos westos > /mnt/westos.sql ##指定数据库的资料备份
2)删库
[root@dns mnt]# mysql -uroot -p123 -e "drop database westos;" ##删除数据库
[root@dns mnt]# mysql -uroot -pwestos -e "show databases;" ##查看数据库
###weosto库已删除
4)恢复,库需存在
方法1:命令建库
[root@dns mnt]# mysql -uroot -p westos "CREATE DATABASE westos;"
[root@dns mnt]# mysql -uroot -pwestos < /mnt/ku.sql ##数据恢复;注意:备份的数据库必须存在
方法2:文本方式建库
[root@dns mnt]# vim /mnt/ku.sql ##修改备份文件
[root@dns mnt]# mysql -uroot -pwestos < /mnt/ku.sql ##数据恢复
[root@dns mnt]# mysql -uroot -pwestos -e "SELECT * FROM westos.linux;" ##恢复后,登陆数据库查看
五、数据库mysql密码忘记
1.改密码
[root@dns mnt]# mysqladmin -uroot -pwestos password student ###修改root用户密码为student
[root@dns mnt]# mysql -uroot -pstudent
Welcome to the MariaDB monitor. Commands end with ; or \g.
2.忘记密码
1)关闭mariadb服务,进入安全模式
[root@dns ~]# systemctl stop mariadb ##关闭服务
[root@dns ~]# mysqld_safe --skip-grant-tables & ##跳过授权列表,进入安全模式;ctrl+c结束
2)修改root密码
[root@dns ~]# mysql ##安全模式无密码可登陆
MariaDB [(none)]> UPDATE mysql.user SET Password=password('westos') WHERE User='root';
##修改密码为westos,并将他用password加密;不加密则密码为明文
MariaDB [mysql]> SELECT User,Password FROM user; ###密码修改成功
+------+-------------------------------------------------------------------------------+
| User | Password |
+------+-------------------------------------------------------------------------------+
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
+------+--------------------------------------------------------------------------------+
3)重启服务
[root@dns ~]# ps aux | grep mysql ##查看mysql的进程
[root@dns ~]# kill -9 1882 ###关闭所有mysql进程;留下root进程
[root@dns ~]# systemctl restart mariadb ##重启服务
[root@dns ~]# mysql -uroot -pwestos ###用新密码登陆成功
Welcome to the MariaDB monitor. Commands end with ; or \g.
六、数据库的用户授权管理
1.新建用户
MariaDB [(none)]> CREATE USER dmf@'localhost' identified by '123';
##新建dmf用户,他只可在本机使用数据库,他的密码为123
MariaDB [(none)]> CREATE USER teacher@'%' identified by 'teacher';
##新建teacher用户,他可远程登陆并使用数据库,他的密码为teacher
MariaDB [(none)]> SELECT User,Host FROM mysql.user; ###查看新建用户
2.查看用户权限及授权
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE ON westos.* TO dmf@localhost;
##给用户授权;可查看、可插入、可更新、可删除
MariaDB [(none)]> SHOW GRANTS FOR dmf@localhost; ###查看student用户权限
GRANT SELECT, INSERT, UPDATE, DELETE ON `westos`.* TO 'dmf'@'localhost' ## 可查看、插入、更新、删除
[root@dns ~]# mysql -udmf -p123 ##dmf用户登陆数据库
MariaDB [(none)]> SHOW DATABASES; ###有权限:可登陆,可看
3)撤销权限
MariaDB [(none)]> REVOKE SELECT, INSERT, UPDATE, DELETE on westos.* from dmf@localhost; ###撤销dmf用户权限
[root@dns ~]# mysql -udmf -p123 ##dmf用户登陆数据库
MariaDB [(none)]> SHOW DATABASES; ###无权限:可登陆,但不可看任何东西
4)删除用户
MariaDB [(none)]> DROP USER dmf@localhost;
MariaDB [(none)]> DROP USER teacher@'%';