01、去官網下載zip包 https://dev.mysql.com/downloads/mysql/
02、在本地某目錄解壓壓縮包(我這裏是D:\dev\mysql8\mysql1\mysql-8.0.16-winx64)
02、在本地某目錄解壓壓縮包(我這裏是D:\dev\mysql8\mysql1\mysql-8.0.16-winx64)
03、在解壓後的目錄下創建文件夾data(這個文件夾名稱不一定非要叫data)和文件my.ini,文件夾結構如下圖所示:
04、my.ini的內容如下:
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# 設置mysql的安裝目錄
basedir = D:\dev\mysql8\mysql1\mysql-8.0.16-winx64
# 設置mysql數據庫的數據的存放目錄
datadir = D:\dev\mysql8\mysql1\mysql-8.0.16-winx64\data
# 設置3307端口
port = 3307
# 待同步的數據庫
# binlog-do-db=leven
# server_id = .....
# 忘記密碼時使用
# skip-grant-tables
# 設置協議認證方式(重點啊)
# default_authentication_plugin=mysql_native_password
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 服務端使用的字符集默認爲utf8mb4
character-set-server = utf8mb4
# performance_schema_max_table_instances = 600
# table_definition_cache = 400
# table_open_cache = 256
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
[mysql]
# 設置mysql客戶端默認字符集
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
05、在bin目錄下打開命令行;
06、執行 mysqld --initialize --console 完成初始化,此時控制檯會打印出一個隨機的密碼,記錄下來
07、數據庫服務安裝:
mysqld --install 【服務名】
08、啓動服務 net start 【服務名】
09、登錄:
mysql -uroot -p
10、此時如果沒有正常登錄,提示1045錯誤的話,執行如下命令
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
// 關閉服務
net stop 【服務名】
// 無密碼啓動mysql服務
mysqld --console --skip-grant-tables --shared-memory
// 控制檯會有如下信息:
D:\dev\mysql8\mysql1\mysql-8.0.16-winx64\bin>mysqld --console --skip-grant-table
s --shared-memory
2019-05-26T14:41:11.845454Z 0 [System] [MY-010116] [Server] D:\dev\mysql8\mysql1
\mysql-8.0.16-winx64\bin\mysqld.exe (mysqld 8.0.16) starting as process 10220
2019-05-26T14:41:14.140585Z 0 [Warning] [MY-010068] [Server] CA certificate ca.p
em is self signed.
2019-05-26T14:41:14.171587Z 0 [System] [MY-010931] [Server] D:\dev\mysql8\mysql1
\mysql-8.0.16-winx64\bin\mysqld.exe: ready for connections. Version: '8.0.16' s
ocket: '' port: 0 MySQL Community Server - GPL.
2019-05-26T14:41:14.290594Z 0 [Warning] [MY-011311] [Server] Plugin mysqlx repor
ted: 'All I/O interfaces are disabled, X Protocol won't be accessible'
11、打開另一個終端
依次執行如下命令:
// 空密碼登錄
mysql -uroot -p
// 免密碼登陸的情況下設置密碼爲空
UPDATE mysql.user SET authentication_string = '' WHERE user = 'root' and host = 'localhost';
// 刷新權限
flush privileges;
// 修改加密方式並設置密碼爲123456
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
// 刷新權限
flush privileges;
12、此時使用Navicat之類的客戶端就可以直接連接了;