Mysql之zip格式的安装
一、配置环境变量
首先,我新建一个文件夹,将其改名为MySQL Sever 5.6,其路径为D:\Program Files (x86)\MySQL\MySQL Sever 5.6。
有的同学可能不知道环境变量怎么设置,顺便一提,如果你以后装软件很有可能要把软件的可执行文件的路径添加到环境变量里去。鼠标右击此电脑,点击属性。
如图:
然后找到左侧高级系统设置,鼠标左键点击。
如图:
点击环境变量,再找到系统变量中的path,
如图:
点击编辑,再点击新建
将我们放MySQL Sever 5.6的路径D:\Program Files (x86)\MySQL\MySQL Sever 5.6填入
最后,点击确定即可。
这就完成了第一步配置环境变量。
二、修改配置文件
找到MySQL Sever 5.6文件夹中的my-default.ini文件,这个就是默认配置文件,然后在网上找一份这个文件的代码(没有一个完整的)。
基本上,注意编码方式是utf8,端口是3306
Basedir这个就是MySQL Sever 5.6的路径
datadir这个就是MySQL Sever 5.6下的data文件夹的路径
然后注意这些要放在[mysqld]底下。
然后可以开始尝试安装了。
以管理员身份运行cmd,然后输入cd D:\Program Files (x86)\MySQL\MySQL Sever 5.6,回车
再输入mysqld -install,回车,再输入net start mysql
运气好的话是这个样子的
但是,基本上会有各种各样的错误。
比方说,如果有这种东西:TIMESTAMP with implicit DEFAULT value is deprecated错误
解决方案如下:
打开my.ini(可用记事本打开),找到“[mysqld]”设置项,添加代码:
#开启查询缓存
explicit_defaults_for_timestamp=true
还有,经过我的探索,如果直接删除data文件夹中的名为ib_logfile0和ib_logfile1的两个文件,然后重新net start mysql,那么它会显示mysql服务正常启动,然而启动这个服务和登录上去完全是两码事,我在这个地方卡了好久。另一种方法是在my.ini代码中的[mysqld]底下添加default-storage-engine=INNODB这样一行代码,听网友说这个INNODB和那两个文件貌似有什么我不懂的关联,INNODB是一种存储引擎,而那两个文件好像是什么日志文件之类的,总之添加这行代码,不要删那两个文件就可以了。
以下是配置文件的完整代码
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
character-set-server=utf8
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
skip-grant-tables
basedir = D:\Program Files (x86)\MySQL\MySQL Sever 5.6
datadir = D:\Program Files (x86)\MySQL\MySQL Sever 5.6\data
port = 3306
server_id = 104
group_concat_max_len = 4096
max_connections=20
default-storage-engine=INNODB
#开启查询缓存
explicit_defaults_for_timestamp=true
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
default-character-set=utf8
三、登录并设置密码
以管理员身份运行cmd
否则会出现
好了,在命令行中输入cd D:\Program Files (x86)\MySQL\MySQL Sever 5.6,再输入mysqld --initialize-insecure,这样可以生成一个无密码的账户。然后输入net start mysql,成功启动mysql。再输入cd D:\Program Files (x86)\MySQL\MySQL Sever 5.6,回车,输入mysql -uroot,可以看到登陆成功的提示,如图所示:
其实我历经了无数个错误,只是全都忘了截图了,几乎可以说是一路逆风,加之网上找到的资料良莠不齐,导致我屡次出现按照网上的教程却一夜回到解放前的尴尬情况。以后这种经验总结应当边做边写,可惜的是,我遇到这些千奇百怪的问题时,第一时间感受到的是郁闷,而不是想到去截图。
我们目前只是用无密码账号的方式登录进入了mysql,但是,这可是数据库啊,连个密码都不设,说不过去了吧。输入cd D:\Program Files (x86)\MySQL\MySQL Sever 5.6\bin进入这个文件中,再输入mysqladmin -u root -p password (你的密码)这行命令为新建的账户设立一个密码,不出意外的话,会有一个警告弹出,我第一反应又是绝望了,怎么历经千辛万苦又白搞了啊,然而我静下心来把那行警告复制下来,搜啊搜终于找到一个令我激动的消息,如图:
原来只是提示我一下这样是明文密码不够安全。
按照这位大佬的提示,我输入了一下命令:
mysql -u root -p然后回车,出现的是password的字样,我战战兢兢地输入我之前设的密码,因为我之前按照其他的教程操作时出现了各种各样的错误,然后令我激动的是,真的登上去了,以为着我花了大约十多小时研究的东西终于成功了。
我激动的输入show databases,果然出来一张表,nice!!!!!
我输入exit;后,再输入mysql,果然还是登上去了。
下次终于可以正式开始学mysql了!