MySQL系列之三 基礎篇

系列教程

MySQL系列之開篇 MySQL關系型數據庫基礎概念
MySQL系列之一 MariaDB-server安裝
MySQL系列之二 多實例配置
MySQL系列之四 SQL語法
MySQL系列之五 視圖、存儲函數、存儲過程、觸發器
MySQL系列之六 用戶與授權
MySQL系列之七 MySQL存儲引擎
MySQL系列之八 MySQL服務器變量
MySQL系列之九 mysql查詢緩存及索引
MySQL系列之十 MySQL事務隔離實現並發控制
MySQL系列之十一 日志記錄
MySQL系列之十二 備份與恢復
MySQL系列之十三 MySQL的復制
MySQL系列之十四 MySQL的高可用實現
MySQL系列之十五 MySQL常用配置和性能壓力測試

一、MySQL簡介

​ MySQL原本是一個開放源代碼的關系數據庫管理系統,原開發者為瑞典的MySQL AB公司,該公司於2008年被Sun公司收購。2009年,Oracle收購sun公司,MySQL成為Oracle旗下產品。

​ 但被甲骨文公司收購後,Oracle大幅調漲MySQL商業版的售價,且甲骨文公司不再支持另一個自由軟件項目OpenSolaris的發展,因此導致自由軟件社區們對於Oracle是否還會持續支持MySQL社區版(MySQL之中唯一的免費版本)有所隱憂,MySQL的創始人麥克爾·維德紐斯以MySQL為基礎,成立分支計劃MariaDB。而原先一些使用MySQL的開源軟件逐漸轉向MariaDB或其它的數據庫。

二、MySQL的發展歷史

作者:Monty 麥克爾·維德紐斯

  • 1996年:發佈MySQL1.0,開始是Solaris版本,後來又發佈瞭Linux版本
  • 1999年:Monty 在瑞典成立瞭 MySQL AB 公司
  • 2003年:MySQL 5.0版本發佈,增加瞭視圖、存儲過程等功能
  • 2008年:被 sun公司 收購
  • 2009年:Oracle 收購 sun
  • 2009年:Monty 成立 MariaDB

版本的演變:

  • ​ MySQL:5.1 –> 5.5 –> 5.6 –> 5.7
  • ​ MariaDB:5.5 –>10.0–> 10.1 –> 10.2 –> 10.3

三、MariaDB的基本使用

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,10.0.9版起使用XtraDB(名稱代號為Aria)來代替MySQL的InnoDB。

​ 由MySQL的創始人麥克爾·維德紐斯主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL AB賣給瞭SUN,此後,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自麥克爾·維德紐斯的女兒瑪麗亞(英語:Maria)的名字。

​ 插件式存儲引擎:也稱為“表類型”,存儲管理器有多種實現版本,功能和特性可能均略有差別;用戶可根據需要靈活選擇,Mysql5.5.5開始innoDB引擎是MYSQL默認引擎。MyISAM ==> Aria ,InnoDB ==> XtraDB

1、基本安裝與配置

安裝:yum install mariadb-server

主配置文件:從上到下檢查,如果有重復的配置參數則在後邊的配置文件中的參數生效,覆蓋檢索

/etc/my.cnf
/etc/mysql/my.cnf
/etc/sysconfig/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf

​ 查看默認配置:/usr/libexec/mysqld –print-defaults

默認數據庫庫文件存放目錄:/var/lib/mysql/

套接字文件:/var/lib/mysql/mysql.sock

PID文件:/var/run/mariadb/mariadb.pid

日志文件:/var/log/mariadb/mariadb.log

啟動服務:# systemctl start mariadb.service

2、客戶端命令:mysql

選項:

​ -u root 指定用戶
-p password 指定密碼
-h host 指定連接主機
-A 禁止補全
-P port 指定端口,默認3306
​ -S socket文件路徑 默認:/var/lib/mysql/mysql.sock
​ -D databasename 指定默認數據庫
​ -C 啟用壓縮
​ -e SQL_CMD 執行後退出
-V 查看版本
​ –print-defaults 查看默認設置

批處理模式

mysql < /path/somefile.sql 將sql腳本導入數據庫執行

交互式模式

客戶端命令

  • \d|delimiter 設置語句結束符
  • \c|clear 提前結束語句
  • \r|connect 重新連接數據庫
  • \g 直接將語句送服務器執行
  • \G 直接將語句送服務器執行;結果縱向顯示
  • .|source 讀入腳本文件創建數據庫
  • ! COMMAND 執行shell命令
  • \W 語句執行結束後顯示警告信息
  • \w 語句執行結束後不顯示警告信息
  • \s 獲取當前系統狀態
  • use database_name 指定操作的數據庫
  • prompt \u@[\D] \r:\m:\s-> 修改提示符,如果需要永久修改則在my.cnf中 [mysql] 下加入 prompt=”(\u@\h) [\d]>
  • \q 退出

服務器命令:需要在命令後加命令結束符,默認結束符為分號”;”

  • help KEYWORD 獲取服務器命令的幫助
  • select version(); 查看數據庫版本
  • show variables; 顯示數據庫當前工作的環境變量

3、其他客戶端工具

  • mysqldump:備份工具,基於mysql協議向mysqld發起查詢請求,並將查得的所有數據轉換成insert等寫操作語句保存文本文件中
  • mysqladmin:基於mysql協議管理mysqld
  • mysqlimport:數據導入工具
  • myisamchk:檢查MyISAM庫
  • myisampack:打包MyISAM表
  • mysqld_safe:服務二進制程序
  • mysqld_multi:創建多實例工具

4、安全加強腳本 mysql_secure_installation

這個腳本可以幫助我們做一下基本的安全加強

[root@centos7 mysql]# mysql_secure_installation
Enter current password for root (enter for none):   #空密碼直接回車
Set root password? [Y/n] Y  #設置root密碼
New password: ******
Re-enter new password: ******
Remove anonymous users? [Y/n] Y  #刪除匿名賬戶
Disallow root login remotely? [Y/n] n  #禁用遠程連接
Remove test database and access to it? [Y/n] Y  #刪除test庫
Reload privilege tables now? [Y/n] Y  #重讀授權表使其配置生效
[root@centos7 mysql]# mysql -uroot -p'your_password'  #連接數據庫命令

到此這篇關於MySQL系列之三 基礎篇的文章就介紹到這瞭,更多相關MySQL 基礎篇內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: