本文为 Window10 环境下 ,MySQL 5.7 免安装版配置过程中,常见问题及报错处理记录日志。
配置文件
解压免安装版 MySQL 程序后,在解压目录或bin目录下查找是否存在 ini 配置文件,不存在则创建;配置文件内容大致如下:
[mysql]
# 设置MySQL客户端默认端口
port=3306
# 设置MySQL客户端默认字符集
character_set_server=utf8
default-character-set=utf8
[mysqld]
#登录忽略登录检查
#skip_grant_tables
# 设置MySQL默认端口
port=3306
# 设置MySQL安装目录
basedir=D:/tools/mysql-5.7.21-winx64
# 设置MySQL数据存放目录
datadir=D:/tools/mysql-5.7.21-winx64/data
# 设置MySQL默认字符集
character_set_server=utf8
default-character-set=utf8
# 去除NO_ZERO_IN_DATE,NO_ZERO_DATE模式 避免默认时间为‘0000-00-00 00:00:00’时的1067报错 (修改后重启未起效,原因未知)
sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 设置最大连接数
max_connections=200
# 创建新表时使用的默认存储引擎
default-storage-engine=INNODB
# 缓存 innodb 表的索引,数据,插入数据时的缓冲 默认为 128M
innodb_buffer_pool_size = 256M
query_cache_type=1
# MySQL 的查询缓存,最少设置 15M
query_cache_size=32M
[client]
character_set_server=utf8
default-character-set=utf8
配置环境变量
# 新增变量(指定本地MySQL路径,用于后续切换版本)
MYSQL_HOME=D:\tools\mysql-5.7.21-winx64
# PATH中新增变量
%MYSQL_HOME%\bin
数据库初始化及root账号密码生成
命令管理器(管理员模式)中,执行以下语句,进行数据库初始化并生成root账号随机密码:
mysqld --initialize --user=mysql --console
语句执行完毕后,可以在控制台中看到类似 A temporary password is generated for root@localhost:[此处为生成的随机密码]
。
配置服务
输入以下命令,将 MySQL 服务安装到系统服务中
mysqld --install mysql --defaults-file="D:\tools\mysql-5.7.21-winx64\bin\my.ini"
如不需要安装服务,则执行以下命令
mysqld --defaults-file="my.ini 配置文件的路径"
如需删除已安装的服务,则执行以下命令
mysqld --remove [已安装服务名]
# 或
sc delete [已安装服务名]
安装好的服务,可以在系统服务中找到。
启动和停止
已安装服务,可以使用以下命令启动 MySQL 数据库
net start [已安装服务名]
停止 MySQL 数据库服务,则执行以下命令
net stop [已安装服务名]
修改密码
执行 net start mysql
启动服务后,执行命令 mysql -u root -p
进行root账号登录,根据提示输入初始密码,登录成功后,执行以下命令修改用户密码
# set password for [用户名]@localhost = password('[新密码]');
set password for root@localhost = password('newPassword');
如未记录初始密码,尝试以下方式处理:
-
可以删除data目录进行重新安装配置
常见问题记录
忘记密码处理
错误解决记录
Install/Remove of the Service Denied
mysqld --install
命令执行时报错,此错误为权限不足导致。
解决方式:
- 用管理员模式运行命令行窗口后重试即可。
由于找不到 MSVRC120.dll,无法继续执行代码。
mysqld --initialize-insecure
初始化时报错,此错误是由于未安装 vcredist (Visual C++ Redistributable Packages 安装运行时组件)导致。
解决方式:
- 下载安装 vcredist 后,重新在命令行中尝试命令
mysqld --initialize-insecure
。
MySQL 服务无法启动。请键入 NET HELPMSG 3523 以获得更多的帮助。
net start
命令启动 MySQL 服务时报错,此问题是因为 MySQL 的 ini 配置文件,可能是使用 UTF-8 with bom 模式保存导致。
解决方式:
- 用文本编辑器(如,Sublime Text、nodepad++等)打开配置文件后,以 UTF-8 编码格式保存即可。