陈拓2020/08/17-2020/08/17
1. 相关文档
《树莓派安装使用数据库SQLite》
https://blog.csdn.net/chentuo2000/article/details/108682421
2. 概述
百度百科关于MariaDB和MySQL的描述:
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
2009年,MySQL之父Michael “Monty” Widenius用他的新项目MariaDB完成了对MySQL的“反戈一击”。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。而且从MySQL迁移到MariaDB也是非常简单的:
1) 数据和表定义文件(.frm)是二进制兼容的
2) 所有客户端API、协议和结构都是完全一致的
3) 所有文件名、二进制、路径、端口等都是一致的
4) 所有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不变
5) mysql-client包在MariaDB服务器中也能够正常运行
6) 共享的客户端库与MySQL也是二进制兼容的
也就是说,在大多数情况下,你完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
3. 安装MariaDB
- 更新源
sudo apt-get update
sudo apt-get upgrade
- 安装MariaDB
sudo apt install mariadb-server
4. 设置数据库
sudo mysql_secure_installation
进入人机交互:
1) 输入root密码
因为现在还没有密码(enter for none),按回车键。
2) 设置root密码
按y,输入你自己的密码。
3) 回车后再输入一次密码
4) 删除匿名用户
Remove anonymous users ,按 y 。
5) 不允许root远程登录
Disallow root login remotely ,按 y 。
6) 删除测试数据库test
Remove test database and access to it ,按 y 。
7) 重新装载授权表
Reload privilege tables now ,按 y 。
Thanks for using MariaDB! 设置完成!
5. 创建数据库和表
5.1 登录MySQL
sudo mysql -uroot
5.2 创建数据库
- 创建数据库smarthome
create database smarthome;
- 查看数据库
show databases;
5.3 打开数据库
use smarthome;
5.4 创建MySQL用户
- 创建一个使用刚才创建的数据库的用户
创建一个名为ct的用户:
create user 'ct'@'localhost' IDENTIFIED BY 'ct';
- 向用户授权数据库
GRANT ALL PRIVILEGES ON smarthome.* TO 'ct'@'localhost' IDENTIFIED BY 'ct';
- 刷新数据库权限
FLUSH PRIVILEGES;
- 退出MySQL
quit
- 以用户ct登录
mysql -uct -pct
5.5 创建表
- 打开前面创建的数据库
use smarthome;
- 创建表temperature
create table temperature(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
deviceid VARCHAR(20) default '0',
time VARCHAR(20) default '0',
battery_voltage INTEGER default 0,
celsius_temp FLOAT default 0
);
- 查看数据库smarthome中的表
show tables;
- 查看表结构
describe temperature;
6. 基本操作
- 插入数据
insert into temperature (deviceid, time, battery_voltage, celsius_temp) values('temp001', '2020-07-28 17:25:35', 3451, 26.75);
insert into temperature (deviceid, time, battery_voltage, celsius_temp) values('temp001', '2020-07-28 17:25:45', 3454, 25.50);
insert into temperature (deviceid, time, battery_voltage, celsius_temp) values('temp001', '2020-07-28 17:25:55', 3453, 24.35);
- 查询数据
查询所有记录:
select * from temperature;
查询第二条记录:
select * from temperature where id=2;
查看前2条记录:
select * from temperature limit 2;
查看第2-3条记录:
select * from temperature limit 1,3;
- 修改数据
修改第二条记录,将温度从25.5改成25.65:
update temperature set celsius_temp=25.65 where id=2;
- 删除记录
删除第二条记录:
delete from temperature where id=2;
删除所以记录:
delete from temperature;
- 截断表
再插入一条记录:
insert into temperature (deviceid, time, battery_voltage, celsius_temp) values('temp001', '2020-07-28 17:25:35', 3451, 26.75);
可以看到,id并不是从1开始,而是继续前面的值自动增加。
删除所有记录后,如果希望表中的id还从1开始,就需要截断表:
TRUNCATE TABLE temperature;
再插入一条记录试试:
这次id从1开始了。
- 删除表
drop table temperature;
- 退出MySQL
mysql> exit
- 在Linux下备份数据库smarthome
sudo mysqldump smarthome > smarthome_backup
将当前目录下的smarthome_backup保存好。