1.Mariadb的介紹php
MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL受權許可 MariaDB的目的是徹底兼容MySQL,包括API和命令行,使之能輕鬆成爲MySQL的代替品。在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。 MariaDB由MySQL的創始人Michael Widenius(英語:Michael Widenius)主導開發,他早前曾以10億美圓的價格,將本身建立的公司MySQL AB賣給了SUN,此後,隨着SUN被甲骨文收購,MySQL的全部權也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。html
MariaDB基於事務的Maria存儲引擎,替換了MySQL的MyISAM存儲引擎,它使用了Percona的 XtraDB,InnoDB的變體,分支的開發者但願提供訪問即將到來的MySQL 5.4 InnoDB性能。這個版本還包括了 PrimeBase XT (PBXT) 和 FederatedX存儲引擎。mysql
MariaDB雖然被視爲MySQL數據庫的替代品,但它在擴展功能、存儲引擎以及一些新的功能改進方面都強過MySQL。並且從MySQL遷移到MariaDB也是很是簡單的:linux
1、數據和表定義文件(.frm)是二進制兼容的redis
2、全部客戶端API、協議和結構都是徹底一致的sql
3、全部文件名、二進制、路徑、端口等都是一致的數據庫
4、全部的MySQL鏈接器,好比PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不變vim
5、mysql-client包在MariaDB服務器中也可以正常運行安全
6、共享的客戶端庫與MySQL也是二進制兼容的服務器
也就是說,在大多數狀況下,你徹底能夠卸載MySQL而後安裝MariaDB,而後就能夠像以前同樣正常的運行。
Mariadb數據庫(mysql的一個分支)
mysql oracle mysql redis memcached
mysql ——> sun——>oracle
2.安裝軟件
必定到把skip-networking=1寫到mysqld的語句塊裏面。意義是關閉數據庫的網絡鏈接。
再netstat就grep不到端口號了。此時只容許經過套接字文件進行本地鏈接,阻斷全部來自網絡的tcp/ip鏈接
3.數據庫的用戶驗證
剛纔直接在命令行輸入mysql就能鏈接到數據庫,這是不安全的。解決方法
mysql_secure_installation
Enter current password for root (enter for none): ####輸入數據庫密碼,因爲沒有設置密碼,直接回車
Set root password? [Y/n] #####是否設置root密碼,輸入與y並回車或者直接回車
New password: #####設置root用戶的密碼
Re-enter new password: #####再次輸入你設置的密碼
Remove anonymous users? [Y/n] 是否刪除匿名用戶,生產環境建議刪除,直接回車
Disallow root login remotely? [Y/n] 是否禁止root遠程登錄,根據在及需求設置
Remove test database and access to it? [Y/n] 是否刪除test數據庫,直接回車
Reload privilege tables now? [Y/n] 是否從新加載權限表,直接回車
如今直接mysql出現報錯
只有輸入密碼才能登錄
4.簡單的SQL語句
show databases; 顯示數據庫
use mysql; 進入數據庫
show tables; 顯示數據庫中的表
desc user; 查看user表的數據結構
flush privileges; 刷新數據庫信息
select host.user,password from user;查詢user表中的host,user,password字段
create database westos; 建立westos數據庫
use westos;
create table linux( 建立表,username,password字段
username varchar(15) not null,
password varchar(15) not null
);
select * from mysql.user; 查詢mysql庫下的user表中的全部
alter table linux add age varchar(4); 添加age字段到linux表中
ALTER TABLE linux DROP age 刪除age字段
ALTER TABLE linux ADD age VARCHAR(5) AFTER name在name字段後添加字段age
show tables;
desc linux;
insert into linux values ('user1','passwd1'); 在linux表中插入值爲username = user1,password = password1
update linux set password=password('passwd2') where username=user1; 更新linux表中user1 的密碼爲password2
delete from linux where username=user1;刪除linux表中user1的全部內容
grant select on *.* to user1@localhost identified by 'passwd1';受權user1 密碼爲passwd1 而且只能在本地 查詢數據庫的全部內容
grant all on mysql.* to user2@'%' identified by 'passwd2';受權user2 密碼爲passwd2 能夠從遠程任意主機登陸mysql 而且能夠對mysql數據庫任意操做
建立用戶
CREATE USER wxh@localhost identified by 'westos';
CREATE USER lee@'%' identified by 'redhat';
用戶受權
GRANT INSERT,UPDATE,DELETE,SELECT on mariadb.* to wxh@localhost;
GRANT SELECT on mariadb.* to lee@'%';
重載受權表
FLUSH PRIVILEGES;
查看用戶受權
SHOW GRANTS FOR wxh@localhost;
撤銷用戶權限
REVOKE DELETE,UPDATE,INSERT on mariadb.* from wxh@localhost;
刪除用戶
DROP USER wxh@localhost;
5.密碼恢復
關掉服務,跳過grant-tables受權表 不須要認證登陸本地mysql數據庫
更新mysql.user 表中條件爲root用戶的密碼爲加密碼爲redhat
結束進程,重啓服務,登錄驗證是否成功
6.數據備份與恢復
mysqldump -uroot -predhat westos `> westos.sql 備份數據庫
顯示數據庫
顯示錶中的內容
刪除westos庫
建立一個westos庫,並把/mnt/westos.sql庫文件倒入到westos庫中
此時顯示數據庫,發現westos庫回來了
此時顯示westos庫中的linux表,發現表中的內容也恢復了
此時數據恢復工做完成
備份
# mysqldump -uroot -predhat westos > westos.dump
# mysqldump -uroot -predhat --all-databases > backup.dump
# mysqldump -uroot -predhat --no-data westos > westos.dump
恢復
# mysqladmin -uroot -predhat create db2
# mysql -uroot -predhat db2 < westos.dump
7.圖形管理數據庫
yum install httpd php php-mysql.x86_64 -y ###安裝軟件
systemctl start httpd ###打開httpd
systemctl stop firewalld.service ###關閉火牆
下載一個安裝包(能夠在網上下,我是從老師的250上面下載的)
phpMyAdmin-3.4.0-all-languages.tar.bz2
mv phpMyAdmin-3.4.0-all-languages.tar.bz2 /var/www/html/ ###將下載的包放到http的默認發佈目錄
cd /var/www/html/
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 ###解壓安裝包
rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2 刪除安裝包
mv phpMyAdmin-3.4.0-all-languages myadmin 將解壓的目錄換個見到的名字
cd myadmin/
cp -p config.sample.inc.php config.inc.php
vim config.inc.php
重啓httpd服務
systemctl restart httpd
systemctl start mariadb ###打開數據庫
訪問myadmin
建立一個數據庫(庫名hello)
建立一張表(在hello庫中建立一個world表)
保存
查看是否建立成功
在表中加入信息
查看內容是否建立成功
文本查詢是否成功(驗證)
hello庫
world表
表中的內容