win系统下部署mysql服务(免安装版)及常见小问题解决方法

win系统下部署mysql服务(免安装版)及常见小问题解决方法

Lino
2023-11-06 / 0 评论 / 15 阅读 / 正在检测是否收录...

下载MySQL

MySQL下载官网下载对应版本MySQL

配置环境变量

在系统变量中创建
MYSQL_HOME变量:MySQL文件路径
例如:D:\mysql\mysql-5.6.15-winx64

在系统变量和用户变量中加PATH:%MYSQL_HOME%\bin

文件配置

本次安装以mysql-5.6.15-winx64为例,将安装包解压之后,进入解压后的目录找到my.ini配置文件,没有的话就自行创建my.ini配置文件,这个文件是mysql的主配置文件,修改如下内容指定数据库存放位置

basedir = D:\mysql\mysql-5.6.15-winx64 #MySQL文件路径
datadir = D:\mysql\mysql-5.6.15-winx64\data #MySQL数据存放路径,如果没有data文件夹自行创建
port=3306
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB  
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
 basedir = D:\mysql\mysql-5.6.15-winx64
 datadir = D:\mysql\mysql-5.6.15-winx64\data 
 port=3306
 max_connections=200
 character-set-server=utf8
 default-storage-engine=INNODB

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

安装服务

在通过管理员身份打开cmd,注意一定是要用管理员身份打开
输入
mysqld install MySQL --default-file="D:\mysql\mysql-5.6.15-winx64\my.ini"
提示successfull表示安装成功,
启动MySQL服务net start mysql,停止可以使用net stop mysql,当然也可以在服务里面进行操作

初始化数据库

cmd中输入mysqld --initialize
如果报错的话:
配置文件增加

[mysqld]
explicit_defaults_for_timestamp=true

这时会在data文件夹下找到一个xxx.err的文件
此时打开该文件root@localhost后就是随机生成的初始密码
[Note] A temporary password is generated for root@localhost: VhaS8aL+#RrG

启动服务

net start mysql

进入数据库,默认是没有密码回车就行

mysql -u root -p

重新设置密码(若提示Can't connect to MySQL server on 'localhost' (10061),说明MySQL服务没起,应先执行net start mysql,若无法启动服务,重启电脑就行了):

重新设置密码

set password = password('123456')

再一次提示一定要配置好环境变量MySQL_HOME

注意点:

1.需要在bin目录下以管理员身份进行cmd

2.mysqld --initialize --console初始会生成默认默认密码

3.如果不想在每次不想bin目录才能执行mysql命令,可以配置环境变量,其实可以不用配置,一般不用cmd操作数据库。

一些常见错误解决办法

启动MySQL出现以下错误提示:

MySQL 服务正在启动 MySQL 服务无法启动。服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。
一般有几个情况:

MySQL安装文件夹的data文件夹不完整或者被移动了

1.如果是Data文件夹里面的文件不完整,那么就先清空原来的Data文件夹,然后输入mysqld --initialize初始化Data,如果可能有报错,但是没反应可以到Data文件夹里的.err文件查看原因;

或者可以输入mysqld --initialize --console在控制台就能看到报错信息。

2、如果是data文件夹的位置发生了变化,就要根据文件夹的新目录修改my.ini文件中basedir=?

和datadir=?这两个文件的存储位置了,另外,如果MySQL的文件夹也发生位置变化,比如加装了移动硬盘,重新分区;环境变量也需要跟着修改配置。
以上两个情况都初始化一下mysqld --initialize会比较保险。

安装服务的话输入 mysqld --install 服务名 如:mysqld --install MySQL56

删除服务的话输入 sc delete 服务名 如:sc delete MySQL56

总结可能会用到的命令:

mysqld --initialized -insecure:初始化MySQL,并且默认密码为空;
mysqld --initialized --console:初始化MySQL;
mysqld --install:安装MySQL服务;
mysqld -remove:删除MySQL服务;
mysql -u 用户名 -p:登录MySQL;
alter user 'root'@'localhost'identified by '密码';:修改管理员用户的密码;

MySQL服务的可执行文件路径不正确

右键我的电脑—>管理—>服务—>找到自己mysql的服务—>右键属性打开
如果路径有 -default的需要删掉

当前可执行文件的路径为:
"D:\mysql\mysql-5.6.15-winx64\bin\mysqld" -defaultPath="D:\mysql\mysql-5.6.15-winx64\bin\mysqld" MySQL80"D:\mysql\mysql-5.6.15-winx64\bin\mysqld" -defaultPath="D:\mysql\mysql-5.6.15-winx64\bin\mysqld" MySQL56
修改步骤:
win+R键
输入regdit
按照路径找到自己的mysql服务注册表
例如:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL56
修改ImagePath为
"D:\mysql\mysql-5.6.15-winx64\bin\mysqld" MySQL56
然后服务启动MySQL56 或者 cmd里面输入 net start MySQL56
正常运行。

问题解决。

忘记密码登录时跳过权限检查并修改密码

找到MySQL配置文件my.ini
打开文件在[mysqld]后添加kip-grant-tables
然后重启MySQL服务在终端中输入net stop mysql net start mysq或者打开windows任务管理器重启部署的MySQL服务
重启后登录mysql,输入mysql –uroot –p;直接回车(Enter)
输入select host, user from user;会出现用户列表,例如下表

+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | root          |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+

选择要修改密码的用户使用以下命令修改
set password for ‘用户名’@‘host’=password(‘要修改的密码’);
例如这里我将root用户密码修改为123456,用以下命令即可:
set password for ‘root’@‘localhost’=password(‘123456’);
然后刷新flush privileges;
重启mysql服务密码即可修改成功

navicat连接mysql报错1130-Host ‘1xxx.xx.x.20‘ is not allowed to connect to this MySQL server的解决办法

navicat连接mysql报错1130-Host '1xxx.xx.x.20' is not allowed to connect to this MySQL server的解决办法
原因:没有权限

解决办法:

1、连接服务器: mysql -u root -p

2、看当前所有数据库:show databases;

3、进入mysql数据库:use mysql;

4、查看mysql数据库中所有的表:show tables

5、查看user表中的数据:select host, user from user;

6、修改user表中的Host:update user set host='%' where user='要修改权限的用户名';

7、最后刷新一下:flush privileges;

%的意思:
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。这也就是为什么在开启远程连接的时候,大部分人都直接把Host改成%的缘故,为了省事。

1

评论 (0)

取消