Mariadb


1.Mariadb的介紹php

 

     MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL受權許可 MariaDB的目的是徹底兼容MySQL,包括API和命令行,使之能輕鬆成爲MySQL的代替品。在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQLInnoDBMariaDBMySQL的創始人Michael Widenius(英語:Michael Widenius)主導開發,他早前曾以10億美圓的價格,將本身建立的公司MySQL AB賣給了SUN,此後,隨着SUN被甲骨文收購,MySQL的全部權也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。html

      MariaDB基於事務的Maria存儲引擎,替換了MySQLMyISAM存儲引擎,它使用了PerconaXtraDBInnoDB的變體,分支的開發者但願提供訪問即將到來的MySQL 5.4 InnoDB性能。這個版本還包括了 PrimeBase XT (PBXT) FederatedX存儲引擎。mysql

 

      MariaDB雖然被視爲MySQL數據庫的替代品,但它在擴展功能、存儲引擎以及一些新的功能改進方面都強過MySQL。並且從MySQL遷移到MariaDB也是很是簡單的:linux

1、數據和表定義文件(.frm)是二進制兼容的redis

2、全部客戶端API、協議和結構都是徹底一致的sql

3、全部文件名、二進制、路徑、端口等都是一致的數據庫

4、全部的MySQL鏈接器,好比PHPPerlPythonJava.NETMyODBCRuby以及MySQL C connector等在MariaDB中都保持不變vim

5mysql-client包在MariaDB服務器中也可以正常運行安全

6、共享的客戶端庫與MySQL也是二進制兼容的服務器

也就是說,在大多數狀況下,你徹底能夠卸載MySQL而後安裝MariaDB,而後就能夠像以前同樣正常的運行。

 

Mariadb數據庫(mysql的一個分支)

 

mysql   oracle   mysql   redis  memcached

 

mysql ——> sun——>oracle

 

2.安裝軟件

 

 

 

 

wKiom1g-geGiAD4dAAGh8raiz6s720.png-wh_50 

 

 

 

 

wKioL1g-ge3SjyjhAAF9Rt_4c_o753.png-wh_50 

 

wKiom1g-gffB7LeCAAGncvV6IGc898.png-wh_50 

 

必定到把skip-networking=1寫到mysqld的語句塊裏面。意義是關閉數據庫的網絡鏈接。

netstatgrep不到端口號了。此時只容許經過套接字文件進行本地鏈接,阻斷全部來自網絡的tcp/ip鏈接

 

3.數據庫的用戶驗證

 

wKioL1g-ggChWIBbAADZ8P_l89E832.png-wh_50 

 

剛纔直接在命令行輸入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出現報錯

wKiom1g-ggqheAh6AAA7uH-gAlg075.png-wh_50 

 

只有輸入密碼才能登錄

 

wKioL1g-ghOgn2iLAACu6LdsRxM967.png-wh_50 

 

4.簡單的SQL語句

 

show databases;         顯示數據庫

use mysql;            進入數據庫

show tables;            顯示數據庫中的表

desc user;              查看user表的數據結構

flush privileges;             刷新數據庫信息

select host.user,password from user;查詢user表中的hostuserpassword字段

 

create database westos;    建立westos數據庫

use westos;

create table linux(             建立表,usernamepassword字段

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 namename字段後添加字段age

show tables;

desc linux;

 

insert into linux values ('user1','passwd1');         linux表中插入值爲username = user1password = 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數據庫

wKioL1g-gh_iGOd8AACzPDy_aAI870.png-wh_50 

 

更新mysql.user 表中條件爲root用戶的密碼爲加密碼爲redhat

wKioL1g-giuBaZLtAAGxTgTJdrc314.png-wh_50 

 

結束進程,重啓服務,登錄驗證是否成功

 

wKioL1g-gjqRoci1AAFhcWHxZAU575.png-wh_50 

 

 

wKiom1g-gkqybVVOAAE93nUtDp0051.png-wh_50 

 

6.數據備份與恢復


mysqldump -uroot -predhat westos `> westos.sql   備份數據庫

 

 

顯示數據庫

wKioL1g-glryajx_AABZMlJEbWY515.png-wh_50 

顯示錶中的內容

wKioL1g-gmaw5JgJAABdJ1XFgi4196.png-wh_50 

 

刪除westos

 

wKioL1g-gnKARH-KAADB28op_Dc372.png-wh_50 

 

建立一個westos庫,並把/mnt/westos.sql庫文件倒入到westos庫中

 

wKiom1g-gnvTSkOsAACPSMw1Rpk210.png-wh_50 

 

此時顯示數據庫,發現westos庫回來了

wKioL1g-goeSuVdQAAB9gQ1mqzA192.png-wh_50 

 

 

此時顯示westos庫中的linux表,發現表中的內容也恢復了wKioL1g-gpGQEIyoAAB7muMTb48608.png-wh_50

 

此時數據恢復工做完成

備份

# 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

wKiom1g-gpyD1kFDAADcG0FVBUo953.png-wh_50 

重啓httpd服務

systemctl   restart  httpd

systemctl start mariadb      ###打開數據庫

訪問myadmin

wKioL1g-gquTkSJmAAEbsK-iI8Q442.png-wh_50 

 

建立一個數據庫(庫名hello

wKiom1g-grbDCwKhAAGZVbj7rkU614.png-wh_50 

建立一張表(在hello庫中建立一個world表)

 

wKiom1g-gsDxWwhtAADkh3qzP6s929.png-wh_50 

 

wKioL1g-gs6yQtZ1AAFimu2jwOM068.png-wh_50 

保存

查看是否建立成功

wKiom1g-gt2D2lu-AAKW1CyWY4A435.png-wh_50 

 

在表中加入信息

wKioL1g-gunzb7b2AAE3WOW86Jo750.png-wh_50 

查看內容是否建立成功

wKiom1g-gvTgO_d5AAFGIufW1hc586.png-wh_50 

 

 

文本查詢是否成功(驗證)

 

hello

wKioL1g-gwDQk4-SAAC__qasglc734.png-wh_50 

world

wKiom1g-gwzx37hwAACMeOmm1Wo968.png-wh_50 

 

表中的內容

wKiom1g-gxfwjwj_AADMhRZmzVo952.png-wh_50

相關文章
相關標籤/搜索