MySQL 5.7 免安装版配置问题记录

本文为 Window10 环境下 ,MySQL 5.7 免安装版配置过程中,常见问题及报错处理记录日志。

配置文件

解压免安装版 MySQL 程序后,在解压目录或bin目录下查找是否存在 ini 配置文件,不存在则创建(创建时确保保存时编码格式为UTF-8,否则后续操作会报错);配置文件内容大致如下:

[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
# 设置最大连接数
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   # --user=数据库服务名

语句执行完毕后,可以在控制台中看到类似 A temporary password is generated for root@localhost:[此处为生成的随机密码]

MySQL 5.7 免安装版配置问题记录_第1张图片

配置服务

输入以下命令,将 MySQL 服务安装到系统服务中

# mysql 为安装的数据库服务名
mysqld --install mysql --defaults-file="D:\tools\mysql-5.7.21-winx64\bin\my.ini"	

如不需要安装服务,则执行以下命令

mysqld --defaults-file="my.ini 配置文件的路径"

如需删除已安装的服务,则执行以下命令

mysqld --remove [已安装服务名]	# 如: mysqld --remove mysql
# 或
sc delete [已安装服务名] 			# 如: sc delete mysql

安装好的服务,可以在系统服务中找到。

启动和停止

已安装服务,可以使用以下命令启动 MySQL 数据库

net start [已安装服务名]			# 如: net start mysql

停止 MySQL 数据库服务,则执行以下命令

net stop [已安装服务名]			# 如: net stop mysql

修改密码

执行 net start mysql 启动服务后,执行命令 mysql -u root -p 进行root账号登录,根据提示输入初始密码,登录成功后,执行以下命令修改用户密码

set password for [用户名]@localhost = password('[新密码]');
# 如:  set password for root@localhost = password('newPassword');

如未记录初始密码,尝试以下方式处理:

  • 可以删除data目录进行重新安装配置

  • 忘记密码处理


常见问题记录

忘记密码处理

参看:免安装版MySQL安装完成后登陆1045错误处理


错误解决记录

Install/Remove of the Service Denied

mysqld --install 命令执行时报错,此错误为权限不足导致。

解决方式:

  • 用管理员模式运行命令行窗口后重试即可。

由于找不到 MSVRC120.dll,无法继续执行代码。

MySQL 5.7 免安装版配置问题记录_第2张图片

mysqld --initialize-insecure 初始化时报错,此错误是由于未安装 vcredist (Visual C++ Redistributable Packages 安装运行时组件)导致。

解决方式:

  • 下载安装 vcredist 后,重新在命令行中尝试命令 mysqld --initialize-insecure

mysqld --defaults-file=my.ini --initialize-insecure 初始化报错 :mysqld: [ERROR] Found option without preceding group in config file

mysqld: [ERROR] Found option without preceding group in config file D:\tools\mysql-5.7.21-winx64\bin\my.ini at line 1!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

折腾好久,最终发现还是 my.ini 文件的编码格式错误(为 UTF-8 with bom 格式)

解决方式:

  • 用文本编辑器(如,Sublime Text、nodepad++等)打开配置文件后,以 UTF-8 编码格式保存即可。

mysqld --defaults-file=my.ini --initialize-insecure 初始化报错 : mysqld: Can’t create directory

mysqld: Can't create directory 'D:\work\tools\mysql-5.7.21-winx64\data\' (Errcode: 2 - No such file or directory)

此报错,是因为 my.ini 配置文件中 basedirdatadir 路径配置问题,如此处报错路径为 : D:\work\tools\mysql-5.7.21-winx64\data\(即配置文件中配置的路径) ,而实际MySQL路径为:D:\tools\mysql-5.7.21-winx64\data\

解决方式:

  • 检查并修改配置文件中 basedirdatadir 路径为本地MySQL解压的新路径

MySQL 服务无法启动。请键入 NET HELPMSG 3523 以获得更多的帮助。

net start 命令启动 MySQL 服务时报错,此问题是因为 MySQL 的 ini 配置文件,可能是使用 UTF-8 with bom 模式保存导致。

解决方式:

  • 用文本编辑器(如,Sublime Text、nodepad++等)打开配置文件后,以 UTF-8 编码格式保存即可。

MySQL 服务无法启动。请键入 NET HELPMSG 3534 以获得更多的帮助。

参看:免安装MySQL启动3534错误处理


mysql -u root -p 登录数据库时报错:mysql: [ERROR] unknown variable ‘character_set_server=utf8’

此报错为 my.ini 配置文件内错误

解决方式:

  • 注释掉配置文件中 [mysql][client] 下的 character_set_server=utf8

你可能感兴趣的:(问题解决,MySQL)