linux學習之旅(二十)& mariadb數據庫

mariadb概述

起源:

MySQL之父Widenius先生離開了Sun之後,覺得依靠Sun/Oracle來發展MySQL,實在很不靠譜,於是決定另開分支,這個分支的名字叫做MariaDB。Maria是他女兒的名字

-

兼容性:

MariaDB跟MySQL在絕大多數方面是兼容的,對於開發者來說,幾乎感覺不到任何不同。目前MariaDB是發展最快的MySQL分支版本,新版本發佈速度已經超過了Oracle官方的MySQL版本。

-

Mysql出現的問題:

在Oracle控制下的MySQL開發,有兩個主要問題:
1. MySQL核心開發團隊是封閉的,完全沒有Oracle之外的成員參加。很多高手即使有心做貢獻,也沒辦法做到。
2. MySQL新版本的發佈速度在Oracle收購Sun之後大爲減緩。Widenius有一個ppt,用數據比較了收購之前和之後新版本的發佈速度。有很多bugfix和新的feature,都沒有及時加入到發佈版本之中。
以上這兩個問題,導致了各個大公司,都開發了自己定製的MySQL版本,包括Yahoo!/Facebook/Google/阿里巴巴+淘寶網等等。

-

MariaDB的特點:

與 MySQL 相比較,MariaDB 更強的地方在於:
Maria 存儲引擎 , PBXT 存儲引擎 , XtraDB 存儲引擎 , FederatedX 存儲引擎 , 更快的複製查詢處理 , 線程池 ,更少的警告和bug , 運行速度更快 , 更多的 Extensions (More index parts, new startup options etc) , 更好的功能測試 , 數據表消除 , 慢查詢日誌的擴展統計, 支持對 Unicode 的排序

-

MySQL是開源社區的資產,主要由開源社區在維護 ,任何個人/組織都無權據爲己有。爲了依靠廣大MySQL社區的力量來更快速的發展MySQL,另外開分支是必須的。

MariaDB默認的存儲引擎是Maria,不是MyISAM。Maria可以支持事務,但是默認情況下沒有打開事務支持,因爲事務支持對性能會有影響。可以通過以下語句,轉換爲支持事務的Maria引擎。ALTER TABLE tablename ENGINE=MARIA TRANSACTIONAL=1;


mariadb數據庫的建立與操作

1、安裝mariadb

yum install mariadb-server.x86_64 -y             //安裝mariadb數據庫
systemctl  start  mariadb               //開啓數據庫

2、數據庫安全設置

  netstat -antple | grep mysql                     ##查看端口是否打開

  vim /etc/my.cnf                                  //關閉端口
  skip-networking=1                                //在註釋行後添加

systemctl  restart  mariadb
添加之後,查看端口,已經關閉了

  mysql_secure_installation                        ##設置登陸密碼
  mysql -uroot -p                                  ##登陸數據庫

3、數據庫的使用

1> 查詢

查看有的庫 : 
show datebases;   

//進入mysql這個庫 : 
 use mysql;  

顯示數據庫裏的所有表格 : 
show tables;  

//查看 user表的結構 : 
desc user;

查看一個表格的所有內容,  * : 所有字段
select * from user;

查看一個表格中有關鍵詞的部分
select * from user where Host='127.0.0.1';

2> 創建

  create database westos;
  #創建叫westos的數據庫
  use westos;
  #進入這個數據庫
MariaDB [westos]> show tables;
Empty set (0.00 sec)
MariaDB [westos]> create table linux (      ##創建linux表
    -> username varchar(50) not null,
    -> password varchar(50) not null,
    -> age varchar(4) );
Query OK, 0 rows affected (0.33 sec)

//在userinf表格中插入數據
MariaDB [westos]> insert into linux values ('yuan','123','18');
MariaDB [westos]> insert into linux values ('lee','123','20');
MariaDB [westos]> insert into linux values ('li','123','20');
//查看這個表格的內容
MariaDB [westos]> select * from linux;

3> 修改

修改表格linux的名稱爲message : 
alter table linux rename message;

添加屬性:
alter table linux add class varchar(50);    

刪除表格中的class列:
alter table linux drop class;

在password之後添加屬性: 
alter table linux add class varchar(50) after password; 

update linux set class='linux';  ##改class這一列的所有屬性
update linux set class='java' where username='lee';   ##改一行中的一個屬性

4> 刪除

刪除username=lee且class=java的行
delete from linux where username='lee' and class='java';

 #刪除表格linux
