电脑配置:系统64位win10,MySQL8.0.16
第一坑,没有用管理员身份
第一次登录,打开cmd,执行net start mysql
报错:发生系统错误5
错误原因:没有用管理员身份运行cmd
第二坑,MySQL 服务无法启动
用管理员身份运行cmd,执行net start mysql
报错:
MySQL 服务正在启动
MySQL 服务无法启动
服务没有报告任何错误
错误原因:
- MySQL安装时没有配置系统环境变量
- MySQL安装目录下没有
my.ini
配置文件 - 没有初始化MySQL(没有执行
mysqld --initialize
),执行后会在安装目录下生成data文件夹
1. MySQL安装时没有配置系统环境变量
可以参考文章:为什么需要配置环境变量
解决方法:
- 小娜搜索path(或者我的电脑->属性->高级系统属性->高级->环境变量->path),新建系统变量,
变量名:MYSQL_HOME
,变量值:C:\Program Files\MySQL\MySQL Server 8.0(安装文件夹路径)
2. path里新建环境变量:%MYSQL_HOME%\bin
3. 以管理员身份运行cmd,命令切换到MySQL安装路径下的bin文件夹:cd C:\Program Files\MySQL\MySQL Server 8.0\bin
2. MySQL安装目录下没有my.ini
配置文件
解决方法:
- 在桌面新建
my.ini
文件,然后复制到MySQL安装文件夹下(c盘下面修改文件可能会有权限问题,可以换个角度从桌面复制文件到该文件夹下) -
my.ini
文件内容
[mysql]
; 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
;设置3306端口
port = 3306
; 设置mysql的安装目录
basedir=C:\Program Files\MySQL\MySQL Server 8.0
; 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\MySQL\MySQL Server 8.0\data
; 允许最大连接数
max_connections=200
; 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3. 没有初始化MySQL(没有执行mysqld --initialize
),执行后会在安装目录下生成data文件夹
解决方法:
注:使用mysqld --initialize
命令前,不要自己创建data目录,有data目录就先删除,
再使用mysqld --initialize
,否则无法正常生成全部data目录文件。
第三坑,报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost'
服务启动之后,执行mysql -u root -p
报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost'
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
翻译一下:错误 1045 (28000): 用户"根"@"本地"的访问被拒绝(使用密码:是)
类似经典案例:
Navicat 连接MySQL数据库出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost'
错误原因:没有安装 MySQL
解决方法:mysql 8.0.20 winx64安装配置方法图文教程
4种错误原因:
- MySQL的服务器停止了
- 用户的端口号或者IP导致拒绝访问
- MySQL的配置文件错误(my.ini等文件)
- root用户的密码错误
1.MySQL的服务器停止了
解决方法:
重启MySQL服务器:net start mysql
2.用户的端口号或者IP导致拒绝访问
解决方法:
- 若用户的端口号与IP(3306/3307)不一致,打开
my.ini
文件进行编辑。全部编辑替换为: port=X,3306~3309可选 -
my.ini
文件可自己创建
3.MySQL的配置文件错误(my.ini等文件)
解决方法:
若my.ini
文件配置错误,可以参考以下文章,该文件已对my.ini
文件进行了解释和注释。my.ini文件配置说明书
4.root用户的密码错误
解决方法:密码错误的话,这里有两种解决方法
- MySQL安装路径下data文件,用记事本打开
.err
后缀的文件,里面有密码。A temporary password is generated for root@localhost: 随机密码
- 用
–init-file
参数在服务启动时加载并运行修改密码的命令文件,该命令一旦执行,服务启动后密码即已经清除或者重置,启动服务后即可以空密码或指定密码登入。
- 先关掉服务器:
net stop mysql
- 创建一个文本文件mysql.txt,内容:
ALTER USER "root"@"localhost" IDENTIFIED BY "你的新密码";
- 以管理员身份运行cmd,执行
mysqld --init-file=C:\Program Files\MySQL\MySQL Server 8.0\mysql.txt --console
- 重启服务器:
net start mysql
- 执行:
mysql -u root -p
- 输入新密码就可以了
第四坑,MySQL8.0后修改密码跟以前不一样
输入随机密码后,可以修改密码
注意,MySQL8.0后修改密码跟以前不一样,亲测下面代码可用
ALTER USER "root"@"localhost" IDENTIFIED BY "你的新密码";