1、下載mysql
https://dev.mysql.com/downloads/
2、配置環境變量
變量名:MYSQL_HOME
變量值:E:\MySql\mysql-8.0.15-winx64\mysql-8.0.15-winx64
path里添加:%MYSQL_HOME%\bin;
注:如果需要修改一些配置的話,在當前目錄下自行新建配置文件:my.ini
例如,這里我將端口修改為:3309,默認端口為3306
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[mysql]
# 設置mysql客戶端默認字符集
default
-
character
-
set
=utf8
[mysqld]
#設置3306端口
port = 3309
# 設置mysql的安裝目錄
basedir=E:\MySql\mysql-8.0.15-winx64\mysql-8.0.15-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=E:\MySql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character
-
set
-server=utf8
# 創建新表時將使用的默認存儲引擎
default
-storage-engine=INNODB
|
端口號更改之后,需要重啟服務才會生效.
(注意:如果要使用自行創建的配置文件生效,后面步驟安裝時必須指向該配置文件(后面有注明),mysqld --install MySQL --defaults-file="D:\mysql-8.0.21-winx64\bin\my.ini“)
3、生成data文件
以管理員身份運行cmd
進入E:\MySql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\bin 下
執行命令:mysqld --initialize-insecure --user=mysql 在E:\MySql\mysql-8.0.15-winx64\mysql-8.0.15-winx64目錄下生成data目錄
4、啟動服務
執行命令:net start mysql 啟動mysql服務,若提示:服務名無效,執行命令:mysqld -install 即可
(注意:如果要使用自行創建的配置文件生效,安裝時必須指向該配置文件,mysqld --install MySQL --defaults-file="D:\mysql-8.0.21-winx64\bin\my.ini“)
在服務列表中可看到該服務:
停止服務:net stop mysql
卸載服務:mysqld --remove mysql
下面開始使用MySql:
1、鏈接mysql:(以root賬號登錄)
mysql -u root -p
初始沒有密碼,直接enter
注意:當配置文件中將Mysql端口號更改了,則登錄時需指定端口,P為大寫:(這里我設置的端口為3309,,主機ip為192.168.168.152)
mysql -P 3309 -h 192.168.168.152 -u root -p
2、登錄之后,修改密碼,並配置遠程訪問
登陸成功之后修改密碼(密碼修改為admin):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin';
或者
update mysql.user set authentication_string=password('admin') where user='root' and Host = 'localhost';
默認不允許遠程訪問MySQL,如果需要遠程訪問,下面是開啟遠程訪問的命令:
use mysql; update user set host = '%' where user = 'root'; FLUSH PRIVILEGES;
3、基礎操作
①創建數據庫:
create database Temp DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
刪除數據庫:drop database Temp;
②創建用戶:
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
user_name:要創建用戶的名字。
host:表示要這個新創建的用戶允許從哪台機登陸,如果只允許從本機登陸,則 填 ‘localhost’ ,如果允許從遠程登陸,則填 ‘%’
password:新創建用戶的登陸數據庫密碼,如果沒密碼可以不寫。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改密碼永不過期
可執行,select * from user;查看用戶列表(查看用戶擁有的權限,可以看到用戶很多權限都是N,因為未授權)
4、授權用戶:
GRANT ALL PRIVILEGES ON Temp.* TO 'test'@'%';
GRANT privileges ON databasename.tablename TO ‘username’@‘host’
privileges:表示要授予什么權力,例如可以有 select , insert ,delete,update等,如果要授予全部權力,則填 ALL
databasename.tablename:表示用戶的權限能用在哪個庫的哪個表中,如果想要用戶的權限很作用於所有的數據庫所有的表,則填 *.*,*是一個通配符,表示全部。
’username‘@‘host’:表示授權給哪個用戶。
5、刷新權限表
flush privileges;
執行這個命令的原因是,需要將新加入的用戶寫入到權限表中,即更新grant table
6、用Navicat for MySQL鏈接數據庫:
如果鏈接失敗的話,報錯:Client does not support authentication protocol requested by server;
(原因:mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password;那么把mysql用戶登錄密碼加密規則還原成mysql_native_password即可)
執行命令:
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';#更新密碼加密規則
FLUSH PRIVILEGES; #刷新權限
7、mysql 退出,有三種方式可退出:
mysql > exit;
mysql > quit;
mysql > \q;
8、如果忘記了mysql root賬號密碼,可以進行重置密碼(轉載原文章地址:https://www.cnblogs.com/baimj/p/11738708.html)
①停止mysql服務:
net stop mysql
②開啟跳過密碼驗證登錄的MySQL服務
mysqld --console --skip-grant-tables --shared-memory
③再打開一個新的cmd,無密碼登錄MySQL
mysql -u root -p
④ 密碼置為空
use mysql
update user set authentication_string='' where user='root';
⑤退出mysql
quit
⑥關閉以-console --skip-grant-tables --shared-memory 啟動的MySQL服務,
⑦ 啟動MySQL服務。
net start mysql
⑧步驟4密碼已經置空,所以無密碼狀態登錄MySQL,輸入登錄命令:mysql -u root -p
⑨修改密碼:
ALTER USER
'root'
@
'localhost'
IDENTIFIED BY
'123456'
;
⑩刷新重新進入
quit;
net stop mysql
net start mysql
mysql -u root -p
輸入密碼,登錄成功。