默认你已安装了MySQL 5.0,如果是安装版的,直接安装就可以,这里不赘述。下面只介绍MySQL8.0.20非安装版的服务安装。
1. 官网下载并解压
我下载了mysql-8.0.20-winx64
下载地址: https://dev.mysql.com/downloads/file/?id=494993
2. 添加环境变量
3. 编写配置文件
如解压位置为 E:mysql-8.0.20-winx64
就在此处手动创建my.ini文件,文件内容如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3312端口
port = 3312
# 设置mysql的安装目录
basedir=E:mysql-8.0.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:mysql-8.0.20-winx64data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
注意修改安装目录与数据存放目录
4. 数据库初始化
用管理员身份运行命令行(不建议使用PowerShell,经测试有的指令运行有问题),进入安装MySQL下的bin目录输入如下命令【两种方式任选一】:
方式一:自动生成root用户,不带密码:
mysqld --initialize-insecure --console
方式二:带随机密码:
mysqld --initialize --console
随机密码被保存在错误日志里,位于(前面配置好的datadir)数据文件夹下,文件名为:主机名.err
注意:如果要重新初始化,必须先清空data文件夹。(包括停止一下服务)
5. 安装并启动服务
在bin目录下打开cmd ,执行安装服务:
mysqld -install
启动服务:
net start mysql
如果你之前已经安装过mysql5.0版本的连接数据库时会报如下错误:
“ERROR 2003 (HY000): Can"t connect to MySQL server on "localhost" (10061)”
参考截图↑
解决办法如下:
检查可执行文件的路径是否是你MySql安装的路径,我这里由于之前已安装了MySQL5.7,所以我在安装MySQL8.0.20的时候,其可执行文件的路径变成了MySQL5.7的路径,这时需要修改,怎么修改呢,当然需要从注册表去修改了,具体步骤如下:
-
首先需要重启一下电脑
-
运行 → regedit,根据路径 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMySql-8ImagePath
在重启之后你会发现在【HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices】下多一个 MySQL服务,这个就是你刚添加的MySQL8.0
接下来需要改造一下
①将MySQL重命名为MySQL-8,修改内容如下图所示:
②右键点击DisplayName更改数值数据(V):MySQL-8,如图
③右键点击ImagePath更改数值数据(V):
"E:mysql-8.0.20-winx64inmysqld" --defaults-file="E:mysql-8.0.20-winx64my.ini" MySQL-8
如图:
④ 再次重启一下电脑
⑤至此问题已解决
6. 进入MySQL
无密码进入:
mysql -P 3312 -u root
有密码的进入方式:
mysql -P 3312 -u root -p
有密码的话进去就要求输入,随机密码的话位置上面提到过了。
感动,终于看到了:
mysql>
最后说下如果客户端连接出现caching-sha2-password问题
ERROR 2059 (HY000): Authentication plugin "caching_sha2_password" cannot be loaded: ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£
解决方案如下:
#修改加密规则
ALTER USER "root"@"localhost" IDENTIFIED BY "password" PASSWORD EXPIRE NEVER;
#更新一下用户的密码
ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "password";
#刷新权限
FLUSH PRIVILEGES;