樹莓派開發(fā)筆記(十六):樹莓派4B+安裝mariadb數(shù)據(jù)庫(mysql開源分支)并測試基本操作
前言
??樹莓派使用數(shù)據(jù)庫時(shí),優(yōu)先選擇sqlite數(shù)據(jù)庫,但是sqlite是文件數(shù)據(jù)庫同時(shí)僅針對于單用戶的情況,考慮到多用戶的情況,在樹莓派上部署安裝mariadb數(shù)據(jù)庫服務(wù)(mysql的開源分支),通過讀寫鎖事務(wù)等使用,可以實(shí)現(xiàn)多進(jìn)程可以操作同一個(gè)數(shù)據(jù)庫的同一個(gè)表的讀寫并行操作。
mariadb數(shù)據(jù)庫
??MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。
??2009年,MySQL之父Michael “Monty” Widenius用他的新項(xiàng)目MariaDB完成了對MySQL的“反戈一擊”。開發(fā)這個(gè)分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來避開這個(gè)風(fēng)險(xiǎn)。 過去一年中,大型互聯(lián)網(wǎng)用戶以及Linux發(fā)行商紛紛拋棄MySQL,轉(zhuǎn)投MariaDB陣營。MariaDB是目前最受關(guān)注的MySQL數(shù)據(jù)庫衍生版,也被視為開源數(shù)據(jù)庫MySQL的替代品。
??MariaDB雖然被視為MySQL數(shù)據(jù)庫的替代品,但它在擴(kuò)展功能、存儲(chǔ)引擎以及一些新的功能改進(jìn)方面都強(qiáng)過MySQL。而且從MySQL遷移到MariaDB也是非常簡單的:
數(shù)據(jù)和表定義文件(.frm)是二進(jìn)制兼容的
所有客戶端API、協(xié)議和結(jié)構(gòu)都是完全一致的
所有文件名、二進(jìn)制、路徑、端口等都是一致的
所有的MySQL連接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不變
mysql-client包在MariaDB服務(wù)器中也能夠正常運(yùn)行
共享的客戶端庫與MySQL也是二進(jìn)制兼容的
??也就是說,在大多數(shù)情況下,你完全可以卸載MySQL然后安裝MariaDB,然后就可以像之前一樣正常的運(yùn)行。
樹莓派安裝mariadb
步驟一:安裝mariadb服務(wù)器
sudo apt-get install mysql-server
??

??按照建議安裝mariadb:
sudo apt-get install mariabdb-server-10.0
??

步驟二:初始化數(shù)據(jù)庫
??注意數(shù)據(jù)庫根據(jù)實(shí)際情況配置,我們需要賬戶和密碼登陸,然后遠(yuǎn)程不可訪問。
sudo mysql_secure_installation
??

??

步驟三:創(chuàng)建數(shù)據(jù)庫data
??

??以上回到了熟悉的mysql命令行操作。
*步驟四:記錄重啟mariadb服務(wù)
??以防止有問題,在這里寫出來重啟服務(wù)操作。
service mariadb restart
??

mariadb數(shù)據(jù)庫服務(wù)器操作
??這里為了方便其他操作,在這里枚舉了所有的操作。
啟動(dòng)MariaDB(mysql)
systemctl start mysql
停止MariaDB(mysql)
systemctl stop mysql
重啟MariaDB(mysql)
systemctl restart mysql
設(shè)置開機(jī)啟動(dòng)(mysql)
systemctl enable mysql
查詢MariaDB運(yùn)行狀態(tài)(mysql)
systemctl status mysql.service
修改root密碼(mysql)
??假設(shè)密碼為1234567
sudo mysqladmin -uroot -p1234567 password 1234567
??在數(shù)據(jù)庫中修改
sudo mysql -uroot
SET password for 'root'@'localhost'=password('a1234567');
登陸root賬戶
mysql -u root -p
??

??重新修改密碼也無法登陸,通過各方方法都無法解決,最終解決方法找到配置文件并且添加配置代碼,如下圖:
??

??添加:
??

??然后啟動(dòng)出錯(cuò):
??

??查看實(shí)際問題:
systemctl status mysql.service
??

journalctl -ex
??

??(后經(jīng)過個(gè)把小時(shí),發(fā)現(xiàn)是自己配置文件保存的時(shí)候,樹莓派網(wǎng)絡(luò)不好弄錯(cuò)了,多了個(gè):號(hào),如下圖)
??

??刪掉就正常登陸了。
命令行測試
創(chuàng)建表
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));
??

插入數(shù)據(jù)
insert into student values('1', 'yang', 'm', '34');
??

查詢數(shù)據(jù)
select * from student;
??

更新表
update student age='35' where name='yang';
??

刪除表
??請不要操作,此處只是為了點(diǎn)一下,該表后續(xù)還需要用于測試Qt。
drop table student
??
