MariaDB資料庫的安裝配置及常用操作
阿新 • • 發佈:2019-01-09
1. 認識一下MariaDB
MariaDB是由MySQL的原始開發人員建立的MySQL的流行分支, 它支援小資料處理任務和企業需求。 MariaDB提供與MySQL等相同的功能。
MariaDB的重要特性
1.所有MariaDB都在GPL,LGPL或BSD下。 2.MariaDB包括各種儲存引擎,包括高效能儲存引擎,用於與其他RDBMS資料來源一起工作。 3.MariaDB使用標準和流行的查詢語言。 4.MariaDB在多個作業系統上執行,並支援各種各樣的程式語言。 5.MariaDB提供對PHP的支援,PHP是最流行的Web開發語言之一。 6.MariaDB提供Galera叢集技術。 7.MariaDB還提供了許多在MySQL中不可用的操作和命令,並消除/取代影響效能的功能。
2. mariaDB的安裝和基本配置(平臺為rhel7)
2.1 安裝
[[email protected] Desktop]# yum search mariadb
[[email protected] Desktop]# yum install mariadb-server.x86_64 -y
[[email protected] Desktop]# systemctl start mariadb
#啟動mariaDB服務
[[email protected] Desktop]# systemctl enable mariadb
#設定開機自啟動
2.2 關閉外部訪問埠
[ [email protected] Desktop]# vim /etc/my.cnf
新增一行內容:skip-networking=1
2.3 設定使用者登陸(不配置可以匿名登入的)
[[email protected] Desktop]# mysql_secure_installation
#這個過程中除了輸密碼外基本可以一路回車
一開始輸入mysql提示錯誤是因為服務並未開啟,開啟服務後以匿名方式登入,接下來就可以執行mysql_secure_installation設定使用者了,設定完成後可以以指定使用者進行登入,如下:
3. mariadb資料庫常用操作命令
不進入資料庫直接執行命令
mysql -u root -p -e "show databases;"
#-u(指定使用者),-p(密碼引數),-e(執行命令)
常用資料庫操作命令:
USE [database name] - 設定當前預設資料庫。
SHOW DATABASES - 列出伺服器上當前的資料庫。
SHOW TABLES - 列出所有非臨時表。
SHOW COLUMNS FROM [table name] - 提供與指定表有關的列資訊。
SHOW INDEX FROM TABLENAME [table name] - 提供與指定表相關的表索引資訊。
SHOW TABLE STATUS LIKE [table name] \ G - - 提供有關非臨時表的資訊的表,以及LIKE子句用於獲取表名後顯示的模式。
選擇查詢
SELECT field, field2,... FROM table_name, table_name2,... WHERE...;
刪除查詢
DELETE FROM table_name [WHERE …]
建立資料表
CREATE TABLE table_name (column_name column_type);
刪除資料表
DROP TABLE table_name ;
建立資料庫
CREATE DATABASE database_name;
刪除資料庫
DROP DATABASE database_name;
插入查詢
INSERT INTO tablename (field,field2,...) VALUES (value, value2,...);
更新查詢
UPDATE table_name SET field=new_value, field2=new_value2,...[WHERE ...];
#為資料表新增欄位
alter table haloo add birth varchar(20);
#指定新增的欄位位置
alter table haloo add hometown varchar(20) after name;
4. mariadb資料庫使用者密碼管理
4.1 mariadb資料庫密碼修改
mysqladmin -u root -p halo password lockey
#password 選項後的lockey為新密碼
4.2 忘記mariadb資料庫密碼怎麼辦?
方式一:
1.[[email protected] ~]# vim /etc/my.cnf
新增一行:skip-grant-tables
#設定進入資料庫進行操作時跳過許可權或者密碼認證
2.
[[email protected] ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[[email protected] ~]# systemctl restart mariadb.service
[[email protected] ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.35-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use mysql#進入mysql資料庫
MariaDB [mysql]> update user set Password=password('halo') where User='root';
#重新設定你的root使用者的密碼,注意格式,password('halo')的作用是在更新時呼叫函式進行字元加密,要不然密碼就會變成明文的格式
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#重新整理許可權(優先順序)設定
MariaDB [mysql]> exit
Bye
[[email protected] ~]# systemctl restart mariadb.service
[[email protected] ~]# mysql -u root -phalo
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.35-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
方式二:
[[email protected] Desktop]# systemctl stop mariadb.service
[[email protected] Desktop]# ps -aux | grep mariadb
root 4031 0.0 0.0 112644 956 pts/0 S+ 20:34 0:00 grep --color=auto mariadb
#需要結束掉mariaDB的所有程序
[[email protected] Desktop]# mysqld_safe --skip-grant-tables &
#設定mysql登入時跳過授權表
[[email protected] Desktop]# mysql
#登入資料庫修改使用者密碼,接下來步驟與上一個方法一致
5 資料庫備份(以名稱為lockey的資料庫為例)
mysqldump -uroot -phalo lockey > lockey.dump
####備份某個資料庫
mysqldump -uroot -phalo --all-databases > backup.dump
###備份所有資料庫的資料
######恢復時不需要指定任何資料庫,命令格式如下:
mysql -uroot -predhat </mnt/all.dump
# mysqldump -uroot -phalo --no-data lockey > lockey.dump
###只備份資料庫中的表結構,不備份資料
資料庫備份與恢復實際操作:
1.備份資料庫
mysqldump -u root -phalo lockey >/mnt/lockey.sql
#cat /mnt/lockey.sql檢視備份的資料庫檔案,發現裡面全是sql語句
2.刪除資料庫
mysql -uroot -phalo -e 'drop database lockey;'
或者使用命令mysqladmin -uroot -phalo drop testdb
3.建立一個數據恢復的資料庫
mysql -uroot -phalo -e "create database lockey;"
或者使用命令mysqladmin -uroot -phalo create testdb
4.將資料恢復到資料庫中
mysql -uroot -phalo lockey </mnt/lockey.sql
6. 資料庫使用者管理以及使用者授權
建立使用者
CREATE USER [email protected] identified by 'lockey';#預設對資料庫的操作訪問許可權為最低
使用者授權
GRANT INSERT,UPDATE,DELETE,SELECT on lockey.* to [email protected];
GRANT SELECT on lockey.* [email protected];
過載授權表
FLUSH PRIVILEGES;
檢視使用者授權
SHOW GRANTS FOR [email protected];
撤銷使用者許可權
REVOKE DELETE,UPDATE,INSERT on lockey.* from [email protected];
刪除使用者
DROP USER [email protected];
注意:如果授權了UPDATE許可權而沒有授權INSERT和SELECT會導致UPDATE命令失敗的情況出現,因為:
UPDATE需要執行插入,而INSERT許可權不夠
如果update命令後有where 條件語句那麼也會失敗,因為SELECT許可權不夠
7. mysql圖形管理軟體安裝
mysql圖形圖形管理軟體其實就是一些php程式,所以必須要有php支援以及php對資料庫操作的支援
7.1 下載管理元件,將組建解壓到apache根目錄下
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
7.2將元件訪問的名稱改為自己喜歡的名字
cd /var/www/html/
mv phpMyAdmin-3.4.0-all-languages/ sqladmin
7.3 配置元件
cd sqladmin/
cp config.sample.inc.php config.inc.php
vim Documentation.txt
#Documentation.txt檔案為配置解釋檔案,可根據這個檔案進行配置
vim config.inc.php
#進行元件配置,一般只需要加入一串識別碼就可以,具體參考配置文件
7.4 下載php以及php對資料庫的操作元件
yum install php php-mysql -y
測試:在瀏覽器中輸入:127.0.0.1/sqladmin進行訪問,一般會出現一個登陸頁面,輸入你的資料庫使用者以及密碼就可以進行圖形化的資料庫管理了額