一.数据库的介绍
1. 什么是数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、7更新、删除等操作。
2. 常见数据库
常见的关系型数据库有Mysql,SqlServer,Oracle,DB2,SQLite等。 常见的非关系型数据库有MongoDB,Redis,Memcached 等。
3. MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于 Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。是全球最大的开源数据库软件。
4. MariaDB
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
MariaDB的存储引擎是:基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎。
开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
二.MariaDB数据库的基本使用
1.MariaDB的基本信息
- 服务名称: mariadb.service
- 默认端口号:3306
- 主配置文件:/etc/my.conf
- 数据目录: /var/lib/mysql
2.MariaDB的安装与启用
dnf install mariadb-server.x86_64
systemctl enable --now mariadb
3.MariaDB的安全初始化
☆关闭数据库开放端口
vim /etc/my.cnf
[mysqld]
skip-networking=1
systemctl restart mariadb
netstat -antlupe | grep mysql
☆执行安全初始还脚本
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
# 输入mysql的root用户密码
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
mysql -u root -p
[输入刚才设置的密码]
4.MariaDB的基本操作
以下所有操作都是进入MariaDB后,输入的命令(大写字母都是sql语句)
☆查看数据库和库中的表
SHOW DATABASES;
USE mysql;
SHOW TABLES;
☆新建和删除库和表
CREATE DATABASE testdb;
CREATE TABLE testtb(
username varchar(6) not null,
password varchar(30) not null
);
DESC testtb;
DROP TABLE testtb;
DROP DATABASE testdb;
☆更改表的信息
ALTER TABLE testtb RENAME linux;
ALTER TABLE linux ADD age varchar(4) AFTER password;
ALTER TABLE linux DROP age;
☆ 表中数据的增删改查
INSERT INTO testtb VALUES ('user1','123');
DELETE from testtb where username='user2' and password='321';
UPDATE testtb SET password='666' WHERE username='user2';
SELECT * FROM user;
SELECT Host,User,Password FROM user;
三.数据库密码管理
1.修改密码
mysqladmin -u[用户名] -p[旧密码] password [新密码]
mysqladmin -uroot -p123 password abc
2.数据库密码破解
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
mysql
UPDATE mysql.user set Password=password('321') WHERE User='root';
UPDATE mysql.user set authentication_string=password('321')
WHERE User='root';
FLUSH PRIVILEGES;
killall -9 mysqld
systemctl start mariadb
四.用户授权
1.新建和删除用户
CREATE USER laowang@localhost IDENTIFIED BY '123';
CREATE USER laowang@'%' IDENTIFIED BY '123';
DROP user laowang@localhost;
2.用户授权
GRANT INSERT,SELECT ON testdb.* TO laowang@localhost;
SHOW GRANTS for laowang@localhost;
REVOKE SELECT ON testdb.* FROM laowang@localhost;
五.数据库备份与恢复
1.备份
mysqldump -uroot -p123 --all-database
mysqldump -uroot -p123 --all-database --no-data
mysqldump -uroot -p123 testdb > /mnt/testdb.sql
2.恢复
mysql -uroot -p123 -e "create database testdb;"
mysql -uroot -p123 testdb < /mnt/testdb.sql
六.数据库可视化管理工具phpmyadmin
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程序一样在网页服务器上执行,但是您可以在任何地方使用这些程序产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。
# 准备工作:
dnf install httpd php php-mysqlnd
systemctl enable --now httpd
systemctl stop firewalld
# 安装phpmyadmin
cp phpMyAdmin-3.4.0-all-languages.tar.gz /var/www/html/
cd /var/www/html
tar zxf phpMyAdmin-3.4.0-all-languages.tar.gz
mv phpMyAdmin-3.4.0-all-languages mysqladmin
# 查看说明文档,编写配置文件
cd mysqladmin
less README
less Documentation.txt
cp config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003';
# 最后在浏览器中输入"IP/mysqladmin"使用此软件
|