Windows Server 2016 MySQL数据库安装配置详细安装教程

一、下载MySQL

官网地址:

https://www.mysql.com/

下载地址:

http://dev.mysql.com/downloads/mysql/

二、MySQL安装

1、许可协议

License Agreement(许可协议)->I accept the license terms(我接受许可条款)->Next(下一个)

2、选择安装类型

Choosing a Setup Type(选择安装类型)->Custom(自定义)->Next(下一个)

3、选择产品和功能

Select Products and Features(选择产品和功能)->MySQL Server(MySQL服务器)和MySQL Workbench(MySQL工作台)->Next(下一个)

4、安装

Installation(安装)->Execute(执行)

Installation(安装)->Next(下一个)

5、产品配置

Product Configuration(产品配置)->Next(下一个)

5.1、类型和网络

Type and Networking(类型和网络)->Config Type(配置类型):Server Machine(服务器类型)->Next(下一个)

Server Configuration Type(服务配置类型)

Config Type(配置类型):Server Machine(服务器类型)

Connectivity(连接)

Port Number(端口号)

Open Firewall port for network access(打开防火墙端口网络访问)

Named Pipe(命名管道):Pipe Name(管道名字)

Shared Memory(共享内存):Memory Name(内存名字)

Advanced Configuration(高级配置)

Show Advanced Options(显示高级选项)

5.2、账号和角色

Accounts and Roles(账号和角色)->MySQL Root Password(MySQL的Root用户密码)/Repeate Password(重复密码)->Next(下一个)

5.3、Windows服务Windows Service(Windows服务)->Windows Service Name(Windows服务名称)->Next(下一个)

5.4、插件和扩展

Plugins and Extensions(插件和扩展)->Next(下一个)

5.5、应用服务器配置

Apply Server Configuration(应用服务器配置)->Execute(执行)

Apply Server Configuration(应用服务器配置)->Finish(完成)

6、产品配置完成

Product Configuration(产品配置)->Next(下一个)

7、安装完成

Installation Complete(安装完成)->Finish(完成)

8、MySQL工作台启动界面

三、配置MySQL

配置MySQL环境变量

按下Win+X+Y键

进入Win系统界面

点击"高级系统设置"—>"高级"—>"环境变量"

 

在环境变量中,设置三个属性,分别为:

MySQL_HOME,Path

