windows下安裝一般分為文件/msi安裝文件
本章我們說的是文件行的mysql server 安裝
下載地址:https://dev.mysql.com/downloads/mysql/
下載完后,我們將 zip 包解壓到相應的目錄,這里我將解壓后的文件夾放在 C:\web\mysql-8.0.11 下。
接下來我們需要配置下 MySQL 的配置文件
打開剛剛解壓的文件夾 C:\web\mysql-8.0.11 ,在該文件夾下創建 my.ini 配置文件,編輯 my.ini 配置以下基本信息:
[mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] # 設置3306端口 port=3306 # 設置mysql的安裝目錄 basedir=C:\\Program Files\\mysql-8.0.11 # 設置 mysql數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯 # datadir=C:\\Program Files\mysql-8.0.11\\sqldata # 允許最大連接數 max_connections=20 # 服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB
接下來我們來啟動下 MySQL 數據庫:
以管理員身份打開 cmd 命令行工具,切換目錄:
cd C:\web\mysql-8.0.11\bin
初始化數據庫
mysqld --initialize --console
此時可能會出現The program can’t start because MSVCP140.dll is missing from your computer (缺少軟件導致的)
解決方案https://www.microsoft.com/zh-cn/download/details.aspx?id=48145 下載對應版本安裝即可
執行完成后,會輸出 root 用戶的初始默認密碼,如:
... 2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ ...
APWCY5ws&hjQ 就是初始密碼,后續登錄需要用到,你也可以在登陸后修改密碼。
輸入以下安裝命令:
mysqld install
啟動輸入以下命令即可:
net start mysql
注意: 在 5.7 需要初始化 data 目錄:
cd C:\web\mysql-8.0.11\bin mysqld --initialize-insecure
初始化后再運行 net start mysql 即可啟動 mysql。
登錄 MySQL
當 MySQL 服務已經運行時, 我們可以通過 MySQL 自帶的客戶端工具登錄到 MySQL 數據庫中, 首先打開命令提示符, 輸入以下格式的命名:
mysql -h 主機名 -u 用戶名 -p
參數說明:
- -h : 指定客戶端所要登錄的 MySQL 主機名, 登錄本機(localhost 或 127.0.0.1)該參數可以省略;
- -u : 登錄的用戶名;
- -p : 告訴服務器將會使用一個密碼來登錄, 如果所要登錄的用戶名密碼為空, 可以忽略此選項。
如果我們要登錄本機的 MySQL 數據庫,只需要輸入以下命令即可:
mysql -u root -p
按回車確認, 如果安裝正確且 MySQL 正在運行, 會得到以下響應:
Enter password:
若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄。登錄成功后你將會看到 Welcome to the MySQL monitor... 的提示語。
然后命令提示符會一直以 mysq> 加一個閃爍的光標等待命令的輸入, 輸入 exit 或 quit 退出登錄
數據庫創建完畢
首次登錄后會出如下問題:
show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
需要修改密碼:
alter user 'root'@'localhost' identified by '123456789!';
mysql8 授權遠程登陸
常規授權方式對mysql8不起作用原因是:新版本將創建賬戶和賦權分開操作了
創建賬戶:create user '用戶名'@'訪問主機' identified by '密碼';
create user 'test'@'%' identified by '123456789';
賦予權限:grant 權限列表 on 數據庫 to '用戶名'@'訪問主機' ;(修改權限時在后面加with grant option)
grant all privileges on *.* to 'test'@'%' with grant option;
FLUSH PRIVILEGES;
以上遠程授權成功
navicate連接MySQL出現報錯client does not support authentication protocol requested by server consider ...
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'test'; FLUSH PRIVILEGES;
其中password需要改成你自己的密碼,大概原因是MySQL8.0的加密方式改變了,但是比較老版本的navicate沒有來得及支持,因此需要將mysql設置為支持傳統的那種密碼加密,如果用比較低版本的MySQL,比如MySQL57應該就不會出現這種問題
參考資料:
mysql安裝:http://www.runoob.com/mysql/mysql-install.html
mysql授權登陸:https://blog.csdn.net/li_0891/article/details/80915780
mysql客戶端鏈接:https://blog.csdn.net/m_amazing/article/details/84313789