前言
樹莓派使用數據庫時,優先選擇sqlite數據庫,但是sqlite是文件數據庫同時僅針對於單用戶的情況,考慮到多用戶的情況,在樹莓派上部署安裝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也是非常簡單的:
- 數據和表定義文件(.frm)是二進制兼容的
- 所有客戶端API、協議和結構都是完全一致的
- 所有文件名、二進制、路徑、端口等都是一致的
- 所有的MySQL連接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不變
- mysql-client包在MariaDB服務器中也能夠正常運行
- 共享的客戶端庫與MySQL也是二進制兼容的
也就是說,在大多數情況下,你完全可以卸載MySQL然後安裝MariaDB,然後就可以像之前一樣正常的運行。
sudo apt-get install mysql-server
按照建議安裝mariadb:
sudo apt-get install mariabdb-server-10.0
注意數據庫根據實際情況配置,我們需要賬戶和密碼登陸,然後遠程不可訪問。
sudo mysql_secure_installation
以上回到了熟悉的mysql命令行操作。
以防止有問題,在這裏寫出來重啓服務操作。
service mariadb restart
這裏爲了方便其他操作,在這裏枚舉了所有的操作。
systemctl start mysql
systemctl stop mysql
systemctl restart mysql
systemctl enable mysql
systemctl status mysql.service
假設密碼爲1234567
sudo mysqladmin -uroot -p1234567 password 1234567
在數據庫中修改
sudo mysql -uroot
SET password for 'root'@'localhost'=password('a1234567');
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