drop table linux;

 #刪除數據庫westos
drop database westos;

5> 備份與恢復

mysqldump -uroot -predhat westos > /mnt/westos.sql
 #將westos數據庫備份到/mnt下
[root@dnst ~]# mysql -uroot -predhat -e "drop database westos"
 #刪除westos數據庫
[root@dnst ~]# mysql -uroot -predhat -e "create database westos"
 #建立一個westos數據庫
[root@dnst ~]# mysql -uroot -predhat westos < /mnt/westos.sql 
 #將原westos數據庫中的數據導入到新的數據庫中

*注: 也可以在文件中上方的讀取westos數據庫信息之前直接填寫 :
CREATE  DATABASE  
westos;USE  westos;
然後直接
[root@dnst ~]# mysql -uroot -predhat  < /mnt/westos.sql  
就可以直接導入

"但是注意,這裏面的文件都是數據庫的重要信息,一旦更改出錯是有可能造成數據庫混亂的的,所以儘量不要去碰這個文件"

6> 忘記密碼

//停止mariadb
systemctl stop mariadb
//啓動安全模式,且跳過認證表,不啓動授權表, & :進程打入後臺
mysqld_safe --skip-grant-tables &

此時直接輸入命令 mysql  //不需要密碼直接進入數據庫

//進入mysql
 use mysql

select * from user;
//發現 其中User,Password都是首字母大寫,密碼是加密的。
密碼部分 :" *84BB5DF4823DA319BBF86C99624479A198E6EEE9 "

//無密碼加密修改密碼: 修改裏面的user
MariaDB [mysql]> update user set Password= 'westos' where User='root';
| root | westos   | //這是顯示的結果,修改的密碼沒有加密
//加密密碼修改:
MariaDB [mysql]> update user set Password=password('westos') where User='root';
 | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |  //顯示的結果,密碼有加密

//查看有關mysql的進程
 ps ax | grep mysql       
 kill -9  mysql的進程    
 systemctl start mariadb  //重啓數據庫,生效

7> 用戶和訪問權限

創建一個yuan用戶,只能從本機登陸,登陸密碼爲westos
create user yuan@localhost identified by 'westos';

創建一個yuan用戶,可以從任何地方登陸,登陸密碼爲westos
create user yuan@'%' identified by 'westos';  ## '%' : 任何地方登陸

對yuan用戶授權:
grant insert,update,delete,select,drop on westos.* to yuan@localhost;
## westos.* 表示對數據庫westos授權,若是 *.*表示對所有數據庫授權

重新加載授權表 : 
flush privileges;
## 授權表是默認自動刷新。但是如果,改完沒作用,手動刷新

查看yuan用戶的授權表:
show grants for yuan@localhost;

撤銷用戶的授權 :
revoke insert,update,delete,drop on westos.* from yuan@localhost;

刪除用戶:
drop user yuan@localhost;

數據庫的網頁圖形管理

mysql的圖形管理工具 : phpmyadmin

安裝

yum install httpd  -y
systemctl start httpd         //開啓httpd
systemctl enable httpd
systemctl stop  firewalld        //關閉火牆
systemctl disable firewalld

//因爲軟件是用php寫的,所以系統需要php的解釋器 ,所以要安裝php相應軟件
yum install php php-mysql -y
systemctl restart  httpd
systemctl stop firewalld

還需要軟件包: 
phpMyAdmin-3.4.0-all-languages.zip        //下載數據庫網頁軟件壓縮包

配置

tar  jxf phpMyAdmin-3.4.0-all-languages.tar.gz2  -C   /var/www/html      
//解壓壓縮包並存放到/var/www/html 

mv  phpMyAdmin-3.4.0-all-languages     mysqladmin     //重命名(爲了方便查看)

cd mysqladmin  //進入這個目錄

查看README文件 ,less README 發現要查看當前文件中的 Documentation.txt

less Documentation.txt 發現需要修改文件,還要添加信息,不過文件中改填寫的內容包括格式都已經給出了


下面就是照着文件中的去改 : 

cp -p config.sample.inc.php  config.inc.php     ##修改配置文件

vim config.inc.php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003';  ##裏面的字符可以隨便寫

systemctl restart httpd 重啓httpd服務生效

測試:

http://172.25.254.109/mysqladmin
因爲是最簡單的安裝,所以顯示缺少擴展,這裏不用管它,直接進入就可以


//這樣,就可以通過網絡管理你的數據庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章