第二次更新Docker中安裝,在這里強(qiáng)烈建議用Docker安裝,會(huì)方便很多。
不過(guò)本文對(duì)Docker中的mysql安裝只適用于開(kāi)發(fā)人員。正式生產(chǎn)環(huán)境中還需考慮數(shù)據(jù)持久化以及定時(shí)備份的問(wèn)題。
docker下安裝
安裝Docker Desktop
https://www.docker.com/products/docker-desktop
一路按照步驟安裝,這個(gè)網(wǎng)上教程很多,在此不再贅述。拉取mysql鏡像
docker pull mysql
這里可以根據(jù)實(shí)際情況選擇mysql版本,如果不額外注明,則默認(rèn)是lastest(最新)
而且docker中支持管理不同版本的鏡像,如你已經(jīng)有了一個(gè)lastest的mysql,再拉一個(gè)5.7的mysql也是可以的。
如下圖:

- 啟動(dòng)docker鏡像
docker run --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
在這里MYSQL_ROOT_PASSWORD設(shè)置的是root賬戶(hù)的密碼,最后-d mysql為選擇鏡像,若要選擇5.7版本的mysql則為-d mysql:5.7.29
-p 3306:3306第一個(gè)3306是宿主機(jī)的端口,第二個(gè)3306是容器內(nèi)部的端口。
下圖就可以看到,我起了2個(gè)不同版本的mysql,最新版啟動(dòng)在3306,5.7版本啟動(dòng)在3307。

windows下安裝
- 下載VC++庫(kù)
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
然后VC++庫(kù)的安裝就不說(shuō)了,直接下完了安裝就行。
這里說(shuō)下安裝vc時(shí)候0x80240017 - 未指定的錯(cuò)誤的解決方案:
我的環(huán)境是Winserver 2012 R2 Standard,主要參考了這篇文章:https://blog.csdn.net/yiyihuazi/article/details/78410667
首先安裝KB2919442
安裝KB2919355
其中KB2919355中有好幾個(gè)包,安裝順序如下:
clearcompressionflag.exe、 KB2919355、 KB2932046、 KB2959977、 KB2937592、 KB2938439 、 KB2934018。
其中clearcompressionflag.exe是靜默運(yùn)行沒(méi)有提示的,體感上感覺(jué)應(yīng)該是瞬間好了。
- Mysql解壓
解壓下載好的Mysql壓縮包,如D:\mysql-8.0.17-winx64(注意路徑中不能有中文和空格)
新建data文件夾和my.ini文件
my.ini內(nèi)容:
[mysqld]
# 設(shè)置3306端口
port=3306
# 設(shè)置mysql的安裝目錄
basedir=D:\\mysql-8.0.17-winx64
# 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄
datadir=D:\\mysql-8.0.17-winx64\\data
# 允許最大連接數(shù)
max_connections=200
# 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng)
max_connect_errors=10
# 服務(wù)端使用的字符集默認(rèn)為UTF8
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
[mysql]
# 設(shè)置mysql客戶(hù)端默認(rèn)字符集
default-character-set=utf8
[client]
# 設(shè)置mysql客戶(hù)端連接服務(wù)端時(shí)默認(rèn)使用的端口
port=3306
default-character-set=utf8
以管理員身份打開(kāi)cmd,進(jìn)入D:\mysql-8.0.17-winx64\bin路徑
- 執(zhí)行初始化命令
mysqld --initialize --user=mysql --console
會(huì)生成一個(gè)初始的密碼,第一次登陸會(huì)用到
- mysql服務(wù)安裝
mysqld install
- mysql服務(wù)啟動(dòng)
net start mysql
- 登陸mysql
mysql -uroot -p
這個(gè)時(shí)候提示需要輸入密碼,用之前初始化生成的默認(rèn)密碼登陸 - 修改初始密碼
ALTER USER root@localhost IDENTIFIED BY '123456';
- 賦予遠(yuǎn)程登陸權(quán)限
use mysql
update user set host = '%' where user ='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;





