MySQL

MySQL簡介
MySQL原本是一個開放源代碼的關系數據庫管理系統,原開發者為瑞典的MySQL AB公司,該公司于2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。
MySQL在過去由于性能高、成本低、可靠性好,已經成為最流行的開源數據庫,因此被廣泛地應用在Internet上的中小型網站中。隨著MySQL的不斷成熟,它也逐漸用于更多大規模網站和應用,比如維基百科、Google和Facebook等網站。非常流行的開源軟件組合LAMP中的“M”指的就是MySQL。
但被甲骨文公司收購后,Oracle大幅調漲MySQL商業版的售價,且甲骨文公司不再支持另一個自由軟件項目OpenSolaris的發展,因此導致自由軟件社群們對于Oracle是否還會持續支持MySQL社群版(MySQL之中唯一的免費版本)有所隱憂,MySQL的創始人麥克爾·維德紐斯以MySQL為基礎,成立分支計劃MariaDB。而原先一些使用MySQL的開源軟件逐漸轉向MariaDB或其它的數據庫。例如維基百科已于2013年正式宣布將從MySQL遷移到MariaDB數據庫[6]。
關系型數據庫
關系數據庫(英語:Relational database),是創建在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據。現實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示。關系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”?,F如今雖然對此模型有一些批評意見,但它還是數據存儲的傳統標準。標準數據查詢語言SQL就是一種基于關系數據庫的語言,這種語言執行對關系數據庫中數據的檢索和操作。
關系模型由關系數據結構、關系操作集合、關系完整性約束三部分組成。
MySQL特性
MySQL是一種使用廣泛的數據庫,特性如下:
MySQL應用
與大型數據庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網站構架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統,Apache作為Web服務器,MySQL作為數據庫,PHP作為服務器端腳本解釋器。由于Linux+Apache+MySQL+PHP都是自由或開放源碼軟件(FLOSS),因此使用LAMP不用花一分錢就可以建立起一個穩定、免費的網站系統。
MySLQ存儲引擎
插件式存儲引擎是MySQL數據庫最重要的特性之一,用戶可以根據應用的需要選擇如何存儲和索引數據庫,是否使用事務等。mySQL默認支持多種存儲引擎,以適應不同領域的數據庫應用需要。用戶可以通過選擇使用不同的存儲引擎提高應用的效率,提供靈活的存儲,用戶設置可以按照自己的需要定制和使用自己的存儲引擎,以實現大程度的可定制性。
MySQL常用的存儲引擎為MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事務安全表,其他存儲引擎都是非事務安全表。
MyISAM是MySQL的默認存儲引擎。MyISAM不支持事務、也不支持外鍵,但其訪問速度快,對事務完整性沒有要求。
InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是比起MyISAM存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數據和索引。MySQL支持外鍵存儲引擎只有InnoDB,在創建外鍵的時候,要求附表必須有對應的索引,子表在創建外鍵的時候也會自動創建對應的索引。
主要體現在性能、事務、并發控制、參照完整性、緩存、故障恢復,備份及回存等幾個方面
目前比較普及的存儲引擎是MyISAM和InnoDB,而MyISAM又是絕大部分Web應用的選。MyISAM與InnoDB的主要的不同點在于性能和事務控制上。
MyISAM是早期ISAM(Indexed Sequential Access Method)的擴展實現,ISAM被設計為適合處理讀頻率遠大于寫頻率的情況,因此ISAM以及后來的MyISAM都沒有考慮對事物的支持,不需要事務記錄,ISAM的查詢效率相當可觀,而且內存占用很少。
MyISAM在繼承了ISAM優點的同時,與時俱進的提供了大量實用的新特性和相關工具。例如考慮到并發控制,提供了表級鎖。
而且由于MyISAM是每張表使用各自獨立的存儲文件(MYD數據文件和MYI索引文件),使得備份及恢復十分方便(拷貝覆蓋即可),而且還支持在線恢復。
所以如果應用不需要事務,不支持外鍵,處理的只是基本的CRUD(增刪改查)操作,那么MyISAM是不二選擇。
linux (CentOS7.5_x86_64)下安裝mysql8.0
# 下載mysql $ wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-el7-x86_64.tar.gz # 解壓 $ mysql tar -zxvf mysql-8.0.4-rc-linux-glibc2.12-x86_64.tar.gz -C /usr/local # 修改文件夾名稱 $ mv mysql-8.0.4-rc-linux-glibc2.12-x86_64/ mysql 添加默認配置文件 $ vim/etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 user=mysql socket=/tmp/mysql.sock basedir=/usr/local/mysql datadir=/usr/local/mysql/data # 創建mysql組 $ groupadd mysql # 創建mysql用戶 $ useradd -g mysql mysql # 創建mysql數據目錄 $ mkdir $MYSQL_HOME/data # 初始化mysql $ /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ # 初始化報錯 bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory # 解決方法 yum install -y libaio # 初始化報錯 2018-07-08T02:53:24.542370Z 0 [System] [MY-010116] /usr/local/mysql/bin/mysqld (mysqld 8.0.4-rc) starting as process 17745 ... mysqld: Can't create/write to file '/tmp/mysql/data/ibd35qXQ' (Errcode: 13 - Permission denied) 2018-07-08T02:53:24.554816Z 1 [ERROR] [MY-011066] InnoDB: Unable to create temporary file; errno: 13 2018-07-08T02:53:24.554856Z 1 [ERROR] [MY-011066] InnoDB: InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again. 2018-07-08T02:53:24.555000Z 0 [ERROR] [MY-010020] Data Dictionary initialization failed. 2018-07-08T02:53:24.555033Z 0 [ERROR] [MY-010119] Aborting 2018-07-08T02:53:24.555919Z 0 [System] [MY-010910] /usr/local/mysql/bin/mysqld: Shutdown complete. # 解決辦法:修改/tmp/mysql的目錄權限 $ chown -R mysql:mysql /tmp/mysql # 初始化成功 > 如果無異常情況日志如下可以看到mysql默認會生成root賬號和密碼root@localhost: /TI(mjVAs1Ta [root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2019-01-29T10:19:34.023997Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 4240 2019-01-29T10:19:39.764895Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /TI(mjVAs1Ta 2019-01-29T10:19:43.041419Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed # 拷貝mysql啟動文件到系統初始化目錄 $ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 啟動mysql服務器 $ service mysqld start
當前文章:linux安裝mysql8.0.x的完整步驟-創新互聯
瀏覽地址:http://www.yijiale78.com/article42/dodjec.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、云服務器、搜索引擎優化、靜態網站、用戶體驗、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