1.視圖:view 視圖就是一張虛擬的表。表是真正存數據的,視圖只是顯示查詢結果。 視圖的作用:隱藏表的結構、簡化sql嵌套查詢操作 註意:視圖就是你要查詢數據的一個中間結果集,我們一般只用來做數據查詢的 創建視圖:create view view_name as 查詢語句 例如: mysql> c ...
docker 安裝mysql5.7
前言
MySQL 是目前最流行的關係型資料庫管理系統,開發者是瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。具有體積小、速度快、成本低等特點。
- MySQL是開源的,目前屬於Oracle公司
- MySQL支持大型的資料庫。
- MySQL使用標準的SQL數據語言形式。
- MySQL可以運行於不同的操作系統上。
- MySQL支持多種語言,例如Java、Python、PHP等等
下載地址
安裝
安裝docker不在本文講解,本文只講解使用docker安裝Mysql5.7
- 拉取鏡像
docker pull mysql:5.7
- 創建目錄
mkdir -p /home/dockerdata/mysql/conf
mkdir -p /home/dockerdata/mysql/logs
mkdir -p /home/dockerdata/mysql/mysql
- 創建配置文件
cd /home/dockerdata/mysql/conf/
vi my.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
lower_case_table_names=1
#取消 group 嚴格模式
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
character-set-server=utf8mb4
#保存後退出
配置文件介紹:
目前上方的配置文件是比較精簡的配置文件,如果需要,可以自行添加相關配置
- default-character-set : 設置Mysql客戶端預設的字元集
- lower_case_table_names : 是否區分大小寫,有三個值1、2、0
- 1-存儲在磁碟是小寫,比較時不區分大小寫
- 2-存儲為給定的大小寫但是比較時是小寫
- 0-存儲為給定的大小寫和比較時區分大小寫
- sql-mode :
- ONLY_FULL_GROUP_BY : GROUP BY 聚合操作,如果在select列裡面,沒有在GROUP BY中出現,則這個sql不合法
- NO_AUTO_VALUE_ON_ZERO : 該值會影響自增列的插入,意思是自增長列可以為0,預設情況下自增長列是從1開始,如果你插入id為0的數據會報錯,設置該參數後,可以正常插入id為0的數據
- STRICT_TRANS_TABLES : 如果一個值不能插入到一個事務中,則中斷操作,對非事務不限制
- NO_ZERO_IN_DATE : 不允許日期和月份為0,例如2022-01-00是不允許的,但是0000-01-01是允許的
- NO_ZERO_DATE : 不允許插入零日期,不支持插入包含0的日期
- ERROR_FOR_DIVISION_BY_ZERO : 在insert或者update中,如果數據被清除,則產生錯誤而非警告,如果未給出該模式,那麼數據被清除時Mysql會返回NULL
- NO_AUTO_CREATE_USER : 禁止GRANT創建密碼為空的用戶
- NO_ENGINE_SUBSTITUTION : 如果需要的存儲引擎被禁用或者未編譯,那麼拋出錯誤,不設置此值,用預設的存儲引擎替代,並拋出一個異常
- PIPES_AS_CONCAT : 將"||"視為字元串的連接操作符而非或運算符,和Oracle資料庫是一樣的。
- ANSI_QUOTES : 不能使用雙引號來引用字元串,因為會被解釋為識別符。
- 運行
docker run --restart always -p 3306:3306 --name mysql -v /home/dockerdata/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/dockerdata/mysql/logs:/logs -v /home/dockerdata/mysql/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
參數介紹:
- —restart always : 在容器退出後總是重啟容器
- -p 3306:3306 : 將容器的3306埠映射到主機的3306埠
- —name mysql : 設置實例名稱是mysql
- -v …/… : 將宿主機目錄掛載到容器內部,前面的是宿主機目錄,後面的是容器目錄,上方命令掛載了my.cnf、日誌目錄、mysql數據目錄
- -e MYSQL_ROOT_PASSWORD=root : 設置初始化root用戶密碼
- -d : 以後臺方式運行實例
- mysql:5.7 : 指定使用mysql:5.7這個鏡像來創建和運行實例
- 設置mysql root用戶可以遠程登錄,需要bash連接到docker裡面
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
原文鏈接: https://monkey.blog.xpyvip.top/archives/docker安裝mysql57