1. 程式人生 > >Linux中mariadb資料庫的管理

Linux中mariadb資料庫的管理

資料庫(Database)是按照資料結構來組織、儲存和管理資料的建立在計算機儲存裝置上的倉庫。常見的資料庫有MySQL、SQL Server、Oracle、Sybase、DB2。MariaDB資料庫管理系統是MySQL的一個分支。

檔案————> 一張表 多個表格(檔案)————>資料庫 多個數據庫——————————>資料庫軟體 一、資料庫的安裝 (安裝>>安全初始化>>關3306介面) [[email protected] mnt]# yum  search  mariadb                    ###查詢與mariadb有關軟體包

[[email protected] mnt]# yum  install   mariadb-server   -y   ###安裝資料庫軟體 [[email protected] mnt]# mysql_secure_installation        ###第一次啟動前,進行安全初始化,對mysql進行設定--->>>原始密碼;新建資料庫密碼;禁止匿名使用者進入?;禁止超級使用者遠端進入?;使用者進入是否檢測資料庫;是否重新整理資料庫

[[email protected] mnt]# systemctl  start  mariadb           ###啟動服務

[[email protected] mnt]# netstat   -antlupe  |  grep  mysql   ###檢視資料庫介面mysql:3306 ; 開啟不安全  

[[email protected] mnt]# vim   /etc/my.cnf --->>>10   skip-networking=1     ###封閉埠;只允許本地連線,阻斷所有來自網路連線 [[email protected] mnt]# systemctl   restart  mariadb.service           ###重啟服務; 此時埠已關閉

  二、資料庫的使用 1.資料庫查詢 (;必須加) [[email protected] mnt]# mysql   -uroot   -pwestos       ###直接寫密碼不安全 [[email protected] mnt]# mysql   -uroot   -p                   ###-u使用者;-p密碼 MariaDB [(none)]> SHOW  DATABASES;     ###顯示資料庫(資料庫show=系統ls)

MariaDB [(none)]> USE  mysql;         ###進入某個資料庫(資料庫use=系統cd)

MariaDB [mysql]> SHOW  TABLES;        ###顯示此資料庫中的所有表 MariaDB [mysql]> DESC  user;          ###檢視某個表的資料結構

MariaDB [mysql]> select * from  user;     ###查詢表中的所有欄位資訊(資料庫欄位=表格表頭)

MariaDB [mysql]> select  User,Host,Password  from  user;    ###查詢表中的某幾個欄位資訊(資料庫select=系統cat) MariaDB [mysql]> flush  privileges;      ###重新整理資料庫資訊 2. 建立資料庫 MariaDB [(none)]> CREATE  database  westos;     ###建立名為westos的資料庫 MariaDB [(none)]> SHOW DATABASES;       ##列出當前已有的庫

MariaDB [westos]> USE  westos;             ##選擇了資料庫,才可在它中建表 MariaDB [westos]> CREATE  TABLE  linux (         ###建立westos資料庫中的linux表     -> username varchar(6) not null,                         ##欄位  字元型別char(長度) 不能為空     -> password varchar(50) not null     -> );

MariaDB [westos]> SHOW  TABLES; 

MariaDB [westos]> DESC  linux;

MariaDB [westos]> INSERT  INTO  linux  values('dmf','999');         ##向表中插入資料 MariaDB [westos]> SELECT  *  FROM  linux;

3. 資料庫的更改 MariaDB [westos]> ALTER  TABLE  linux  RENAME  messages;     ##更改資料庫中表名字

MariaDB [westos]> SHOW TABLES;        ##查看錶格

MariaDB [westos]> ALTER  TABLE  message RENAME  linux;     ##更改資料庫中表名字 MariaDB [westos]> ALTER  TABLE  linux  ADD  age varchar(50);     ##新增欄位age,char型別,長度50

MariaDB [westos]> SELECT  *  FROM  linux;

