Windows安装MySQL
2019/02/10
Windows
MySQL
# 0 环境检查 Windows上运行MySQL需要安装 `Microsoft Visual C++ 2013 Redistributable(x64)` 链接:[https://pan.baidu.com/s/1SHP2zPoLfVn-BCltdW4ZuA](https://pan.baidu.com/s/1SHP2zPoLfVn-BCltdW4ZuA) 提取码:63pm # 1 下载 - MySQL8.0下载地址:[https://dev.mysql.com/downloads/mysql/8.0.html](https://dev.mysql.com/downloads/mysql/8.0.html) - MySQL5.7下载地址:[https://dev.mysql.com/downloads/mysql/5.7.html](https://dev.mysql.com/downloads/mysql/5.7.html) - MySQL旧版本下载地址:[https://downloads.mysql.com/archives/community/](https://downloads.mysql.com/archives/community/) PS:下文以 `MySQL8.0.30` 为例 1. 在 `Select Operating System` 选择 `Microsoft Windows` 2. 点击 **Windows (x86, 64-bit), ZIP Archive** 后面的 `Download` 按钮<br> 3. 不需要登录,直接点击`No thanks, just start my download.`下载安装包<br> # 2 解压、移动、重命名 将下载的zip包进行解压,将解压后的文件夹移动到想要安装的位置 > 下文以安装在`C:\development\`为例,并重命名文件夹为`mysql` # 3 新建日志文件夹 > 重要!!! 在 `mysql` 目录下**新建**一个 `log` 文件夹,用于存储日志文件 # 4 配置mysql.ini文件 在 `mysql` 目录下**新建** `my.ini` 文件 复制以下内容到 `my.ini` 文件内 ```ini [mysql] # 客户端默认字符集 default-character-set=utf8mb4 [mysqld] # 服务器唯一ID(主从复制时需要不一样) server-id=1 # 是否只读,OFF(默认)表示读写(主机),ON表示只读(从机) read-only=OFF # 安装目录 basedir=C:\development\mysql\ # 数据库的数据的存放目录 datadir=C:\development\mysql\data # 绑定ipv4地址 bind-address=0.0.0.0 # 端口号 port=3306 # 服务端使用的字符集 character-set-server=utf8mb4 # 数据库排序字符集 collation_server=utf8mb4_general_ci # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 最大承受包:默认4M max_allowed_packet=100M # 分组拼接最大长度:默认1024,Windows最大支持4294967295 group_concat_max_len=4294967295 # 当设置为0,该模式速度最快,但不太安全: # mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。 # 当设置为1,该模式是最安全的,但也是最慢的一种方式,也是默认模式: # 在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。 # 当设置为2,该模式速度较快,也比0安全 # 只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。 innodb_flush_log_at_trx_commit=2 # 默认64,最大1000。当tablespace 空间已经满了后,需要MySQL系统需要自动扩展多少空间,每次tablespace 扩展都会让各个SQL 处于等待状态。增加自动扩展Size可以减少tablespace自动扩展次数。 innodb_autoextend_increment=64 # 默认16M(16777216)。InnoDB用来缓冲日志数据的缓冲区大小。因为它是每秒刷新一次的,所以将它设置得很大是没有意义的(即使是长事务)。 innodb_log_buffer_size=1M # 默认48M(50331648)。此配置项作用设定innodb 数据库引擎写日志缓存区。 innodb_log_file_size=48M # 默认128M(134217728)。InnoDB使用缓冲池来缓存索引和行数据。 innodb_buffer_pool_size=8M # innodb使用的CPU线程数,默认4(推荐与CPU核心数相同) innodb_read_io_threads=4 innodb_write_io_threads=4 # 允许最大同时连接数:默认151 max_connections=151 # 服务器关闭非交互连接之前等待活动的秒数(默认28800,即8小时) wait_timeout=3600 # 服务器关闭非交互连接之前等待活动的秒数(默认28800,即8小时) interactive_timeout=3600 # 关闭MySQLx(MySQL5.7不支持此选项,使用时需要注释此配置) mysqlx=0 ### 日志相关 ## 慢查询日志 # 开启慢查询日志(建议本地和测试环境开启) slow_query_log=ON # 慢查询日志文件位置 slow_query_log_file=C:\development\mysql\log\log-slow.log # 慢查询时间阈值(单位:秒) long_query_time=3 ## 通用查询日志 # 开启通用查询日志(默认关闭,不建议开启) general_log=OFF # 通用查询日志位置(默认 datadir 目录下) #general_log_file=C:\development\mysql\log\log-general.log ## 错误日志 # 错误日志存放文件(默认 datadir 目录下) log_error=C:\development\mysql\log\log_error.log ## 二进制日志 # 二进制日志文件位置(默认 datadir 目录下,不建议和数据文件放在同一目录或磁盘) log_bin=C:\development\mysql\log\log-bin # 文件格式 binlog_format=MIXED # 单文件最大大小(默认1GB) max_binlog_size=1GB # 文件过期时间(默认30天) binlog_expire_logs_seconds=2592000 # 如果需要关闭二进制日志,打开如下配置(并删除 log_bin 配置) #skip-log-bin ## 中继日志(主从复制时,从机需要配置) # 中继日志文件位置(默认 datadir 目录下,不建议和数据文件放在同一目录或磁盘) #relay_log=C:\development\mysql\log\log-relay ``` > 注:如果安装路径不是在 `C:\development\mysql\` ,请注意相关文件位置的值 # 5 配置环境变量 ***装过Java的都会配置环境变量*** > 新建系统变量 ```bash 变量名:MYSQL_HOME 变量值:C:\development\mysql ``` > `path`添加变量值 ```bash %MYSQL_HOME%\bin ``` # 6 注册服务 以**管理员**打开 `cmd` (该cmd窗口可以一直用到安装结束后再关闭),输入以下命令安装服务 ```bash mysqld install MySQL ``` > `MySQL`指的是安装到`Windows系统服务`的服务名称,不写默认为`MySQL` `win+r` 运行 `regedit` 打开注册表 找到以下路径 ```bash HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql ``` 查看 `ImagePath` 的值是否正确,若路径不对应,请修改为正确的路径 ```bash C:\development\mysql\bin\mysqld mysql ``` # 7 初始化Mysql数据 在 `cmd` 窗口内,输入以下命令初始化MySQL默认数据库,用户名为root,密码为空 ```bash mysqld --initialize-insecure ``` 该命令执行后 `cmd` 窗口卡顿1-2秒,无提示信息 # 8 启动服务 输入以下命令启动服务 ```bash net start mysql ``` > 如果此处服务启动失败,请检查`log`文件夹有没有创建,或者注册表是否正确,检查完成后删除`data`目录,再重新执行第 7 8 步 # 9 修改Mysql默认密码 在 `cmd` 窗口内,输入以下命令登录MySQL ```bash mysql -u root -p ``` 此时出现 `Enter password` 提示,默认没有密码,再次回车即可登录,输入以下命令修改密码(123即密码,可自定义) ``` ALTER USER 'root'@'localhost' IDENTIFIED BY "123"; ``` 推荐:输入以下命令使root用户可以远程访问 ```bash use mysql; update user set host = '%' where user = 'root'; ``` 输入以下命令刷新权限 ```bash flush privileges; ``` 输入 `exit` 退出 ***完成,收工***
16