最近学习java web开发,发现之前使用的sql server数据库没什么人在用 于是抱着赶时髦的态度下载了mysql 没想到折腾几个小时愣是没用上,这个最新版的数据库真是难伺候,配置好my.ini,在使用
mysqld -install
net start mysql
两条命令后发现服务无法启动,错误代码3534,却没有提供任何描述,让人一头雾水
其间下载了数个版本,辗转百度经验、各种论坛看到了五花八门的说法,总没有好用的 最后在CSDN @aircraftboy 的回复中看到这样一段话
As of MySQL 5.7.6, the Zip Archive no longer includes a data directory.
To initialize a MySQL installation by creating the data directory and populating the tables in the mysql system database,
initialize MySQL using either --initialize or --initialize-insecure.
For additional information, see Section 2.10.1.1, “Initializing the Data Directory Using mysqld”.
大意就是说,现在的版本中不自带data目录了,所以在配置时要另外使用 --initialize命令来完成初始化
话不多说,问题的解决过程如下:
2.将下载好的压缩文件解压到自己选择的路径,这里我的路径是 D:\mysql-5.7.9-winx64并配置环境变量path 追加 ;D:\mysql-5.7.9-winx64
3.进入D:\mysql-5.7.9-winx64 下,创建my-default.ini文件的副本 my.ini 并将其中内容替换如下 (my-default.ini也不用删除,留着以后配置数据库时当做模板)
注意:basedir datadir两项中内容需要根据自己的根目录路径进行修改
---------------------------------------------------------------------------------
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql-5.7.9-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-5.7.9-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
---------------------------------------------------------------------------------
修改完毕后我们会发现 datadir的路径 D:\mysql-5.7.9-winx64\data在解压后的文件夹中并不存在 这也是文章开篇提到的错误出现的原因
4.打开cmd 进入mysql路径下的bin文件夹 D:\mysql-5.7.9-winx64\bin按顺序键入以下命令即可
mysqld --initialize
mysqld install
net start mysql
修改密码参见点击打开链接 其中 密码对应的表列不是password 而是authentication_string