搞开发多年,其实MySql前先后后安装配置了无数次,可是每次都须要到网上搜教程,折腾半天才搞定,此次索性把整个过程所有记录下来,以便之后查阅。python
下载
到MySql官网,导航找到DOWNLOADS>>Community>>MySQL Community Server页面,也能够直接点击此处,选择相应的Mysql版本的zip包,我这里是mysql-5.7.21-winx64.zip。mysql
安装配置
- 下载好压缩包以后直接解压到将要存放的目录;
- 在根目录新建
my.ini
文件(并无所谓的my-default.ini
文件),保存为ANSI
编码格式,以下图: - 向
my.ini
中拷入如下代码:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\\Program Files\\mysql-5.7.21 # 容许最大链接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 建立新表时将使用的默认存储引擎 default-storage-engine=INNODB
-
在D:\Program Files\mysql-5.7.21\bin目录下,按住Shift+右键,选择在此处打开命令窗口;sql
-
执行命令
mysqld --install
,这时有可能会出现如下几种错误:数据库- Install/Remove of the Service Denied 出现该问题是由于执行命令的权限不够,到C:\Windows\System32目录下找到
cmd.exe
文件,从新以管理员身份运行打开cmd窗口,而后转到D:\Program Files\mysql-5.7.21\bin目录,再次执行mysqld --install
命令。 - 丢失MSVCR120.dll,MSVCP120.dll
这个问题提示比较明显,缺乏文件,缺啥补啥,网上方案不少,最简单的办法就是根据缺失的文件安装相应版本的VC++运行库的安装包,由于MSVCR和MSVCP都属于VC++运行库,具体以下:
msvcp、msvcr、vcomp140.dll属于VC++2015版 msvcp、msvcr、vcomp120.dll属于VC++2013版 msvcp、msvcr、vcomp110.dll属于VC++2012版 msvcp、msvcr、vcomp100.dll属于VC++2010版 msvcp、msvcr、vcomp90.dll属于VC++2008版 msvcp、msvcr60、71和80.dll,以及vcomp.dll(不带数字版本号)属于VC++2005版
this- Found option without preceding group in config file 出现该错误通常是
my.ini
文件头部缺乏了[mysql]
,或者另外一种状况是文件的编码格式不对,将文件编码保存为ANSI
便可。
- Install/Remove of the Service Denied 出现该问题是由于执行命令的权限不够,到C:\Windows\System32目录下找到
-
执行命令
mysqld --initialize
,此时安装根目录下会自动生成data
文件夹(原目录没有该文件夹)。编码 -
执行命令
net start mysql
,启动服务,以下图,证实已经安装成功。spa
配置帐号密码
但当咱们输入mysql
命令时,会出现如下错误。 命令行
实际上咱们并无设置任何密码,解决办法以下:code
- 打开MySQL目录下的
my.ini
文件,在文件的最后添加一行skip-grant-tables
,保存并关闭文件。 - 重启MySQL服务。
- 在命令行中输入
mysql -uroot -p
(不输入密码),回车便可进入数据库。 - 执行SQL语句
use mysql;
使用mysql数据库。 - 执行SQL语句
update user set authentication_string=password('123456') where user='root';
。 - 打开MySQL目录下的
my.ini
文件,删除最后一行的skip-grant-tables
,保存并关闭文件。 - 重启MySQL服务。
注: 此时若是执行如
use mysql
等命令,可能会出现 You must reset your password using ALTER USER statement before executing this statement. 的错误,若是出现,则执行如下步骤便可:server执行命令
SET PASSWORD = PASSWORD('123456');
; 执行命令ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
。
开启远程链接
- 执行命令
MySQL -uroot -p123456
; - 执行命令
use mysql;
; - 执行命令
update user set host = '%' where user = 'root';
; - 执行命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
给予任何主机访问数据的权限。