MariaDB [westos]> ALTER  TABLE  linux  DROP  age;          ###刪除表中CLASS欄位 MariaDB [westos]> ALTER TABLE linux ADD age VARCHAR(10) AFTER username;    ###在username欄位後新增age欄位

MariaDB [westos]> SELECT  *  FROM  linux;

MariaDB [westos]> UPDATE  linux  set  password='888'  WHERE  username='dmf'   AND ...;                                                                                                                              ###更新表中內容,AND後可加任意多個條件 MariaDB [westos]>DELETE  FROM  linux  where  username='dmf';              ##刪除表中使用者名稱為dmf的一行記錄 MariaDB [westos]> SELECT  *  FROM  linux; MariaDB [westos]>DROP  table  linux;       ###刪除表 MariaDB [westos]> SHOW  tables; MariaDB [westos]>DROP  DATABASE  westos;            ###刪除資料庫 MariaDB [(none)]> SHOW DATABASES;

三、在網頁(apache)上建立及管理資料庫 [[email protected]s ~]# yum  install  httpd  php  php-mysql.x86_64   -y       ##下載httpd ,php ,php與mysql對應轉接服務 [[email protected] ~]# systemctl  start  httpd.service

[[email protected] ~]# cd   /var/www/html          ##必須在apache的預設釋出目錄裡

[[email protected] html]# ls

                              ##安裝包  [[email protected] html]# tar  jxf  phpMyAdmin-2.11.3-all-languages.tar           ##解壓、拆包

[[email protected] html]# mv  phpMyAdmin-3.4.0-all-languages   mysqladmin     ##更改名字為myaqladmin

[[email protected] html]# cd  mysqladmin  [[email protected] mysqladmin]# less  phpMyAdmin-2.11.3-all-languages/Documentation.txt

                                                        ##記錄著安裝過程 (下載包,看php,mysql版本號;按模板生成config.inc.php並輸入密碼) [[email protected] mysqladmin]# rpm  -qa  |  grep php     ##看版本 [[email protected] mysqladmin]# cp  config.sample.inc.php   config.inc.php     ##生成檔案 ;注意檔案安全上下文要為httpd_sys_content_t [[email protected] mysqladmin]# vim   config.inc.php              ###配置檔案 17  $cfg['blowfish_secret'] = 'ba17c1ec07d65003';             ##密碼在安裝過程檔案中有 [[email protected] mysqladmin]# systemctl restart httpd [[email protected] mysqladmin]# systemctl start mariadb     ##開啟資料庫軟體 檢測:瀏覽器 172.25.254.112/mysqladmin           ###輸入mariadb資料庫使用者及密碼

                   ###建立westos資料庫

           ###在westos資料庫中建linux表格

                  ###建立linux表格裡的欄位

  ##填寫表格資訊      

四、資料庫備份 1)備份 [[email protected] mnt]# mysql   -uroot   -pwestos   -e   "show databases;"       ##檢視資料庫

[[email protected] mnt]# mysqldump -uroot -pwestos --all-databases      ##檢視所有資料庫資料

[[email protected] mnt]# mysqldump   -uroot   -pwestos    --all-databases    --no-data     ##檢視所有資料結構 [[email protected] mnt]# mysqldump   -uroot   -pwestos  westos  >  /mnt/westos.sql      ##指定資料庫的資料備份 2)刪庫 [[email protected] mnt]# mysql  -uroot  -p123  -e   "drop database westos;"    ##刪除資料庫

[[email protected] mnt]# mysql   -uroot   -pwestos   -e   "show databases;"       ##檢視資料庫

    ###weosto庫已刪除 4)恢復,庫需存在 方法1:命令建庫 [[email protected] mnt]# mysql  -uroot  -p  westos  "CREATE  DATABASE  westos;"

