只介绍解压版的mysql安装方法:
将文件解压之后可以将该文件夹改名,放到合适的位置(自行选择),这里我放在了E盘:
之后配置环境变量:
我的电脑->属性->高级->环境变量
选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:E:\mysql-5.7.17-win32\bin )
PATH=.......;E:\mysql-5.7.17-win32\bin (注意是追加,不是覆盖,添加时注意前方要有分号没有的话自己添加一个英文分号;
配置完环境变量之后先别忙着启动mysql,我们还需要修改一下配置文件,默认的配置文件是在E:\mysql-5.7.17-win32\my-default.ini,或者自己建立一个my.ini文件,
在其中修改或添加配置(如图):
[mysqld]
basedir=E:\mysql-5.7.17-win32(mysql所在目录)
datadir=E:\mysql-5.7.17-win32\data (mysql所在目录\data)
配置好之后选择将文件名改为 my.ini 或者复制一个副本改名为my.ini
以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),
输入:cd E:\mysql-5.7.17-win32\bin 进入mysql的bin文件夹
输入mysqld -install 安装mysql服务
安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!
之后输入 mysql -u root -p 回车就登录了
出现的错误及解决:
Mysql 服务无法启动 服务没有报告任何错误在执行 mysqld -install之后 运行mysqld --initialize (标题问题所在,若没有init则不存在data目录,自然无法启动成功)
在安装mysql5.7版本时,经常会遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容:
018-11-03 T15:15:10.033062Z 1 [Note] A temporary password is generated for root@localhost: >mso<k70mrWe
红色字母即为第一次的登陆密码。
mysql重置密码重置 root 密码
在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码。
1. 停止 MySQL 服务
打开命令提示符窗口,输入 net stop mysql 关闭 MySQL 服务。
C:\Users\Administrator>net stop mysql
MySQL57 服务正在停止..
MySQL57 服务已成功停止。
2. 切换到 bin 目录
在命令提示符窗口中,通过 cd 命令切换到 mysql 安装目录下的 bin 目录。
C:\Users\Administrator>E:
cd E:\mysql-5.7.17-win32\bin
C:\Program Files\MySQL\MySQL Server 5.7\bin>
3. 进入安全模式
在 bin 目录下输入 mysqld --skip-grant-tables
,跳过权限检查启动 mysql。
如果你配置了 my.ini 文件,则需要将其引入: mysqld --defaults-file="../my.ini" --skip-grant-tables
[mysqld]
basedir = "C:\ProgramData\MySQL\MySQL Server 5.7"
datadir = "C:\ProgramData\MySQL\MySQL Server 5.7\Data"
4. 重置账户密码
打开另一个命令提示符窗口(别关闭安全模式窗口),同样切换到 mysql \ bin 目录,输入 mysql 跳过权限验证连接数据库。
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql
Server version: 5.7.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
↑ 也可以指定连接参数 mysql -u <用户名> -p <密码> -h <连接地址> -P <端口号> -D <数据库>
执行 update mysql.user set authentication_string="" where user="root"; 重置 root 用户的密码(5.7 之前为 password 字段)。
1 2 3 4 5 6 7 8 9 10 11 12 | |
↑ root 用户的 authentication_string 字段已经被清空了
5. 刷新权限表
执行 flush privileges; 命令刷新权限表,密码已经重置完成,输入 quit 退出。
1 2 3 4 | |
关闭所有命令提示符窗口,通过任务管理器结束 mysqld.exe 进程。重启 MySQL 服务,之后就可以直接登录 root 账号了。
修改 root 密码
出于安全考虑,root 密码不宜为空,所以需要在密码重置之后,再重新设置一个密码。
方法一:SET PASSWORD
SET PASSWORD FOR "username"=PASSWORD("new password");
以 root 身份登录 mysql,再使用 set password 命令修改密码:
1 2 | |
方法二:mysqladmin
mysqladmin -u "username" -p password "new password"
执行该命名之后会提示输入原密码,输入正确后即可修改。
1 2 3 4 5 | |
方法三:UPDATE TABLE
UPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";
在重置 root 密码的同时,也可以设置默认密码。不过密码不能为明文,必须使用 password() 函数加密。
1 2 3 4 5 | |
- 在服务器上登录数据库,然后执行如下授权SQL语句。该授权SQL语句的含义为root用户可用任何IP地址登录数据库,操作任何数据库中的任何对象。
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
参数说明如下。
-
*.*
参数,第一个“*”为数据库占位符,如果填“*”则代表所有数据库。第二个“*”为数据库对象占位符,如果填“*”则代表数据库中所有对象。 -
'root'@'%'
参数,root为授权登录的数据库账户,“%”为IP地址占位符。假如要限制只能在1.1.1.1登录,则需要把“%”改成1.1.1.1。如果填“%”则代表允许任何IP地址登录。 -
'123456'
参数,该参数为数据库密码。
- 执行如下SQL语句,刷新权限。
flush privileges;
- 确认远程MySQL客户端可正常连接数据库。