下載
MySQL下載地址
選擇下載64位(看自己電腦是32位還是64位)
點(diǎn)擊下載之后,它會讓你登錄岖赋,沒有Oracle賬戶檬果,跟著它的步驟注冊一個(gè)就好了。
安裝
打開下載好的壓縮包解壓到你的某一目錄下唐断,這里我放到了D:\MySQL下
如上圖所示选脊,在你解壓的文件夾下是沒有my.ini這個(gè)配置文件的,需要自己創(chuàng)建并用記事本打開脸甘,把下面這些代碼粘貼復(fù)制進(jìn)去
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[mysqld]
#設(shè)置3306端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=D:\MySQL\mysql-5.7.16-winx64
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
#datadir=D:\MySQL\mysql-5.7.16-winx64\data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
我在安裝的時(shí)候恳啥,找了一個(gè)教程,教程中上面的#datadir=D:\MySQL\mysql-5.7.16-winx64\data這句代碼是沒有注釋掉的丹诀,于是我就在之后的安裝中遇到了麻煩钝的。
填坑
首先配置默認(rèn)文件
當(dāng)我沒有注釋掉那句代碼時(shí),也就是這樣子配置的
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[mysqld]
#設(shè)置3306端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=D:\MySQL\mysql-5.7.16-winx64
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=D:\MySQL\mysql-5.7.16-winx64\data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
接下來開始安裝
安裝并啟動(dòng)
直接搜cmd铆遭,右鍵->以管理員身份運(yùn)行
進(jìn)入bin文件目錄下
接下來輸入安裝硝桩、啟動(dòng)命令
mysql install
net start mysql
出現(xiàn)如下圖問題
無法啟動(dòng)卻無報(bào)錯(cuò),在計(jì)算機(jī)管理服務(wù)里也無法手動(dòng)啟動(dòng)枚荣。有大神說可以執(zhí)行
mysqld --console
命令查看錯(cuò)誤信息碗脊,如下圖,意思是說沒有data文件橄妆,而在my.ini配置文件中代碼里設(shè)置了(datadir=D:\MySQL\mysql-5.7.16-winx64\data)
所以我就自己跑去新建了個(gè)data文件夾,再啟動(dòng)然而依舊錯(cuò)誤漫天飛衙伶,Excuse me?
最后終于找到靠譜的答案祈坠,data文件是不需要自己配置的,先刪除自己自作聰明的data文件矢劲,然后注釋掉my.ini中的datadir代碼赦拘,配置環(huán)境變量然后執(zhí)行
mysqld --initialize
即可自動(dòng)生成data文件,這個(gè)時(shí)候再執(zhí)行
net start mysql
命令芬沉,可以看到MySQL啟動(dòng)成功
登錄MySQL
輸入命令 mysql -uroot -p 回車躺同,輸入密碼,按理說初次登錄是沒有密碼的花嘶,直接回車即可登錄笋籽,然而事實(shí)上,在執(zhí)行 mysqld --initialize命令時(shí)它不僅自動(dòng)創(chuàng)建了data數(shù)據(jù)椭员,還隨機(jī)分配了密碼车海,在你的文件中搜索 .err后綴的文件,以記事本方式打開隘击,你會看到下圖
對侍芝,這就是你的密碼,每個(gè)人不一樣埋同,看你自己的州叠,輸入進(jìn)去登錄就可以了。接下來你想進(jìn)行一些操作凶赁,發(fā)現(xiàn)它會提示你咧栗,需要先重置密碼。那么接下來再看重置密碼的坑虱肄。
重置密碼
在網(wǎng)上查找方法致板,基本上都是如下步驟:
然而我輸入命令結(jié)果是這樣子的
正確的打開方式是首先在my.ini配置文件的[mysqld]下面加上
[mysqld]
explicit_defaults_for_timestamp = true
然后輸入如下命令,回車后會一直停止咏窿,然后打開另一個(gè)cmd命令窗口
mysqld --default-file="D:\MySQL\mysql-5.7.16-winx64\my.ini" --skip-grant-tables
mysql -u root
輸入更改密碼的語句
use mysql
UPDATE mysql.user SET password=PASSWORD("lyymysql") WHERE User='root';
然而結(jié)果如圖
所以查看數(shù)據(jù)庫斟或,發(fā)現(xiàn)5.7版本里的user表里已經(jīng)沒有了password這個(gè)字段
正確姿勢:
update mysql.user set authentication_string=PASSWORD('lyymysql') WHERE User='root';
flush privileges
exit
吁~這下終于可以啟動(dòng)登錄MySQL 了
密碼過期
安裝好Mysql之后簡單玩兒了一下命令,之后就束之高閣集嵌,現(xiàn)在做的項(xiàng)目需要用到Mysql萝挤,登錄之后執(zhí)行查看數(shù)據(jù)庫的命令,發(fā)現(xiàn)報(bào)了Error根欧,如下:
大意是執(zhí)行此命令前你必須先修改用戶密碼(通過alter user命令)怜珍,也就是說mysql是沒任何問題的,執(zhí)行命令也沒問題凤粗,只是它的機(jī)制強(qiáng)制要求你必須修改密碼酥泛,沒辦法只能改咯
在網(wǎng)上查找原因是因?yàn)镻CI DSS,即PCI數(shù)據(jù)安全標(biāo)準(zhǔn)(Payment Card Industry Data Security Standard)要求用戶每隔90天就要更改密碼,mysql版本5.6.6版本起揭璃,添加了password_expired功能,它允許設(shè)置用戶的過期時(shí)間亭罪。這個(gè)特性已經(jīng)加入mysql數(shù)據(jù)庫表瘦馍,可以修改表數(shù)據(jù)自行設(shè)置,這里我重點(diǎn)說明如何解決密碼過期問題应役。
SET PASSWORD = PASSWORD('XXX');
//重置密碼
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
//設(shè)置讓其不過期
flush privileges;
//刷新權(quán)限
exit
//退出重新登錄
mysql -u root -p
再次使用show databases
查看數(shù)據(jù)庫情组,如下圖:
這一上午踩坑踩得真呀么歡快~
小提示:以上命令中的路徑、密碼都要輸入自己的箩祥,不然是不對的院崇。
如果安裝過程中遇到了其他問題可以留下評論。