基礎篇 MySQL系列之三

2022-07-02 21:51:11 字數 2704 閱讀 2040

mysql原本是乙個開放源**的關聯式資料庫管理系統,原開發者為瑞典的mysql ab公司,該公司於2023年被sun公司收購。2023年,oracle收購sun公司,mysql成為oracle旗下產品。

被甲骨文公司收購後,oracle大幅調漲mysql商業版的售價,且甲骨文公司不再支援另乙個自由軟體專案opensolaris的發展,因此導致自由軟體社群們對於oracle是否還會持續支援mysql社群版(mysql之中唯一的免費版本)有所隱憂,mysql的創始人麥可·維德紐斯以mysql為基礎,成立分支計畫mariadb。而原先一些使用mysql的開源軟體逐漸轉向mariadb或其它的資料庫。

版本的演變:

​ mysql:5.1 --> 5.5 --> 5.6 --> 5.7

​ mariadb:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3

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 檢視預設設定

互動式模式

伺服器命令:需要在命令後加命令結束符,預設結束符為分號";"

3、其他客戶端工具

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' #連線資料庫命令

@_@ 2018.06.05 11:38

mysql設計之三正規化 MySQL設計之三正規化

資料庫設計三正規化 設計資料庫表的時候所依據的規範,共三個規範 第一正規化 要求有主鍵,並且要求每乙個字段原子性不可再分 第二正規化 要求所有非主鍵字段完全依賴主鍵,不能產生部分依賴 第三正規化 所有非主鍵欄位和主鍵字段之間不能產生傳遞依賴 第一正規化 資料庫表中不能出現重覆記錄,每個欄位是原子性的...

《解剖PetShop》系列之三

解剖petshop 系列之三 三 petshop資料訪問層之訊息處理 在進行系統設計時,除了對安全 事務等問題給與足夠的重視外,效能也是乙個不可避免的問題所在,尤其是乙個b s結構的軟體系統,必須充分地考慮訪問量 資料流量 伺服器負荷的問題。解決效能的瓶頸,除了對硬體系統進行公升級外,軟體設計的合理...

ORM系列之三 Dapper

目錄 快,讀取資料接近idatareader。支援大部分主流的資料庫,如 ms sql,oracle,mysql,sqlite等等。支援對映一對一,一對多,多對多關係。示例中需要用到兩個實體型別,分別為post.cs和user.cs。1 2 3 4 5 6 7 8 9 10 11 12 13 pub...