mysql官網下載windows安裝包
下載地址:https://dev.mysql.com/downloads/mysql/


2. 安裝mysql
1. 配置環境變量
變量名:MYSQL_HOME 路徑:D:\mysql\mysql-8.0.25-winx64

2. 生成data文件
以管理員身份運行CMD進入mysql安裝目錄bin目錄下,執行:mysqld --initialize-insecure --user=mysql 在C:\software\mysql-8.0.19-winx64.zip\mysql-8.0.19-winx64下和bin同級目錄生成data目錄(執行報錯請執行第3步安裝Visual C++安裝后需重啟主機生效)
3. 安裝mysql
繼續執行命令:mysqld –install
4. 啟動服務
啟動服務:net start mysql
停止服務:net stop mysql
若輸入net start mysql 提示不是內部命令或外部命令,也不是可運行的程序;則需要:在“系統變量”(用戶變量)里找到path,編輯,將 “%SystemRoot%\system32”添加進去即可解決;
5. 登錄MySQL
登錄mysql: mysql -u root -p
(因為之前沒設置密碼,所以密碼為空,不用輸入密碼,直接回車即可)

6. 密碼管理
查詢用戶密碼命令: select host,user,authentication_string from mysql.user;
設置或修改用戶密碼:
方法1:update mysql.user set authentication_string=("123456") where user="root";
方法2:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
執行完畢后需執行:flush privileges; 保存修改
7. 退出:exit
8. 再次以新密碼登錄
mysql -u root –p 輸入密碼:123456
3. 安裝時提示報錯則需安裝Visual C++

下載地址:https://dev.mysql.com/downloads/file/?id=504762
4. 關於重裝mysql
1. 打開cmd,切換到mysql的bin目錄下,輸入命令:net stop mysql,停止mysql服務;

2. 打開mysql的安裝目錄,找到data文件夾,將其刪除!
3. 回到cmd命令窗口,輸入mysqld -remove

4. 按照安裝步驟安裝即可
5. 創建數據庫
使用 MySQL 命令行工具創建一個測試數據庫,命名為 My_db,指定其默認字符集為 utf8,輸入:
CREATE DATABASE IF NOT EXISTS My_db
DEFAULT CHARACTER SET utf8;
查看數據庫My_db 信息:SHOW CREATE DATABASE My_db;
6. mysql用戶管理
1. 創建新用戶gz12345
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:username - 你將創建的用戶名, host - 指定該用戶在哪個主機上可以登錄,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%. password - 該用戶的登錄密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登錄服務器.
2. 刪除用戶
DROP USER 'username'@'host';
7. mysql授權管理
1. 新增授權
GRANT privileges ON databasename.tablename TO 'username'@'host';
說明:privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
databasename:數據庫名
tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*
舉例:
給用戶gz12345授權數據庫My_db查詢和新增數據權限,可以在所有ip連接數據庫
GRANT SELECT, INSERT ON My_db TO 'gz12345'@'%';
給用戶gz12345授予本機所有數據庫權限
GRANT ALL ON *.* TO 'gz12345'@'%';
給用戶gz12345授予本機My_db數據庫權限
GRANT ALL ON My_db.* TO 'gz12345'@'%';
2. 撤銷授權
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
說明:privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
databasename:數據庫名
tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*
3.刷新權限:
FLUSH PRIVILEGES;
注意:
用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
3. 關於授權的常見錯誤
1.授權時報錯:You are not allowed to create a user with GRANT;
解決方法:root用戶下執行user mysql;
再執行update user set host='%' where user=username;修改后再次授權若還報錯重復執行第二次即可成功。
2. 連接Navicat報錯

解決方法:這是因為mysql8的加密方式和Navicat不一樣,修改加密方式:
alter user username identified with mysql_native_password by 'gz12345';