(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。

a、设置MySQL_HOME

变量名:MySQL_HOME

变量值:C:\Program Files\MySQL\MySQL Server 5.7(MySQL安装路径)

b、设置Path

变量名:Path

变量值:%MySQL_HOME%\bin

 

环境变量配置完成之后测试是否成功

按下Win+X+C键

打开命令提示符

输入:mysql --version

看到如下图,说明已经配置成功了。

 

四、优化MySQL

1、编辑配置文件my.ini

文件位置:C:\ProgramData\MySQL\MySQL Server 5.7

配置文件内容

# *** MySQL应用端设置 ***

[client]

#MySQL端口

port=3306

#MySQL字符集

default-character-set=utf8

# *** MySQL服务端设置 ***

[mysqld]

#表示是本机的序号为1,一般来讲就是master的意思

server-id = 1

#MySQL端口号

port = 3306

#MySQL用户

user = mysql

#全局地址

bind_address= 0.0.0.0

#MySQL安装目录

basedir="C:/Program Files/MySQL/MySQL Server 5.7/"

#MySQL数据目录

datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data/"

#MySQL错误日志路径

log_error="C:/ProgramData/MySQL/MySQL Server 5.7/Data/mysql-error.log"

#MySQL进程ID

pid-file="C:/ProgramData/MySQL/MySQL Server 5.7/Data/mysql.pid"

#MySQL字符集

character-set-server=utf8

#操作系统在监听队列中所能保持的连接数

back_log = 300

#MySQL连接数的上限

max_connections = 3000

#每个客户端连接最大的错误允许数量

max_connect_errors = 50

#所有线程所打开表的数量

table_open_cache = 4096

#跳过外部锁定

external-locking = FALSE

#服务器发送和接受的最大包长度

max_allowed_packet = 32M

#独立的内存表所允许的最大容量

max_heap_table_size = 128M

#排序缓冲分配的内存大小

sort_buffer_size = 16M

#全联合发生时分配的内存大小

join_buffer_size = 16M

#线程缓存分配的大小

thread_cache_size = 16

#运行的线程的数量

#thread_concurrency = 8

#MySQL的查询缓冲大小

query_cache_size = 128M

#MySQL的查询缓冲最小值

query_cache_limit = 4M

#被全文检索索引的最小的字长

ft_min_word_len = 8

#当创建新表时作为默认使用的表类型

default-storage-engine = InnoDB

#线程使用的堆大小

thread_stack = 512K

#设定默认的事务隔离级别.可用的级别如下:

#READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE

transaction_isolation = REPEATABLE-READ

#服务器关闭交互式连接前等待活动的秒数

interactive_timeout = 1000

#服务器关闭非交互连接之前等待活动的秒数

wait_timeout = 1000

#内部(内存中)临时表的最大大小

tmp_table_size = 128M

#MySQL不区分大小写

lower_case_table_names=1

#禁用符号链接

symbolic-links=0

#禁用加密插件

early-plugin-load=""

#开启查询缓存

explicit_defaults_for_timestamp=true

#开启支持模示

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

#显示兼容

show_compatibility_56=on

#开启日志时间戳为系统时间

log_timestamps=system

#跳过安全访问

#skip-grant-tables

#跳过安装路径

secure-file-priv = NULL

#SSL配置

skip-ssl

#禁用DNS解析

#skip-name-resolve

#不要监听网络

#skip-networking

#取消文件系统的外部锁

#skip-locking

# *** 慢查询参数 ***

#慢查询设定的时间

long_query_time = 6

#启动慢查询日志

slow_query_log

#慢查询日志路径

slow_query_log_file=slow.log

#将所有没有使用带索引的查询语句全部写到慢查询日志中

log_queries_not_using_indexes = 1

#开启记录管理型慢SQL

log_slow_admin_statements = 1

#保存查询的日志

log_slow_slave_statements = 1

#每分钟允许记录到slow log的且未使用索引的SQL语句次数

log_throttle_queries_not_using_indexes = 10

#最小检查行数限制

min_examined_row_limit = 100

# *** 中继和状态日志参数 ***

#二进制日志路径

log-bin=mysql-bin

#binlog日志格式

binlog_format = MIXED

#binlog记录SQL状态所持有的缓存大小

binlog_cache_size = 4M

#binlog使用的最大缓存内存大小

max_binlog_cache_size = 512M

#binlog日志大小

max_binlog_size = 32M

#binlog日志保留天数

expire_logs_days = 7

#主服信息记录库=表/文件

#master_info_repository = TABLE

#中继日志信息记录库

#relay_log_info_repository = TABLE

#同步主库日志信息

#sync_binlog = 1

#启用gtid类型,否则就是普通的复制架构

#gtid_mode = on

#强制GTID的一致性

#enforce_gtid_consistency = 1

#slave更新是否记入日志

#log_slave_updates

#中继日志信息名称

#relay_log = relay.log

#自动修复日志

#relay_log_recovery = 1

#默认开启简化的GTID 恢复

#binlog_gtid_simple_recovery = 1

#自动跳过错误信息

slave_skip_errors = ddl_exist_errors

# *** INNODB 相关选项 ***

#INNODB的数据页大小

innodb_page_size = 16K

#缓存innodb表的索引,数据,插入数据时的缓冲

innodb_buffer_pool_size = 256M

#InnoDB缓存池被划分到一个区域

innodb_buffer_pool_instances = 1

#启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中

innodb_buffer_pool_load_at_startup = 1

#停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘

innodb_buffer_pool_dump_at_shutdown = 1

#事务等待获取资源等待的最长时间

innodb_lock_wait_timeout = 5

#使用单独的清除线程收回数据

innodb_purge_threads = 1

#单列索引限制

innodb_large_prefix = 1

#能否将死锁信息保存到日志中

innodb_print_all_deadlocks = 1

#INNODB排序缓冲分配的内存大小

innodb_sort_buffer_size = 128K

#InnoDB 将数据保存在一个或者多个数据文件中成为表空间.

innodb_data_file_path = ibdata1:10M:autoextend

#在InnoDb 核心内的允许线程数量.

innodb_thread_concurrency = 16

#日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.

innodb_flush_log_at_trx_commit = 1

#用来缓冲日志数据的缓冲区的大小.

innodb_log_buffer_size = 16M

#在日志组中每个日志文件的大小.

innodb_log_file_size = 512M

#在日志组中的文件总数.

innodb_log_files_in_group = 3

#在InnoDB 缓冲池中最大允许的脏页面的比例.

innodb_max_dirty_pages_pct = 90

#事物回滚等待的时间

innodb_lock_wait_timeout = 120

#InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF)

#或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)

innodb_file_per_table = on

#转储每个bp instance LRU上最热的page的百分比

innodb_buffer_pool_dump_pct = 40

#多个page cleaner线程提高脏页刷新效率

innodb_page_cleaners = 4

#可以截断undo日志位于撤消表空间

innodb_undo_log_truncate = 1

#控制最大undo tablespace文件的大小

innodb_max_undo_log_size = 2G

#用于控制purge回滚段的频度

innodb_purge_rseg_truncate_frequency = 128

#不使用INNODB

#skip-innodb

# *** MyISAM 相关选项 ***

#关键词缓冲的大小

key_buffer_size = 128M

#MyISAM表全表扫描的缓冲大小

read_buffer_size = 8M

#随机读取数据缓冲区使用内存

read_rnd_buffer_size = 16M

#MyISAM 使用特殊的类似树的cache来使得突发插入

bulk_insert_buffer_size = 256M

#到一个空表中引起重建索引时被分配.

myisam_sort_buffer_size = 256M

#MySQL重建索引时所允许的最大临时文件的大小

myisam_max_sort_file_size = 10G

#如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.

myisam_repair_threads = 1

#自动检查和修复没有适当关闭的 MyISAM 表.

#myisam_recover

#默认关闭Federated

skip-federated

[mysqldump]

#不要在将内存中的整个结果写入磁盘之前缓存

quick

#服务器发送和接受的最大包长度

max_allowed_packet = 32M

[mysql]

#自动补全

no-auto-rehash

#MySQL字符集

default-character-set=utf8

[myisamchk]

#关键词缓冲的大小

key_buffer = 16M

#排序缓冲分配的内存大小

sort_buffer_size = 16M

#写入缓存的内存大小

read_buffer = 8M

#读取缓存的内存大小

write_buffer = 8M

[mysqld_safe]

#增加每个进程的可打开文件数量.

open-files-limit = 8192

2、重启MySQL输入:

net stop mysql

net start mysql

  

五、更换MySQL数据目录

1、创建MySQL数据目录

在E盘创建MySQL数据目录

数据目录位置:E:\MySQL\Data

 

2、改写配置文件(将my-default.ini重命名为my.ini)

文件位置:C:\Program Files\MySQL\MySQL Server 5.7

# *** MySQL应用端设置 ***

[client]

#MySQL端口

port=3306

#MySQL字符集

default-character-set=utf8

# *** MySQL服务端设置 ***

[mysqld]

#表示是本机的序号为1,一般来讲就是master的意思

server-id = 1

#MySQL端口号

port = 3306

#MySQL用户

user = mysql

#全局地址

bind_address= 0.0.0.0

#MySQL安装目录

basedir="C:/Program Files/MySQL/MySQL Server 5.7/"

#MySQL数据目录

datadir="E:/MySQL/Data/"

#MySQL错误日志路径

log_error="E:/MySQL/Data/mysql-error.log"

#MySQL进程ID

pid-file="E:/MySQL/Data/mysql.pid"

#MySQL字符集

character-set-server=utf8

#操作系统在监听队列中所能保持的连接数

back_log = 300

#MySQL连接数的上限

max_connections = 3000

#每个客户端连接最大的错误允许数量

max_connect_errors = 50

#所有线程所打开表的数量

table_open_cache = 4096

#跳过外部锁定

external-locking = FALSE

#服务器发送和接受的最大包长度

max_allowed_packet = 32M

#独立的内存表所允许的最大容量

max_heap_table_size = 128M

#排序缓冲分配的内存大小

sort_buffer_size = 16M

#全联合发生时分配的内存大小

join_buffer_size = 16M

#线程缓存分配的大小

thread_cache_size = 16

#运行的线程的数量

#thread_concurrency = 8

#MySQL的查询缓冲大小

query_cache_size = 128M

#MySQL的查询缓冲最小值

query_cache_limit = 4M

#被全文检索索引的最小的字长

ft_min_word_len = 8

#当创建新表时作为默认使用的表类型

default-storage-engine = InnoDB

#线程使用的堆大小

thread_stack = 512K

#设定默认的事务隔离级别.可用的级别如下:

#READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE

transaction_isolation = REPEATABLE-READ

#服务器关闭交互式连接前等待活动的秒数

interactive_timeout = 1000

#服务器关闭非交互连接之前等待活动的秒数

wait_timeout = 1000

#内部(内存中)临时表的最大大小

tmp_table_size = 128M

#MySQL不区分大小写

lower_case_table_names=1

#禁用符号链接

symbolic-links=0

#禁用加密插件

early-plugin-load=""

#开启查询缓存

explicit_defaults_for_timestamp=true

#开启支持模示

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

#显示兼容

show_compatibility_56=on

#开启日志时间戳为系统时间

log_timestamps=system

#跳过安全访问

#skip-grant-tables

#跳过安装路径

secure-file-priv = NULL

#SSL配置

skip-ssl

#禁用DNS解析

#skip-name-resolve

#不要监听网络

#skip-networking

#取消文件系统的外部锁

#skip-locking

# *** 慢查询参数 ***

#慢查询设定的时间

long_query_time = 6

#启动慢查询日志

slow_query_log

#慢查询日志路径

slow_query_log_file=slow.log

#将所有没有使用带索引的查询语句全部写到慢查询日志中

log_queries_not_using_indexes = 1

#开启记录管理型慢SQL

log_slow_admin_statements = 1

#保存查询的日志

log_slow_slave_statements = 1

#每分钟允许记录到slow log的且未使用索引的SQL语句次数

log_throttle_queries_not_using_indexes = 10

#最小检查行数限制

min_examined_row_limit = 100

# *** 中继和状态日志参数 ***

#二进制日志路径

log-bin=mysql-bin

#binlog日志格式

binlog_format = MIXED

#binlog记录SQL状态所持有的缓存大小

binlog_cache_size = 4M

#binlog使用的最大缓存内存大小

max_binlog_cache_size = 512M

#binlog日志大小

max_binlog_size = 32M

#binlog日志保留天数

expire_logs_days = 7

#主服信息记录库=表/文件

#master_info_repository = TABLE

#中继日志信息记录库

#relay_log_info_repository = TABLE

#同步主库日志信息

#sync_binlog = 1

#启用gtid类型,否则就是普通的复制架构

#gtid_mode = on

#强制GTID的一致性

#enforce_gtid_consistency = 1

#slave更新是否记入日志

#log_slave_updates

#中继日志信息名称

#relay_log = relay.log

#自动修复日志

#relay_log_recovery = 1

#默认开启简化的GTID 恢复

#binlog_gtid_simple_recovery = 1

#自动跳过错误信息

slave_skip_errors = ddl_exist_errors

# *** INNODB 相关选项 ***

#INNODB的数据页大小

innodb_page_size = 16K

#缓存innodb表的索引,数据,插入数据时的缓冲

innodb_buffer_pool_size = 256M

#InnoDB缓存池被划分到一个区域

innodb_buffer_pool_instances = 1

#启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中

innodb_buffer_pool_load_at_startup = 1

#停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘

innodb_buffer_pool_dump_at_shutdown = 1

#事务等待获取资源等待的最长时间

innodb_lock_wait_timeout = 5

#使用单独的清除线程收回数据

innodb_purge_threads = 1

#单列索引限制

innodb_large_prefix = 1

#能否将死锁信息保存到日志中

innodb_print_all_deadlocks = 1

#INNODB排序缓冲分配的内存大小

innodb_sort_buffer_size = 128K

#InnoDB 将数据保存在一个或者多个数据文件中成为表空间.

innodb_data_file_path = ibdata1:10M:autoextend

#在InnoDb 核心内的允许线程数量.

innodb_thread_concurrency = 16

#日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.

innodb_flush_log_at_trx_commit = 1

#用来缓冲日志数据的缓冲区的大小.

innodb_log_buffer_size = 16M

#在日志组中每个日志文件的大小.

innodb_log_file_size = 512M

#在日志组中的文件总数.

innodb_log_files_in_group = 3

#在InnoDB 缓冲池中最大允许的脏页面的比例.

innodb_max_dirty_pages_pct = 90

#事物回滚等待的时间

innodb_lock_wait_timeout = 120

#InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF)

#或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)

innodb_file_per_table = on

#转储每个bp instance LRU上最热的page的百分比

innodb_buffer_pool_dump_pct = 40

#多个page cleaner线程提高脏页刷新效率

innodb_page_cleaners = 4

#可以截断undo日志位于撤消表空间

innodb_undo_log_truncate = 1

#控制最大undo tablespace文件的大小

innodb_max_undo_log_size = 2G

#用于控制purge回滚段的频度

innodb_purge_rseg_truncate_frequency = 128

#不使用INNODB

#skip-innodb

# *** MyISAM 相关选项 ***

#关键词缓冲的大小

key_buffer_size = 128M

#MyISAM表全表扫描的缓冲大小

read_buffer_size = 8M

#随机读取数据缓冲区使用内存

read_rnd_buffer_size = 16M

#MyISAM 使用特殊的类似树的cache来使得突发插入

bulk_insert_buffer_size = 256M

#到一个空表中引起重建索引时被分配.

myisam_sort_buffer_size = 256M

#MySQL重建索引时所允许的最大临时文件的大小

myisam_max_sort_file_size = 10G

#如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.

myisam_repair_threads = 1

#自动检查和修复没有适当关闭的 MyISAM 表.

#myisam_recover

#默认关闭Federated

skip-federated

[mysqldump]

#不要在将内存中的整个结果写入磁盘之前缓存

quick

#服务器发送和接受的最大包长度

max_allowed_packet = 32M

[mysql]

#自动补全

no-auto-rehash

#MySQL字符集

default-character-set=utf8

[myisamchk]

#关键词缓冲的大小

key_buffer = 16M

#排序缓冲分配的内存大小

sort_buffer_size = 16M

#写入缓存的内存大小

read_buffer = 8M

#读取缓存的内存大小

write_buffer = 8M

[mysqld_safe]

#增加每个进程的可打开文件数量.

open-files-limit = 8192

3、停止MySQL

输入:net stop mysql

 

4、初始化MySQL数据

输入:

mysqld --initialize --user=mysql --character-set-server=utf8 --collation-server=utf8_general_ci --initialize-insecure

 

六、MySQL用户设置

1、创建danxiaonuo用户

mysql> CREATE USER 'danxiaonuo'@'%' IDENTIFIED BY '123456';

更新缓存

mysql> FLUSH PRIVILEGES;

 

2、全部权限授权danxiaonuo用户

mysql> GRANT ALL PRIVILEGES ON *.* TO 'danxiaonuo'@'%' WITH GRANT OPTION;

更新缓存

mysql> FLUSH PRIVILEGES;

 

3、更改danxiaonuo用户密码

mysql>ALTER USER 'danxiaonuo'@'%' IDENTIFIED BY '654321';

更新缓存

mysql> FLUSH PRIVILEGES;

 

4、删除danxiaonuo用户

mysql> DROP USER 'danxiaonuo'@'%';

更新缓存

mysql> FLUSH PRIVILEGES;

 

5、查看所有用户

mysql>SELECT HOST,USER FROM mysql.USER;

 

七、安装MySQL系统服务和卸载MySQL系统服务

1、安装MySQL系统服务

1>自动安装

输入:

mysqld -install

2>增加参数安装

mysqld -install MySQL --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my.ini"

2、卸载MySQL系统服务

先停止MySQL系统服务

输入:net stop mysql

再卸载MySQL系统服务

输入:mysqld -remove

以上是 Windows Server 2016 MySQL数据库安装配置详细安装教程 的全部内容, 来源链接: utcz.com/a/252701.html

回到顶部