MariaDB安裝與配置

MariaDB安裝與配置 

本文是基于CentOS7.2系統來進行mariadb的安裝與配置,安裝前請關閉selinux和在iptables規則中開放3306端口,在此次我們直接清空了iptables規則。

Iptables –F
vim /etc/selinux/config
    #SELINUX=enforcing ##注釋掉此項##
    #SELINUXTYPE=targeted ##注釋掉此項##
    SELINUX=disabled ##添加此項##

一、MariaDB的安裝

1、使用yum安裝mariadb

添加mariadb的yum源,這里使用阿里源:

get http://mirrors.aliyun.com/repo/Centos-7.repo  /etc/yum.repos.d/
yum install MariaDB-server MariaDB-client ##安裝mariadb服務器端、客戶端##
vim /etc/my.cnf.d/server.cnf    ##mariadb服務器端配置文件##
    [mysqld]        ##以下項是優化項目可根據需要選擇##
    innodb_file_per_table=ON    ##使用獨立表空間模式(建議使用)##
    skip_name_resolve=ON    ##禁止域名反向解析(可選)##
systemctl start mariadb.service     ##啟動mariadb服務
systemctl enable mariadb.service    ##設置為開機啟動##
mysql_secure_installation           ##安裝完成后安全初始化,添加root密碼,刪除匿名登錄賬戶,禁止遠程使用root用戶登錄,刪除測試數據庫和使用##  
mysql –uroot –hlocalhost –p’PASSWORD  ##登陸數據庫##’

2、用二進制壓縮包安裝MariaDB

MariaDB二進制壓縮包命名格式形如:mariadb-版本名-操作系統名.tar.gz,請確認從此外下載為您的機器下載正確的版本。

官方下載點:https://downloads.mariadb.org/,這里我們將使用mariadb5.5版本.

請將二進制包解壓到某目錄,然后進行mysqlinstalldb安裝腳本。

我們將MariaDB安裝到目錄/usr/local/mysql中(這是許多平臺中的默認的安裝目錄),當然安裝其他任意目錄中也是可行的。

我們為其建立一個軟鏈接,這樣做可以方便地改變軟鏈接而使用不同目錄中不同版本的MariaDB。

注意: 對于MariaDB 5.1.32 只要將行”./scripts/mysqlinstalldb –user=mysql”改成”./bin/mysqlinstalldb –user=mysql”就行了。

確保你使用了正確的my.cnf文件

MariaDB在’/etc/my.cnf’位置尋找配置文件(有些系統中是’/etc/mysql/my.cnf’或’~/.my.cnf’)。如果你的系統中有舊的my.cnf文件(系統中曾安裝MariaDB或MySQL帶來的),你要注意用二進制.tar包安裝了MariaDB后,用了舊的配置文件。正常的解決方法是不使用目錄中的配置文件,而使用二進制包中的配制文件。具體的做法是:在你的根目錄中建立在個.my.cnf配置文件,然后通過選項’–defaults-file=~/.my.cnf’配置mysqlinstalldb、mysqld_safe和mysql(命令行工具)只使用你自建的配置文件。要注意的是,此選項必須是命令的第一個選項。

用root帳戶將MariaDB安裝在/usr/local/mysql

如果有系統的root使用權限,你可能使用“mysql”用戶(組)來安裝MariaDB(以保持與MySQL的兼容性):

groupadd mysql
useradd -g mysql mysql
cd /usr/local
tar -zxvpf /path-to/mariadb-VERSION-OS.tar.gz
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

建議使用指令ln -s創建一個軟鏈接,從而為安裝多個不的MariaDB版本進行測試、升級、降級等提供方便。

如果你是用MariaDB替代,你不用關閉MySQL,你只要調用mysqlinstalldb指令,MariaDB會通過你原來的/etc/my.cnf文件(路徑會隨你的系統而有所不同)中找到數據目錄。

你現在需用如下方式執行mysqld指令:

./bin/mysqld_safe --user=mysql &
or
./bin/mysqld_safe --defaults-file=~/.my.cnf --user=mysql &

修改你的$PATH以便你調用mysql、mysqldump等進行連接測試。

export PATH=$PATH:/usr/local/mysql/bin/

你或更愿意通過修改.bashrc或.bash_profile文件來永久保存設置

用root帳戶將MariaDB安裝在任意目錄

