MariaDB安裝與配置
本文是基於CentOS7.2系統來進行mariadb的安裝與配置,安裝前請關閉selinux和在iptables規則中開放3306端口,在此次我們直接清空了iptables規則。
Iptables –F vim /etc/selinux/config #SELINUX=enforcing ##注釋掉此項## #SELINUXTYPE=targeted ##注釋掉此項## SELINUX=disabled ##添加此項##
添加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 ##登陸數據庫##’
MariaDB二進制壓縮包命名格式形如:mariadb-版本名-操作系統名.tar.gz,請確認從此外下載為您的機器下載正確的版本。
官方下載點:http://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使用的是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
服務端程序:mysqldsafe, mysqldmulti 客戶端程序:mysql, mysqldump, mysqladmin 工具程序:myisampack, …
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 ##開啟安全更新模式,不可在配置文件中直接定義## ...