mysql-5.7.23版本安装以及常见错误(详细)
操作系统:windows7 64-bit
数据库版本:mysql-5.7.23-winx64
1. 首先去官网下载符合操作系统的数据库版本:https://dev.mysql.com/downloads/mysql/
2. 下载之后解压缩到某个文件夹或目录下,我的是D:\mysql-5.7.23-winx64
3. 有的人会在一解压后就进入到bin文件夹下寻找mysql.exe启动,但是命令行窗口闪了一下就消失了。这时不要急,依次按下面的操作去做:
3.1 查看一下mysql-5.7.23-win64解压目录下是否有my.ini文件(一般是没有的,如果有my-default.ini文件,则改名为 my.ini),如果没有,则新建一个my.ini文件,将以下代码复制进去,复制完后保存,并将my.ini文件复制一份放到bin文件夹下。代码中出现两次D:\mysql-5.7.23-winx64,这是我的MySQL的解压路径,各位根据自己的路径替换掉即可。至此,MySQL可以执行安装了。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="D:\mysql-5.7.23-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\mysql-5.7.23-winx64\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3.2 以管理员身份运行cmd,切换到mysql-5.7.23-winx64的bin目录下,输入mysqld install命令(注意是mysqld而不是mysql)回车,即可安装MySQL,如下图所示:
3.3 安装好MySQL后,可以输入net start mysql来启动MySQL,输入net stop mysql 来关闭MySQL服务,也可以在服务里面手动启动/关闭MySQL服务:
3.4 我在安装成功后启动MySQL服务时,服务启动不了,提示:MySQL服务无法启动 服务没有报告任何错误 请键入NET HELPMSG 3534 以获得更多帮助,如下:
解决方案:安装好MySQL后,打开cmd命令窗口,并且进入到MySQL安装目录中的bin目录,然后输入如下命令回车即可:mysqld --initialize-insecure --user=mysql
执行完上面命令后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空,之后就可以通过命令net start mysql启动mysql服务了。
注:MySQL升级到5.7版本是没有data文件夹的,执行mysqld --initialize-insecure --user=mysql命令会自动新建data文件夹。
4. 把cmd命令行路径定位到bin目录下,启动mysql数据库: net start mysql
然后登陆,输入命令行mysql -uroot -p,如果登陆过程中遇到如下问题:
无论怎么输入密码,回车的时候就会提示mysql Access denied for user [email protected]错误
解决方法是:编辑mysql配置文件my.ini(注意有两个my.ini文件都要加),在[mysqld]这个条目下加入 skip-grant-tables 保存退出后重启mysql
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
skip-grant-tables
port = 3306
# 设置mysql的安装目录
basedir="D:\mysql-5.7.23-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\mysql-5.7.23-winx64\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
打开cmd,输入 net stop mysql
启动:输入 net start mysql
这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。
继续按下面的流程走:
进入mysql数据库:
mysql> use mysql;
Database changed
给root用户设置新密码:
mysql> update mysql.user set authentication_string=password('*******') where user='root';
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
退出mysql:
mysql> quit;
Bye
改好之后,再修改一下my.ini文件,把我们刚才加入的 "skip-grant-tables"这行删除,保存退出再重启mysql就可以了。重启之后用设置好的密码进行登陆。