[[email protected] mnt]# mysql -uroot -pwestos  <  /mnt/ku.sql       ##資料恢復;注意:備份的資料庫必須存在 方法2:文字方式建庫 [[email protected] mnt]# vim  /mnt/ku.sql              ##修改備份檔案

[[email protected] mnt]# mysql -uroot -pwestos  <  /mnt/ku.sql        ##資料恢復 [[email protected] mnt]# mysql  -uroot  -pwestos  -e  "SELECT  *  FROM  westos.linux;"     ##恢復後,登陸資料庫檢視 五、資料庫mysql密碼忘記 1.改密碼 [[email protected] mnt]# mysqladmin  -uroot  -pwestos  password  student    ###修改root使用者密碼為student [[email protected] mnt]# mysql  -uroot  -pstudent Welcome to the MariaDB monitor.  Commands end with ; or \g. 2.忘記密碼 1)關閉mariadb服務,進入安全模式 [[email protected] ~]# systemctl stop mariadb       ##關閉服務 [[email protected] ~]# mysqld_safe  --skip-grant-tables &        ##跳過授權列表,進入安全模式;ctrl+c結束 2)修改root密碼 [[email protected] ~]# mysql            ##安全模式無密碼可登陸 MariaDB [(none)]> UPDATE  mysql.user  SET  Password=password('westos')   WHERE  User='root';

                                                                                   ##修改密碼為westos,並將他用password加密;不加密則密碼為明文 MariaDB [mysql]> SELECT  User,Password  FROM  user;           ###密碼修改成功 +------+-------------------------------------------------------------------------------+ | User | Password                                                                                 | +------+-------------------------------------------------------------------------------+ | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 | | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 | | root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 | +------+--------------------------------------------------------------------------------+ 3)重啟服務 [[email protected] ~]# ps aux | grep mysql              ##檢視mysql的程序

[[email protected] ~]# kill -9  1882           ###關閉所有mysql程序;留下root程序 [[email protected] ~]# systemctl restart mariadb       ##重啟服務 [[email protected] ~]# mysql -uroot -pwestos         ###用新密碼登陸成功 Welcome to the MariaDB monitor.  Commands end with ; or \g. 六、資料庫的使用者授權管理 1.新建使用者 MariaDB [(none)]> CREATE USER  [email protected]'localhost'   identified   by  '123'; 

                                                                                            ##新建dmf使用者,他只可在本機使用資料庫,他的密碼為123 MariaDB [(none)]> CREATE USER  [email protected]'%' identified by 'teacher';  

                                                                                             ##新建teacher使用者,他可遠端登陸並使用資料庫,他的密碼為teacher MariaDB [(none)]> SELECT  User,Host   FROM   mysql.user;       ###檢視新建使用者

2.檢視使用者許可權及授權 MariaDB [(none)]> GRANT   SELECT,INSERT,UPDATE,DELETE  ON   westos.*   TO  [email protected]

                                                                                                           ##給使用者授權;可檢視、可插入可更新可刪除 MariaDB [(none)]> SHOW  GRANTS  FOR  [email protected];          ###檢視student使用者許可權 GRANT SELECT, INSERT, UPDATE, DELETE ON `westos`.* TO 'dmf'@'localhost'    ## 可檢視、插入、更新、刪除 [[email protected] ~]# mysql   -udmf    -p123             ##dmf使用者登陸資料庫 MariaDB [(none)]> SHOW DATABASES;   ###有許可權:可登陸,可看 3)撤銷許可權 MariaDB [(none)]> REVOKE   SELECT, INSERT, UPDATE, DELETE  on  westos.*   from  [email protected];    ###撤銷dmf使用者許可權 [[email protected] ~]# mysql   -udmf   -p123             ##dmf使用者登陸資料庫 MariaDB [(none)]> SHOW DATABASES;     ###無許可權:可登陸,但不可看任何東西 4)刪除使用者 MariaDB [(none)]> DROP USER [email protected]; MariaDB [(none)]> DROP USER [email protected]'%';