下面的操作將目錄/usr/local更改到你選擇的目錄:

cd /usr/local
gunzip < /path-to/mariadb-VERSION-OS.tar.gz | tar xf -
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db --defaults-file=~/.my.cnf

如果你用不來上面的gunzip命令,如有 gnu tar的話,你也可這樣:

tar xfz /path-to/mariadb-VERSION-OS.tar.gz

你需用下面的指令啟動mysqld:

./bin/mysqld_safe --defaults-file=~/.my.cnf &

自動啟動mysqld

你可將文件mysql.server拷貝到合適的位置使mysqld(MariaDB服務器)自動進行。

cp support-files/mysql.server /etc/init.d/mysql.server

具體的位置取決于你的系統,mysql.server文件中含有怎樣使用與優化它的相關指導。

安裝后的工作

到了這一點后,請記住為所有不可信來源的連接設置正確的密碼來減小安全風險!也可以考慮用mysql.server使在系統啟動時自動啟動MariaDB。

二、MariaDB的配置

Mariadb使用的是ini風格的配置文件,為多個程序同時提供配置; mariadb讀取多處的多個配置文件,而且會以指定的次序的進行; 查看讀取順序的命令:

my_print_defaults
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

/etc/my.cnf 是由mariadb-libs生成的

/etc/my.cnf.d/server.cnf是由 mariadb-server生成

/etc/my.cnf.d/client.cnf是由mariadb生成

不同的配置文件中出現同一參數且擁有不同值時,后讀取將為最終生效值。

修改默認讀取的配置文件(mysqld_safe命令):

--defaults-file=file_name

于讀取的默認配置文件之外再加載一個文件:

--defaults-extra-file=path

配置文件格式:ini風格的配置文件,能夠為mysql的各種應用程序提供配置信息:

[mysqld]
[mysqld_safe]
[mysqld_multi]
[server]
[mysql]
[mysqldump]
[client]
    ...
配置參數格式:
    PARAMETER = VALUE
    PARAMETER寫法:
            innodb_file_per_table (建議使用)
            innodb-file-per-table

三、MariaDB的程序文件及命令:

服務端程序:mysqldsafe, mysqldmulti 客戶端程序:mysql, mysqldump, mysqladmin 工具程序:myisampack, …

1、mysql:交互式CLI工具;命令化運行;

mysql [options] db_name

常用選項:

--host=host_name, -h host_name:服務端地址;
--user=user_name, -u user_name:用戶名;
--password[=password], -p[password]:用戶密碼; 
--port=port_num, -P port_num:服務端端口; 
--protocol={TCP|SOCKET|PIPE|MEMORY}:本地通信:基于本地回環地址進行請求,將基于本地通信協議;
        Linux:SOCKET
        Windows:PIPE,MEMORY
    非本地通信:使用非本地回環地址進行的請求; TCP協議;
--socket=path, -S path
--database=db_name, -D db_name:
--compress, -C:數據壓縮傳輸
--execute=statement, -e statement:非交互模式執行SQL語句;
--vertical, -E:查詢結果縱向顯示;

命令:

客戶端命令:于客戶端執行;

服務端命令:SQL語句,需要一次性完整地發往服務端;語句必須有結束符;

