windows下64位MySQL8的安装

一、下载mysql 64位压缩文件

 

 

 下载后解压缩,解压后的目录如:D:\mysql-8.0.21-winx64

注意:安装前要提前安装最新2019 vc++运行库VC_redist.x64.exe

二、在解压缩根目录中手工建立my.ini,编码格式用utf-8,内容如下:

 

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.21-winx64\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
#指定不需要ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

不需要手动创建Data文件夹

三、初始化

用管理员进入cmd console,进入D:\mysql-8.0.21-winx64\bin目录执行如下命令:

mysqld --initialize --console
或者

mysqld --defaults-file=E:\green\mysql-8.0.21-3306\my.ini --initialize --console

运行后显示如下,

 

 红色部分为初始化时生成的root口令

 

四、将mysql加入到windows服务

mysqld --install [服务名](服务名可以不加默认名称为“mysql”)

或者

mysqld --install mysql --defaults-file=E:\green\mysql-8.0.21-3306\my.ini

五、启动服务

net start mysql

六、修改root口令

执行命令:mysql -u root -p

输入第三步中生成的口令进入mysql命令行,执行如下命令,将root口令修改成root:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

通过以上步骤,即可完成windows下64位MySQL的安装

七、同一台机器下安装两个Mysql实例

端口3306配置步骤同上,假定要配置一个3307端口的mysql,步骤如下:

1、解压mysql的压缩包到另外一个目录E:\green\mysql-8.0.21-3307,配置文件my.ini(linux下为my.cnf,位于/etc/my.cnf)

 1 [mysqld]
 2 # 设置3307端口
 3 port=3307
 4 # 设置mysql的安装目录
 5 basedir=E:\green\mysql-8.0.21-3307
 6 # 设置mysql数据库的数据的存放目录
 7 datadir=E:\green\mysql-8.0.21-3307\Data
 8 # 允许最大连接数
 9 max_connections=200
10 # 允许连接失败的次数。
11 max_connect_errors=10
12 # 服务端使用的字符集默认为utf8mb4
13 character-set-server=utf8mb4
14 # 创建新表时将使用的默认存储引擎
15 default-storage-engine=INNODB
16 # 默认使用“mysql_native_password”插件认证
17 #mysql_native_password
18 default_authentication_plugin=mysql_native_password
19 #指定不需要ONLY_FULL_GROUP_BY
20 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
21 [mysql]
22 # 设置mysql客户端默认字符集
23 default-character-set=utf8mb4
24 
25 [client]
26 # 设置mysql客户端连接服务端时默认使用的端口
27 port=3307
28 default-character-set=utf8mb4

2、进入E:\green\mysql-8.0.21-3307\bin,执行:mysqld --initialize --console,执行完成后记住临时密码

3、安装服务:mysqld --install mysql3307,mysql3307就是服务名称,删除服务命令(sc delete mysql3307)

4、启动服务:net start mysql3307

5、修改密码:步骤同步骤“六”

 

 附:解决“Expression #2 of SELECT list is not in GROUP BY clause........ which is not functionally dependent on columns in GROUP BY clause;this is incompatible with sql_mode=only_full_group_by”错误方案

错误原因:

这个错误一般发生在mysql 5.7以及 5.7以上的版本中,其原因是mysql的默认配置中,sql_mode="ONLY_FULL_GROUP_BY" 这个配置严格执行了 'SQL92标准',所以很高网站维护人员在升级mysql版本时,都会修改 sql_mode 的配置,使其能兼容。

解决办法:

需修改my.ini配置文件,通过手动在 [mysqld] 下面添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 

posted @ 2020-10-02 23:46  疯狗强尼  阅读(381)  评论(0编辑  收藏  举报