[转载] windows安装mysql及使用navicat连接 一 mysql的安装 二 navicat连接mysql
参考资料:
1. https://blog.****.net/u013235478/article/details/50623693
2. https://blog.****.net/qq_35436635/article/details/80126029
最近准备练习sql,安装mysql后使用navicat连接遇到点问题,直接参考了上面两篇文章,搞定,把内容复制如下:
第一步: 解压缩
将压缩包解压到C:Program FilesMySQL路径下,也可以自定义路径。我的路径为C:Program FilesMySQLmysql-5.7.10-winx64,如下图:
第二步: 配置环境变量
右键点击“计算机”,选择“属性”,依次打开“高级系统设置”->“环境变量”,在系统变量中选择“Path”项,并点击编辑,如下图:
保持原有值不变,并在末尾加上英文分号后追加C:Program FilesMySQLmysql-5.7.10-winx64in,将MySQL安装路径下的bin目录配置到Path变量中,使在命令行的任何目录下可以执行MySQL命令。
第三步: 修改配置
打开MySQL安装目录下面的my-default.ini文件,找到basedir和datadir属性项,去掉前面的注释符号#,修改值如下:
basedir = C:Program FilesMySQLmysql-5.7.10-winx64
datadir = C:Program FilesMySQLmysql-5.7.10-winx64data
分别表示MySQL的安装目录和数据目录。如果在第一步中解压缩到其它的文件夹则修改对应的值。
再将该文件重命名为my.ini。
(MySQL5.7.18后面版本的压缩包中没有my-default.ini文件,自己新建一个名为my.ini的文本文件即可。一定要注意格式 为ASNI,不要保存为utf-8, 否则会导致解析出错
详见MySQL官网:
https://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
https://dev.mysql.com/doc/refman/5.7/en/windows-create-option-file.html)
第四步: 安装
以管理员身份运行cmd,进入到MySQL的bin目录,执行初始化命令:
mysqld --initialize --user=mysql --console
该命令用来初始化数据,在5.7以前的版本是不需要执行该命令的。初始化完成后会提供一个临时的root密码,如下图红色方框,记下该密码。
再执行如下命令进行MySQL服务安装:
mysqld –install mysql
mysql为默认的服务名,可不写,若安装成功则有如下提示:
需要注意的是一定要以管理员身份运行cmd,否则会出现如下图所示提示:
第五步: 启动服务
在管理员cmd窗口中执行如下命令来启动MySQL服务:
net start mysql
当出现如下图所示提示时表示MySQL安装并启动成功。
MySQL5.7以前的版本在安装时不需要执行第四步中的mysqld –initialize命令,如果漏掉该命令后在此步骤会出现如下错误:
因为该版本的压缩包里面有些文件和文件夹(如data文件夹)需要在执行mysqld -initialize命令后才创建。我在用5.6版本的安装步骤来进行安装时就在这里吃过很多亏,希望以此为戒,不再踩坑。
第六步: 登录
执行如下命令:
mysql -uroot -p
提示输入密码,输入第四步中记录下的密码,按回车后出现如下页面表示登录成功,并进入了MySQL命令行模式。
第七步: 修改密码
在MySQL命令行执行如下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
大家改成自己的密码,如下图所示表示修改成功:
如果没有修改密码就执行其它的SQL命令,则会提示如下错误:
经过以上步骤后MySQL服务器安装完成。
二 navicat连接mysql
在用navicat连接MySQL8+时会出现2059错误,这是由于新版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式。
解决方法就是将验证方式改为以前版本(5.7及以下)使用的验证方式mysql_native_password。具体的验证方式可以查看默认数据库'mysql'中user表plugin字段。
在命令行中登录数据库时不会出现2059错误,在命令行中登录数据库,执行下面的命令。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
'root'可以改为你自己定义的用户名,'localhost'指的是该用户开放的IP,可以是'localhost'(仅本机访问,相当于127.0.0.1),可以是具体的'*.*.*.*'(具体某一IP),也可以时'%'(所有IP均可访问)。'password'是你想使用的验证密码。