Windows下MySQL数据库的安装及常见问题(含处理办法及安装包)
mysql安装方法及启动
平时工作不太经常完整的服务器环境,所以很久没有进行服务器环境的配置,突然想要重新装一下,所以从腾讯云领取了一个15天的免费服务器来重新安装一下服务器常用的开发环境,这里我选择的是windows server2012版本的服务器,刚开始安装MySQL就遇到了很多问题,下面和大家分享一下出现的问题和解决办法。
MySQL数据库安装
1.下载MySQL数据库安装包,因为免费领的服务器只有一个C盘,所以这里我创建了一个简单易懂的ceshi文件夹来放一些安装包,
MySQL安装包我选择的是mysql-8.0.15-winx64在文章最下面有我使用的安装包分享
2.在mysql-8.0.15-winx64文件夹中创建data文件夹并创建my.ini文件,配置mysql安装目录等内容
这里注意!!!
(1)设置mysql的安装目录的basedir指向mysql安装包文件夹地址
(2)设置mysql数据库的数据的存放目录的datadir指向刚刚创建的data文件夹地址
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\ceshi\mysql-8.0.15-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\ceshi\mysql-8.0.15-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
skip-name-resolve
3.通过win+R打开‘运行’窗口打开cmd命令窗口
4.进入安装包文件夹
C:\Users\Administrator>cd /
C:\>cd ceshi\mysql-8.0.15-winx64\bin
4.安装mysql数据库并初始化
C:\ceshi\mysql-8.0.15-winx64\bin>mysqld --install
Service successfully installed.
C:\ceshi\mysql-8.0.15-winx64\bin>mysqld --initialize
C:\ceshi\mysql-8.0.15-winx64\bin>
5.启动MySQL服务
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
6.启动MySQL数据库
C:\ceshi\mysql-8.0.15-winx64\bin>mysql -u root -p
出现的问题
启动MySQL服务报错
启动MySQL服务报错3534
一般第一次启动MySQL服务经常会提示MySQL服务无法启动,并报错3534,就像这样
C:\Users\Administrator>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
如果遇到这样的情况
1.我们需要把我们在MySQL安装包文件夹创建的data文件夹下的所有文件都删除
2.重新进行MySQL初始化操作
mysqld --initialize
启动MySQL服务报错3523
重新将MySQL初始化以后继续使用net start mysql启动MySQL服务有一次报错,这次是3523,就像这样
C:\ceshi\mysql-8.0.15-winx64\bin>mysqld --initialize
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
MySQL 服务正在启动 ........
MySQL 服务无法启动。
请键入 NET HELPMSG 3523 以获得更多的帮助。
但是通过排查,发现MySQL服务已经打开了,并且通过cmd命令重新启动MySQL服务已经提醒‘请求的服务已经启动’,所以就没再管他
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
MySQL 服务正在启动 ........
MySQL 服务无法启动。
请键入 NET HELPMSG 3523 以获得更多的帮助。
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
请求的服务已经启动。
请键入 NET HELPMSG 2182 以获得更多的帮助。
查看服务可通过运行’services.msc’快速进入服务窗口
启动MySQL服务报错提示发生系统错误193
当我们遇到类似于这样的错误时,我们需要删除mysql安装包下bin文件夹中名为mysqld,大小为0KB的文件,然后重新启动,就可以解决这样的问题
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
发生系统错误 193。
*** 不是有效的 Win32 应用程序。
C:\ceshi\mysql-8.0.15-winx64\bin>net stop mysql
没有启动 MySQL 服务。
请键入 NET HELPMSG 3521 以获得更多的帮助。
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
发生系统错误 193。
*** 不是有效的 Win32 应用程序。
C:\ceshi\mysql-8.0.15-winx64\bin>net start mysql
MySQL 服务正在启动 ........
MySQL 服务启动成功。
启动MySQL数据库报错
mysql -u root -p报错ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
如果说打开MySQL数据库报错ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061),建议检查MySQL服务是否开启。
C:\ceshi\mysql-8.0.15-winx64\bin>mysql -u root -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
C:\ceshi\mysql-8.0.15-winx64\bin>net stop mysql
没有启动 MySQL 服务。
mysql -u root -p报错ERROR 1130 (HY000): Host ‘::1’ is not allowed to connect to this MySQL server
不同的MySQL数据库版本对my.ini文件夹的要求也不相同,所以如果启动MySQL数据库报错ERROR 1130 (HY000): Host ‘::1’ is not allowed to connect to this MySQL server,不要慌,打开我们之前创建的my.ini文件,将skip-name-resolve这一句话注释掉然后重启一下数据库就好了
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\ceshi\mysql-8.0.15-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\ceshi\mysql-8.0.15-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#出现Host '::1' is not allowed to connect to this mysql server注释以下内容
#skip-name-resolve
MySQL密码设置
我们第一次安装MySQL都会出现这样的问题,MySQL服务启动并且启动MySQL数据库后,都会要求输入初始密码,但是我们找来找去都找不到,那么接下来我总结了几种不需要密码进入MySQL数据库的方法
常见的输入密码后的反馈总结
我们在日常进入MySQL数据库的时候在输入密码环节会出现不同的反馈,我们在这里对不同的密码反馈进行总结
1.第一种是当我们想要跳过密码进入MySQL所以空着密码进入后出现这样的情况
C:\ceshi\mysql-8.0.15-winx64\bin>mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: N
O)
这样的情况一般是因为我们的权限并不支持跳过密码进入MySQL数据库,所以我们需要通过跳过初始密码的方式进入数据库,方法会在下面讲到
2.第二种是当我们输入密码后出现的情况
C:\ceshi\mysql-8.0.15-winx64\bin>mysql -u root -p
Enter password: ***
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y
ES)
如果说出现这样的情况,那就是因为输入的密码不正确所导致的
跳过初始密码进入MySQL数据库的方法
skip-grant-tables
第一个办法我们可以在my.ini文件中的[mysqld]下加入skip-grant-tables,然后重启MySQL服务,这样我们启动mysql -u root -p,空着密码,就能直接进入MySQL数据库了
C:\ceshi\mysql-8.0.15-winx64\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2019, 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>
my.ini文件内容为
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\ceshi\mysql-8.0.15-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\ceshi\mysql-8.0.15-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#出现Host '::1' is not allowed to connect to this mysql server注释以下内容
skip-name-resolve
skip-grant-tables
mysqld --console --skip-grant-tables --shared-memory
在MySQL数据库8.0以上版本会出现在my.ini文件夹中加入skip-grant-tables无法启动MySQL服务的情况,这样的情况下我们关闭MySQL服务,重新打开一个cmd窗口,通过mysqld --console --skip-grant-tables --shared-memory的方式打开MySQL服务,这样我们我们打开MySQL数据,就可以空着密码进入了
C:\ceshi\mysql-8.0.15-winx64\bin>mysqld --console --skip-grant-tables --shared-m
emory
2020-06-03T05:50:23.984028Z 0 [System] [MY-010116] [Server] C:\ceshi\mysql-8.0.1
5-winx64\bin\mysqld.exe (mysqld 8.0.15) starting as process 1124
2020-06-03T05:50:23.985943Z 0 [Warning] [MY-013242] [Server] --character-set-ser
ver: 'utf8' is currently an alias for the character set UTF8MB3, but will be an
alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to
be unambiguous.
2020-06-03T05:50:39.282934Z 0 [Warning] [MY-010068] [Server] CA certificate ca.p
em is self signed.
2020-06-03T05:50:39.317637Z 0 [System] [MY-010931] [Server] C:\ceshi\mysql-8.0.1
5-winx64\bin\mysqld.exe: ready for connections. Version: '8.0.15' socket: '' p
ort: 0 MySQL Community Server - GPL.
2020-06-03T05:50:39.358816Z 0 [Warning] [MY-011311] [Server] Plugin mysqlx repor
ted: 'All I/O interfaces are disabled, X Protocol won't be accessible'
C:\ceshi\mysql-8.0.15-winx64\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2019, 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>
注意,如果使用这种情况一定要注意拼写和合适,如果说出现以下情况,不要怀疑,基本上就是你输入内容或者格式有误,重新检查一下的
2020-06-03T05:49:56.789360Z 0 [System] [MY-010116] [Server] C:\ceshi\mysql-8.0.1
5-winx64\bin\mysqld.exe (mysqld 8.0.15) starting as process 3840
2020-06-03T05:49:56.791328Z 0 [Warning] [MY-013242] [Server] --character-set-ser
ver: 'utf8' is currently an alias for the character set UTF8MB3, but will be an
alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to
be unambiguous.
2020-06-03T05:50:12.347208Z 0 [Warning] [MY-010068] [Server] CA certificate ca.p
em is self signed.
2020-06-03T05:50:12.352903Z 0 [ERROR] [MY-000068] [Server] unknown option '--sha
red-m'.
2020-06-03T05:50:12.352913Z 0 [Warning] [MY-010952] [Server] The privilege syste
m failed to initialize correctly. If you have upgraded your server, make sure yo
u're executing mysql_upgrade to correct the issue.
2020-06-03T05:50:12.371759Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-06-03T05:50:13.864968Z 0 [System] [MY-010910] [Server] C:\ceshi\mysql-8.0.1
5-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.15) MySQL Community Serv
er - GPL.
MySQL数据库密码修改
在跳过密码进入MySQL数据库后,我们肯定是要去修改密码,所以我们在进入MySQL数据库后,我们通过SQL语句的方式进行密码修改,但是通过跳过密码方式会出现报错情况,所以在修改以前我们可以先执行一下flush privileges;命令后进行密码的修改,整体流程如下
mysql> ALTER USER "root"@"localhost" IDENTIFIED BY "root";
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql>flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> ALTER USER "root"@"localhost" IDENTIFIED BY "root";
Query OK, 0 rows affected (0.03 sec)
mysql>
修改密码的SQL语句为:
ALTER USER “root”@“localhost” IDENTIFIED BY “你的密码”;
总结
MySQL数据库的安装首先需要选好安装包,并明确自己所使用的安装包版本,切记一定要在安装包地址下进行MySQL服务的安装及初始化,一般来说MySQL服务无法启动基本上可以靠删除data文件夹中的所有文件并重新初始化解决的。同时熟记MySQL安装等常用命令,在修改my.ini文件或其他内容后,一定要第一时间重启MySQL服务来快速完成修改后的实现。
mysqld --install MySQL服务安装
mysqld --initialize MySQL服务初始化
net start mysql 启动MySQL服务
net stop mysql 关闭MySQL服务
mysql -u root -p 进入MySQL数据库
my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\ceshi\mysql-8.0.15-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\ceshi\mysql-8.0.15-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
skip-name-resolve
skip-grant-tables
MySQL数据库安装包
链接:https://pan.baidu.com/s/1l58DUx_p8768i1gRu8PMQQ
提取码:onrx