Mariadb的安裝mysql
CentOS7上使用rpm包直接安裝Mariadb
linux
CentOS6上使用通用二進制格式安裝:sql
一、準備好二進制格式包和數據目錄(數據庫應該有單獨的數據存儲目錄,最佳的方式是存放在單獨掛載的磁盤分區上,這樣便於管理和備份)。數據庫
二進制包:mariadb-5.5.46-linux-x86_64.tar.gzvim
數據目錄:/mydata/data安全
二、解壓並配置mariadbbash
[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目錄下
三、準備配置文件服務器
配置格式:類ini格式,爲各程序均經過單個配置文件提供配置信息;socket
配置文件查找次序:tcp
/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
四、啓動服務
[root@localhost mysql]# service mysqld start [root@localhost mysql]# ss -tnl
五、修改環境變量(不然啓動客戶段程序只能在絕對路徑下執行)
[root@localhost ~]# vim /etc/profile.d/mysqld.sh > export PATH=/usr/local/mysql/bin:$PATH [root@localhost ~]# source /etc/profile.d/mysql.sh
六、安全初始化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後直接輸入密碼,會明文顯示,極不安全
例:
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