Mariadb安裝和簡析

Mariadb的安裝

CentOS7上使用rpm包直接安裝Mariadb

CentOS6上使用通用二進制格式安裝:

1、準備好二進制格式包和數據目錄(數據庫應該有單獨的數據存儲目錄,最佳的方式是存放在單獨掛載的磁盤分區上,這樣便於管理和備份)。

  二進制包:mariadb-5.5.46-linux-x86_64.tar.gz

  數據目錄:/mydata/data

2、解壓並配置mariadb

[root@localhost ~]# groupadd -r -g 306 mysql // 創建mysql系統組以及mysql系統用戶
[root@localhost ~]# useradd -r -g 306 mysql
[root@localhost ~]# tar xf mariadb-5.5.46-linux-86_64 -C /usr/local // 解壓後展開必須在/usr/local下
[root@localhost ~]# cd /usr/local
[root@localhost local]# ln -sv mariadb-5.5.46-linux-86_64 mysql // mariadb的目錄必須名爲mysql
[root@localhost local]# cd mysql
[root@localhost mysql]# chown -R root:mysql ./* // 將mysql目錄中的所有目錄及文件的屬主和屬組分別改爲root和mysql
[root@localhost mysql]# scripts/mysql-install_db --datadir=/mydata/data --user=mysql
// 使用初始化腳本將初始化數據存放到指定的數據目錄/mydata/data下
// --datadir= :指定數據目錄
// --user= :指定以什麼用戶安裝
[root@localhost mysql]# cp supper=files/mysql.server /etc/rc.d/init.d/mysqld
// 複製服務腳本到init.d目錄下

3、準備配置文件

配置格式:類ini格式,爲各程序均通過單個配置文件提供配置信息;

配置文件查找次序:

/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf

[root@localhost ~]# mkdir /etc/mysql 
[root@localhost ~]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@localhost ~]# vim /etc/mysql/my.cnf
> datadir = /mydata/data
> innodb_file_pertable = on
> skip_name_resolve = on

4、啓動服務

[root@localhost mysql]# service mysqld start
[root@localhost mysql]# ss -tnl

5、修改環境變量(否則啓動客戶段程序只能在絕對路徑下執行)

[root@localhost ~]# vim /etc/profile.d/mysqld.sh
> export PATH=/usr/local/mysql/bin:$PATH
[root@localhost ~]# source /etc/profile.d/mysql.sh

6、安全初始化mysql

由於mariaDB初次安裝,root用戶是空密碼,並且還有空密碼的匿名用戶,這都是極其危險的,需要進行處理

[root@localhost ~]#/usr/local/mysql/bin/mysql_secure_installation
Enter current password for root (enter for none):   // 輸入當前mysql數據庫的root密碼,初始爲空
Set root password? [Y/n] y  // 詢問是否設置新的root密碼
New password:               // 輸入新的root密碼
Re-enter new password:      // 確認信的root密碼
Remove anonymous users? [Y/n] y  //詢問是否移除匿名用戶
Disallow root login remotely? [Y/n]  // 詢問是否禁止root用戶遠程登錄
Remove test database and access to it? [Y/n] n  // 詢問是否刪除測試數據庫
Reload privilege tables now? [Y/n] y   // 詢問是否刷新權限表
[root@localhost ~]#


MariaDB的程序組成:

服務器端程序:

  /usr/local/mysql/bin

   mysqld,而一般情況下運行的則是mysql_safe,可使用ps aux | grep myqld查看

   mysql_multi爲多實例運行,運行多個mysql進程,使用不同的端口,類似於httpd的vhost


客戶端程序:

  /usr/local/mysql/bin/
   mysql:命令行式的客戶端

   mysqladmin :mysql遠程管理工具

   mysqlbinlog :mysql日誌管理工具

   mysqldump

服務器監聽的兩種socket地址:

  ip socket:監聽在tcp的3306端口,支持遠程通信;

  unix sock:監聽在sock文件上(二進制安裝/tmp/mysql.sock,rpm包安裝/var/lib/mysql/mysql.sock),僅支持本地通信,即客戶端和服務器在同一個主機上,只能基於127.0.0.1的方式通信。

    server:localhost,127.0.0.1


命令行交互方式客戶端程序文件:mysql

交互方式:

mysql

  -uUSERNAME:用戶名,默認爲root

  -hHOST:服務器主機,默認爲localhost

  -pPASSWORD:用戶的密碼,默認爲空密碼,一般使用爲-p後直接回車,然後輸入密碼登陸,如果在-p後直接輸入密碼,會明文顯示,極不安全

例:

5a51ef658ea4ac638028a6325a37b9ba.png

  NOTE:mysql用戶賬號由兩部分組成:'USERNAME'@'HOST',其中HOST用於限制此用戶可通過哪些主機遠程連接mysql服務。

  支持使用通配符:

    %:配置任意長度的任意字符

      172.16.0.0/16,172.16.%.%

    _:匹配任意單個字符

交互命令分類:

  客戶端命令:通過mysql協議發往服務器執行並取回結果 

  例: 

MariaDB [(none)]> help
MariaDB [(none)]> status

  服務端命令:本地執行,每個命令都必須有命令結束符號;默認爲分號;

  例:

MariaDB [(none)]> SHOW DATABASES;


關係型數據庫的常見組件:

  數據庫:database

  表:table

   行:row

   列:column

  索引:index

  視圖:view

  用戶:user

  權限:privilege

  

  存儲過程:procedure

  存儲函數:function

  觸發器:trigger

  事件調度器:event scheduler


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