?         (\?) Synonym for `help'. ##使用幫助##
clear     (\c) Clear the current input statement.##清除已輸入的##
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.##設置語句分隔符##
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.##退出##
go        (\g) Send command to mysql server.#發送命令到mysql服務器#
help      (\h) Display this help.##顯示幫助##
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.##不寫入輸出文件##
pager   (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.##打印現在的命令##
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.  ##退出##
rehash    (\#) Rebuild completion hash.##重新hash##
source    (\.) Execute an SQL script file. Takes a file name as an argument. ##執行一個SQL腳本文件
status    (\s) Get status information from the server.##從服務器獲取狀態信息##
system    (\!) Execute a system shell command.
tee     (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. ##使用其他數據庫##
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.##切換到另一個字符集##
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
mysql命令的使用幫助:
man mysql
mysql  --help  --verbose

sql腳本運行:

mysql [options] [DATABASE] < /PATH/FROM/SOME_SQL_SCRIPT

mysqld服務器程序:工作特性的定義方式: 命令行選項 配置文件參數

服務器參數/變量:設定MySQL的運行特性;

mysql> SHOW [GLOBAL | SESSION] VARIABLES [like_or_where];

狀態(統計)參數/變量:保存MySQL運行過程中的統計數據或狀態數據;

mysql> SHOW [GLOBAL | SESSION] STATUS [like_or_where];

顯示單個變量設定值的方法:

mysql> SELECT @@[global.|session.]system_var_name   
    %:匹配任意長度的任意字符;
    _:匹配任意單個字符;

變量/參數級別: 全局:為所有會話設定默認; 會話:跟單個會話相關;會話建立會從全局繼承;

服務器變量的調整方式: 運行時修改: global:僅對修改后新建立的會話有效; session:僅對當前會話有效,且立即生效; 通過配置文件修改: 重啟后生效;

運行時修改服務器變量值操作方法:

mysql> HELP SET
SET [GLOBAL | SESSION] system_var_name = expr
SET [@@global. | @@session. | @@]system_var_name = expr

安裝完成后的安全初始化:

mysql_secure_installation

運行前常修改的參數:

innodb_file_per_table=ON  ##開始獨立表空間模式##
skip_name_resolve=ON    ##禁止域名反向解析##
sql_safe_updates=ON     ##開啟安全更新模式,不可在配置文件中直接定義##
...

原創文章,作者:征(_少,如若轉載,請注明出處:http://www.www58058.com/69312

(0)
征(_少征(_少
上一篇 2017-02-18 19:55
下一篇 2017-02-18 21:24

相關推薦

  • 洞悉find中的德摩根定律和條件權限perm

    1.德摩根定律 (1)初悉德摩根定律兒 在命題邏輯和邏輯代數中,德·摩根定律(或稱德·摩根定理)是關于命題邏輯規律的一對法則。 奧古斯塔斯·德·摩根首先發現了在命題邏輯中存在著下面這些關系: 非(A 且 B) = (非 A) 或 (非 B)非(A 或 B)&n…

    Linux干貨 2016-08-16
  • 關于軟硬鏈接那些事兒

           小編這周接觸到了鏈接,那么重點來了,啥是鏈接呢小編覺得鏈接簡單來說就是一種共享的方式,比如我們去逛超市,超市的入口就是‘鏈接’。在Linux中,鏈接又分為軟連接和硬鏈接,想要了解他倆,就得先了解幾個基本概念。 一:Inode       我們知道文件包含數據和元數據,它的數據…

    Linux干貨 2017-07-22
  • Linux Services and Security–part1

    一、詳細描述一次加密通訊的過程,結合圖示最佳 以Bob和Alice安全通訊為例: Bob<———>Alice 1. Bob要和Alice安全通信首先要取得對方的公鑰,即對方的證書,并驗證證書的合法性。驗證過程和內容: 1)、用CA的公鑰(雙方已知)解密對方證書中CA的簽名;能解密說明證書來原可靠; 2)、用證書中標記的“簽名算法”來計算證書的相關…

    2017-10-17
  • systemd

    systemd的新特性(centos 7) 系統引導時實現服務并行啟動 按需激活進程,在此之前可以讓進程處于半活動狀態 系統狀態快照:能夠自我保存當前系統上沒一個用戶空間的進程運行狀態快照,將來可以迅速恢復到某一種狀態,因此用戶空間有了時間機器??梢曰貪L到過去某一時刻的狀態 內在的基于依賴關系定義的服務控制邏輯 對與systemd來講,引入了一個新的核心概念…

    Linux干貨 2016-09-23
  • vsftpd基于mysql存儲認證(centos7)

    (1)首先開發包組和服務器平平臺開發包組 (2)yum安裝需要的依賴包 (3)編譯安裝pam_mysql模塊 (4)配置mysql,并添加mysql中的vsftpd進程用戶,且創建vsftpd數據庫,并將vsftpd數據庫授權給vsftpd用戶,且創建vsftpd.users表,并在表中添加用戶tom (5)創建vsftpd要上傳和下載的URL (6)創建基…

    Linux干貨 2016-10-15
  • net25-第12周作業

    1、請描述一次完整的http請求處理過程; – (1)客戶端發送http請求– (2)服務端建立或處理連接,接受請求或拒絕請求– (3)接受請求:接受客戶端對服務器某一資源的請求– (4)處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息– (5)訪問資源:獲取請求報文中請求的資…

    Linux干貨 2017-05-15
欧美性久久久久