文章目录
- 一、下载
- 二、 配置环境变量
- 三、修改配置
- 四、运行
- 五、常遇到的问题
- 1、忘记密码后该怎么修改密码?
- 2、Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误
一、下载
MySQL针对不同的用户提供了2中不同的版本:
- MySQL Community Server:
社区版
。由MySQL开源社区开发者和爱好者提供技术支持,对开发者开放源代码并提供免费下载。 - MySQL Enterprise Server:
企业版
。包括最全面的高级功能和管理工具,不过对用户收费。
MySQL数据库官网下载:http://dev.mysql.com/downloads/mysql,上面提供了两种安装文件,一种是直接安装的MSI安装文件
,另一种是需要解压并配置的压缩包文件
。
我们选择社区版下载安装(建议使用MSI方式安装,界面化点击),此处我们以Windows 64位压缩包配置方式为例。
下载解压完,可以自定义路径,我将压缩包放到了d盘:
二、 配置环境变量
右键点击“计算机”,选择“属性”,依次打开“高级系统设置”->“环境变量”,新增环境变量:
MYSQL_HOME
D:\Program Files\mysql-8.0.29-winx64
然后在系统变量中选择“Path”项,并点击编辑,将MYSQL_HOME添加进去:
%MYSQL_HOME%bin
三、修改配置
文件夹下新建文件my.ini,添加如下内容-》注意替换安装目录为自己的
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\\Program Files\\MySQL\\mysql-8.0.29-winx64\\
# 设置mysql数据库的数据的存放目录
datadir = D:\\Program Files\\MySQL\\mysql-8.0.29-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
四、运行
1、以管理员身份运行cmd,(如果修改过目录,先跳转到自定义目录)
2、输入如下命令并回车,目的是在 mysql 根目录下生成 data 文件夹,用来存放数据库。
mysqld --initialize-insecure
在5.7以前的版本是不需要执行该命令的
3、执行mysqld --install命令,安装mysqld服务:
mysqld --install
4、执行net start mysql命令,启动mysql服务:
net start mysql(数据库实例名)
提示:数据库实例名可win+r输入services.msc打开服务,从服务列表查看
5、我们初始化数据库使用的是mysqld --initialize-insecure命令,表示不生成随机密码,设置数据库空密码,所以我们可以直接使用
mysql -uroot -p
命令进行登录,用户名默认为 root。
登录完成后,输入如下命令进行设置密码。
set password for root@localhost = '新密码';
然后就可以使用navicat连接了。
小结:
mysqld –initialize-insecure自动生成无密码的root用户;
mysqld –initialize自动生成带随机密码的root用户;
net stop mysql命令,停止mysql服务
五、常遇到的问题
1、忘记密码后该怎么修改密码?
忘记密码或者执行了mysqld --initialize命令生成随机码找不到,输不进去,或者设置完密码忘记了怎么办?
1)首先确保 mysql 服务是关闭状态,接着输入如下命令来免密启动服务。
mysqld --console --skip-grant-tables --shared-memory
2) 然后再打开一个 cmd 窗口(注意是另外打开一个,当前打开的不要关闭),输入如下命令回车。
mysql -uroot -p
3) 使用如下命令刷新权限。
flush privileges;
4)然后直接使用如下命令设置密码即可(注意结尾分号)。
set password for root@localhost = '新密码';
2、Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误
安装了mysql-8.0.29,打开Navicat准备链接数据库的时候出现了如下提示:
问题的原因是使用了新的加密方式导致:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,解决办法两种:
- 方法1.升级navicat驱动;
- 方法2.把mysql用户登录密码还原成mysql_native_password.
以方法2为例:cmd命令行,进入MySQL的bin目录,然后输入
mysql -u root -p
输入密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码,password为自定义密码 eg:123456
FLUSH PRIVILEGES; #刷新权限
然后重新回到navicat输入刚刚的密码,连接成功。