环境:
- Windows 11 专业版
- mysql-8.0.29-winx64.zip
参照:
说明:
window下安装mysql的方式有两种,一种是运行msi安装包,另一种的使用压缩版的mysql包进行安装配置。本篇讲的是后者。
一、准备安装包
官网下载地址:https://dev.mysql.com/downloads/mysql/
或网盘下载地址:
链接:https://pan.baidu.com/s/1uaS-TspbD8ocDMPHx9s8vw
提取码:1s3b
下载后的文件如下:
二、安装配置
将压缩包直接解压到d盘,如下:
在这个目录新建空文件夹data以及my.ini文件,my.ini文件的内容如下:
my.ini 内容
[mysqld]
basedir="D:\\mysql-8.0.29-winx64"
datadir="D:\\mysql-8.0.29-winx64\\data"
log-error = "D:\\mysql-8.0.29-winx64\\data\\error.log"
port = 3306
# 默认字符集
character-set-server = utf8mb4
# 默认排序规则, 排序规则不一致可能导致问题: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='
collation_server = utf8mb4_general_ci
lower_case_table_names=1
sql_mode=TRADITIONAL
# 补充
local_infile=OFF # 表示不允许使用load data local infile从客户端导入数据, 允许则设为1
初始化mysql的数据目录,也就是我们配置的datadir进行初始化,执行命令(注意管理员运行cmd):
D:\mysql-8.0.29-winx64\bin>mysqld --defaults-file="D:\\mysql-8.0.29-winx64\\my.ini" --initialize
顺便说下,如果想重新初始化, 把data目录清空后再重新执行初始化命令即可。
从上一步的生成日志中查看生成的默认root密码:
安装mysql服务:mysqld --install mysql8 --defaults-file="D:\\mysql-8.0.29-winx64\\my.ini"
安装好mysql服务后,可以查看一下:
启动服务:mysql8,可以从命令行启动,也可以从上图的面板中点“启动”:
命令行连接mysql(注意:使用前面error.log里生成的密码):
D:\mysql-8.0.29-winx64\bin>mysql -u root -p
连上mysql后修改默认生成的密码(不修改的话不能进行其他操作):
mysql>alter user 'root'@'localhost' IDENTIFIED BY '123456';
从上面看到,不修改密码的话,use mysql;
语句都不能执行,后面将密码改成123456就可以了。
使用exit
命令退出即可。
三、配置mysql允许远程访问
安装好后,mysql是不允许远程访问的,我们需要手动配置:
创建远程登录对象:CREATE USER 'root'@'%' IDENTIFIED BY '123456';
授权远程登录:grant all privileges on *.* to 'root'@'%' with grant option;
强制刷新:flush privileges;
四、mysql的管理命令
使用到的命令如下:
mysqld --defaults-file="D:\\mysql-8.0.29-winx64\\my.ini" --initialize
:初始化mysql的数据目录mysqld --install mysql8 --defaults-file="D:\\mysql-8.0.29-winx64\\my.ini"
:将mysql安装到服务,服务名是mysql8net start mysql8
:启动mysql8服务net stop mysql8
:停止mysql8服务mysqld --remove mysql8
:卸载mysql服务
五、mysql8的用户密码问题
说明: 由于mysql8的密码采用了“caching_sha2_password”模式,而老版的是“mysql_native_password”模式,所以造成很多客户端连接不上(比如:老版navicat就报这个错误)。
解决方案:
- 升级客户端
- 修改mysql8的密码模式
如何修改mysql8的密码模式:
在mysql.ini文件中添加:default_authentication_plugin=mysql_native_password 然后重启mysql,之后新建的用户都是“mysql_native_password”模式的
对于安装时已经存在的用户(比如:root)或想给单个用户设定密码模式的可以采用如下命令:mysql> alter user 'root'@'%' identified with mysql_native_password by '123456'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)