# MySQL8.0数据库部署-Windows

北京致远互联软件股份有限公司

2024年11月修订

# Windows下安装部署

# 系统要求

选用MySQL8.0版本数据库,请更新Windows Server 2012 R2(或者更高版本微软操作系统)的所有补丁,重启服务器以后再部署Microsoft Visual C++ 2015-2019组件 (opens new window)

# 下载安装包

访问MySQL官方下载中心 (opens new window),下载最新版本MySQL Community Server数据库zip文件:

1732091713831.png

本案例下载的是mysql-8.0.26-winx64.zip,安装包放置在E盘,解压后目录结构如图:

QQ截图20210911223109

# 创建my.ini文件

创建一个my.ini文件,将其放置到上一步解压的mysql-8.0.26-winx64目录下。

将如下配置信息按需调整后保存到my.ini文件中:

[client]
# 配置端口,不推荐使用默认端口3306
port=3308

default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
# 配置端口,不推荐使用默认端口3306
port=3308

# *设置安装包路径,根据实际情况调整
basedir="E:/mysql-8.0.26-winx64/"

# *设置数据存放路径,根据实际情况调整
datadir="E:/mysql-8.0.26-winx64/data/"

# tmpdir="E:/mysql-8.0.26-winx64/data/temp/"

# General and Slow logging.

log-output=FILE

general-log=0

general_log_file="seeyon-mysql-8.0-general.log"

slow-query-log=1

slow_query_log_file="seeyon-mysql-8.0-slow.log"

long_query_time=10

# Error Logging.

log-error="seeyon-mysql-8.0.err"

# default_authentication_plugin=caching_sha2_password

default_authentication_plugin=mysql_native_password

default-storage-engine=INNODB

character-set-server=utf8mb4

max_connections=600

max_connect_errors=100

transaction_isolation=READ-COMMITTED

max_allowed_packet=64M

default-time-zone='+8:00'

log_timestamps=system

lower_case_table_names=1

table_open_cache=2000

tmp_table_size=512M

key_buffer_size=512M

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=16M

# *极其重要的数据库内存参数,一般建议将服务器物理内存的 50% 到 80% 分配给 innodb_buffer_pool_size
innodb_buffer_pool_size=4G

innodb_log_file_size=1G

innodb_autoextend_increment=64

innodb_buffer_pool_instances=8

innodb_open_files=300

innodb_file_per_table=1

注意:如果使用记事本编辑保存,请另存为,设置编码ANSI。

QQ截图20210911224002

关于/etc/my.cnf配置,有几个关键信息:

1、数据引擎要求为InnoDB

2、MySQL8字符集要求为utf8mb4,早期MySQL版本可设置为utf8

3、要求不区分表/字段大小写lower_case_table_names=1

4、MySQL8系列,时区默认为美国时区,中国用户若要正常使用,需修改mysql配置文件为default-time-zone='+8:00'

5、MySQL5.7或者以上版本,需要设置数据库日志时间匹配系统时区log_timestamps=system

6、innodb_buffer_pool_size参数是非常关键的性能指标,生产库建议按照服务器内存的50%-80%配置

# 初始化数据库

开始菜单,找到cmd命令提示符,以管理员身份运行,执行命令cd /d E:\mysql-8.0.26-winx64\bin切换路径到安装程序bin下

初始化数据库:执行命令mysqld --initialize --console,记住生成的随机密码

注册Windows服务:执行命令mysqld.exe --install MySQL8.0 --defaults-file="E:\mysql-8.0.26-winx64\my.ini"

成功则提示Service successfully installed.

4)创建E:\mysql-8.0.26-winx64\data\temp目录,修改my.ini文件解除注释(去掉行首的#)

tmpdir="E:/mysql-8.0.26-winx64/data/temp/"

# 启动并登录MySQL8

到Windows服务列表中,找到MySQl8服务,启动即可:

随后,使用mysql命令行登录数据库修改root密码(需要初始化数据库生成的随机密码,以下举例供参考,以实际密码为准)

cd /d E:\mysql-8.0.26-winx64\bin
# 敲回车时,需要输入初始数据库生成的随机密码
mysql -uroot -P3308 -p

# MySQL库中修改密码及账号

设置root新密码设置为newpwd654321

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

flush privileges;

创建seeyon账号设置密码为oapwd654321,为了安全,可以设置仅OA连接库,比如允许协同服务器10.3.4.239远程访问数据库:

create user 'seeyon'@'10.3.4.239' identified by 'oapwd654321';

flush privileges;

grant all privileges on *.* to 'seeyon'@'10.3.4.239';

flush privileges;

如果允许所有服务器通过seeyon账号远程访问数据库,则执行:

create user 'seeyon'@'%' identified by 'oapwd654321';

flush privileges;

grant all privileges on *.* to 'seeyon'@'%';

flush privileges;

# MySQL库中创建新空库

创建V8X数据库命令示例:CREATE DATABASE V8X DEFAULT CHARACTER SET UTF8MB4;

# 防火墙端口管理

操作系统防火墙中添加数据库端口(本例中是3308)允许访问策略。

# 结束

以上完成后,MySQL就完成了安装。

随后,项目可通过数据库可视化工具登录访问,也可以使用标准安装程序安装初始化库。

创建人:zhangshuang
修改人:het