Win下 MySQL 免安装配置 及 常见问题处理 方法
1、MySQL下载
链接:http://pan.baidu.com/s/1miQdB4G 密码:a7p1
2、下载后将文件解压到安装目录下
(G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64)
3、在安装目录下将文件 my-default.ini 重命名为 my.ini,用记事本打开
需要修改的地方:
basedir 、datadir:改成安装目录
port:3036
注意:data 目录在初始化时会自动生成一些文件,目录需提前建好
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/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 = G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin # 该参数指定了安装 MySQL 的安装路径
datadir = G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\data 该参数指定了 MySQL 数据库data的文件放在哪个路径下
port = 3306
# server_id = XX.XX.XX.XX
# 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
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip-grant-tables
4、配置环境变量
我的电脑-->属性-->高级系统设置-->环境变量
编辑系统变量 Path (即添加 安装目录下的bin文件路径)
将 **G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin ** 添加到 Path 变量值后面。
5、以管理员身份运行命令提示符 cmd 进入安装目录,切换至bin目录
(一定要用管理员身份运行,不然权限不够)
开始->运行->cmd,例如我要进入G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin
1)先进入G磁盘,输入 G:回车
2)cd Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin
注意点:若直接输 CD G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin,目录不会切换,但在下次输入盘符的时候进入上一次希望进入的目录,如输入G:会直接进入安装目录)
C:\Windows\system32>cd G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin
C:\Windows\system32>G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin
'G:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
C:\Windows\system32>G:
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin
5.1 安装服务,执行 mysqld -install
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin>mysqld -install
Service successfully installed. //成功安装服务
5.2 初始化data目录, 执行 mysqld --initialize-insecure --user=mysql;(免密)
此步骤非常重要,未初始化,可能会导致mysql服务无法启动
注意:MySQL 5.7.17初始化时创建了临时密码,在data目录下的 LAPTOP-OOR4C1HG.err 文件打开后,查看第一个Note,可以找到临时密码。
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin>mysqld -initialize
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin>
自动生成的data目录.png
打开 err 文件可以看到给 root 创建了空密码
2017-07-28T14:49:27.797774Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
若要免密,则执行 mysqld --initialize-insecure --user=mysql;
5.3 设置root免密登录 (初始化时未设置免密)
1)在配置文件 my.ini 中 [mysqld] 下面加上 skip-grant-tables
2)也可以执行 mysqld -nt -skip-grant-tables
--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin>mysqld.exe -nt -skip-grant-tables
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64\bin>
6、启动服务 ,执行net start mysql
C:\Windows\system32>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
常见问题:服务无法启动
处理方法:任务管理器,结束mysqld进程,重新启动mysql
G:\Program Files (x86)\MySQL\mysql-5.7.17-winx64>net start mysql
MySQL 服务正在启动 ..
MySQL 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
7、进入mysql修改密码
因设置过免密登录,输入命令 mysql -uroot -p,弹出输入密码,直接敲回车键即可
输入mysql+回车就可以进行数据库相关方面的操作了
8、停止服务,执行stop start mysql
温馨提示:恢复root密码登录
1)先修改下root密码
mysql5.7数据库下已经没有password这个字段了,password字段改成了authentication_string
查看密码字段:
输入 desc user;
或输入 select * from user;
use mysql;
//更新密码,new_pass
update user set authentication_string=password("new_pass") where user="root";
flush privileges; //刷新权限
quit; //退出 (或 exit;)
2)再将配置文件中 my.ini 中 skip-grant-tables注释掉(前面加 #)
3)操作完后重新启动mysql服务,便可以用之前设置好的密码登录了
(输入命令 mysql -uroot -p,再输入密码,看到以下提示,那么恭喜你成功了)
如需登录远程数据库,加参数-h
C:\WINDOWS\system32>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
常见问题
1、密码失效的情况下如何修改密码,报错1820
1)、通过 alter user
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.20 sec)2)、通过 set password=password("123456");
(使用PASSWORD()函数,对密码进行加密,此时不需要使用FLUSH PRIVILEGES)
2、Mysql 报错1130
解决方法:需要授权(hostname改成 IP地址,newpasspwd 改成新密码)
工具连接MySQL 失败.png
grant all on . to 'root'@'hostname' identified by 'newpasspwd'
针对单项操作进行授权(如select、update等),如有很多数据库,则都要进行设置一遍
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP # 根据实际需要填写
-> ON database.* # 指定数据库
-> TO 'username'@'localhost' #指定用户
-> IDENTIFIED BY 'password'; #用户密码
以上命令会在mysql数据库中的user表创建一条用户信息记录。
未授权create权限.png3、密码永久生效
alter user 'root'@'localhost' password expire never;
4、卸载软件后如何删除服务
sc delete mysql