docker 安裝mysql5.7
前言
MySQL 是目前最流行的關系型資料庫管理系統,開發者是瑞典MySQL AB公司,目前MySQL被廣泛地應用在Internet上的中小型網站中,具有體積小、速度快、成本低等特點,
- MySQL是開源的,目前屬于Oracle公司
- MySQL支持大型的資料庫,
- MySQL使用標準的SQL資料語言形式,
- MySQL可以運行于不同的作業系統上,
- MySQL支持多種語言,例如Java、Python、PHP等等
下載地址
MySQL 下載
安裝
安裝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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/506090.html
標籤:MySQL
上一篇:MySQL 視圖、函式、存盤程序、觸發器、事件(了解即可)
下一篇:Mysql第8天
