最近尝试在windows下安装MySQL,参照网络上的文档介绍,但在实际操作时还说遇到了一些问题,在此记下,以供日后翻阅。
环境
windows7 64位系统
mysql-5.7.23-winx64.zip 社区版
安装包下载,进入mysql下载页,选择"MySQL Community Server",选择具体的操作系统参数,进行下载。
ps:
- 以下操作使用的是windows7自带的PowerShell终端,它比cmd更加的友好,也更贴近Linux的风格。
- 以下操作在打开PowerShell时,需以管理员身份打开
安装
- 解压安装包
在此将mysql安装于D:\MyPrograms下,解压后修改文件夹名称,结果如下:
PS D:\> cd .\MyPrograms
PS D:\MyPrograms> cd .\mysql
PS D:\MyPrograms\mysql>
PS D:\MyPrograms\mysql> tree
文件夹 PATH 列表
卷序列号为 DCF3-6553
D:.
├─bin
├─data
├─docs
├─include
├─lib
└─share
- 在解压后的安装包根目录下新建配置文件 my.ini,内容如下
[Client]
#设置3306端口
port = 3306
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\MyPrograms\mysql
# 设置mysql数据库的数据的存放目录
datadir=D:\MyPrograms\mysql\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
- 配置系统环境变量
新建系统变量 MYSQL_HOME ,并配置变量值为 D:\MyPrograms\mysql ;
编辑系统变量 Path ,将 ;%MYSQL_HOME%\bin 添加到 Path 变量值后面。 - 安装mysql服务,初始化,启动mysql(以管理员身份打开PowerShell,否则会报权限被拒的错误)
PS D:\MyPrograms\mysql> mysqld install MySQL --defaults-file="D:\MyPrograms\mysql\my.ini"
Service successfully installed.
PS D:\MyPrograms\mysql> mysqld --initialize //如果不进行初始化,而直接进入下一步启动mysql,可能的错误如下:
PS D:\MyPrograms\mysql> net start mysql
MySQL 服务正在启动 ..
MySQL 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
此时可删除"D:\MyPrograms\mysql\data"目录下的所有内容,重新执行初始化语句
如果执行初始化语句时出现以下错误,也请删除data下内容,重新执行
PS D:\MyPrograms\mysql> mysqld --initialize
2018-10-23T01:30:49.873802Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defau
lts_for_timestamp server option (see documentation for more details).
2018-10-23T01:30:49.873802Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes sho
uld be used with strict mode. They will be merged with strict mode in a future release.
2018-10-23T01:30:49.873802Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2018-10-23T01:30:49.876802Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-10-23T01:30:49.878802Z 0 [ERROR] Aborting
PS D:\MyPrograms\mysql>
PS D:\MyPrograms\mysql> net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
- 修改root用户密码
mysql本次启动时已生成临时密码,导致使用默认空密码无法进入
PS C:\Windows\system32> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
生成的临时密码可在 mysql\data\xxx.err中查看
[Note] A temporary password is generated for root@localhost: iHjvqnu#%3vd【iHjvqnu#%3vd即是密码】
PS C:\Windows\system32> mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.23
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; //修改密码为123456
Query OK, 0 rows affected (0.00 sec)