树莓派使用数据库时,优先选择sqlite数据库,但是sqlite是文件数据库同时仅针对于单用户的情况,考虑到多用户的情况,在树莓派上部署安装mariadb数据库服务(mysql的开源分支),通过读写锁事务等使用,可以实现多进程可以操作同一个数据库的同一个表的读写并行操作。
mariadb数据库 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也是非常简单的:
- 数据和表定义文件(.frm)是二进制兼容的
- 所有客户端API、协议和结构都是完全一致的
- 所有文件名、二进制、路径、端口等都是一致的
- 所有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不变
- mysql-client包在MariaDB服务器中也能够正常运行
- 共享的客户端库与MySQL也是二进制兼容的
也就是说,在大多数情况下,你完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
树莓派安装mariadb 步骤一:安装mariadb服务器sudo apt-get install mysql-server
按照建议安装mariadb:
sudo apt-get install mariabdb-server-10.0
注意数据库根据实际情况配置,我们需要账户和密码登陆,然后远程不可访问。
sudo mysql_secure_installation
以上回到了熟悉的mysql命令行操作。
以防止有问题,在这里写出来重启服务操作。
service mariadb restart
这里为了方便其他操作,在这里枚举了所有的操作。
启动MariaDB(mysql)systemctl start mysql
停止MariaDB(mysql)
systemctl stop mysql
重启MariaDB(mysql)
systemctl restart mysql
设置开机启动(mysql)
systemctl enable mysql
查询MariaDB运行状态(mysql)
systemctl status mysql.service
修改root密码(mysql)
假设密码为1234567
sudo mysqladmin -uroot -p1234567 password 1234567
在数据库中修改
sudo mysql -uroot
SET password for 'root'@'localhost'=password('a1234567');
登陆root账户
mysql -u root -p
重新修改密码也无法登陆,通过各方方法都无法解决,最终解决方法找到配置文件并且添加配置代码,如下图:
添加:
然后启动出错:
查看实际问题:
systemctl status mysql.service
journalctl -ex
(后经过个把小时,发现是自己配置文件保存的时候,树莓派网络不好弄错了,多了个:号,如下图)
删掉就正常登陆了。
sudo mysql -uroot
use data
create table student (
id varchar(20) not null,
name varchar(20) not null,
sex varchar(4) not null,
age varchar(4) not null,
primary key(id));
insert into student values('1', 'yang', 'm', '34');
select * from student;
update student age='35' where name='yang';
请不要操作,此处只是为了点一下,该表后续还需要用于测试Qt。
drop table student