win7下安装mysql5.7解决找不到msvcr120.dll,需要重新安装服务

MySQL官网下载5.7  zip安装包  地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

1、解压mysql-5.7.14-winx64.zip

2、再解压文件中新建data目录

D:win7softmysql-5.7.14-winx64data

3、将D:win7softmysql-5.7.14-winx64in路径添加到path中

4、再bin目录下复制my-default.ini为my.ini添加或者修改如下配置:

basedir = D:win7softmysql-5.7.14-winx64

datadir = D:win7softmysql-5.7.14-winx64data

port = 3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

character-set-server=utf8

character_set_filesystem=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

4、cmd管理员身份运行进入,执行

cd D:win7softmysql-5.7.14-winx64in

mysqld --initialize --user=mysql --console

遇到问题 :找不到msvcr120.dll

按照网上给出的方案:

     1. 自己下载:msvcr120.dll  然后把该文件放入: c:/windows/System32(32位系统)   c:/window/SysWOW64(64位系统)

     2. 使用   regsvr32 msvcr120.dll   命令注册对应的命令

上面的解决方案并没有解决我的问题,试过了之后还是不行,这时可能就是系统问题导致的了,可以把后面的msvcr120.dll 

换成其他的dll文件(随便从那个两个目录中找一个dll)试试,看看是不是也不能成功注册,如果其他文件也不行,那就说明的确是系统的问题。 

紧接着我又下载了360安全卫士尝试修复,在人工解答中搜索dll修复,也修复了,但是仍然没有解决。 出现这个问题最主要的原因就是本地c++ 库组件有问题。最后我找到了解决方案,就是下载一个   DirectX修复工具   , 然后使用该软件进行修复即可

如果在修复的过程中,发现你本地已经安装过c++组件, 把本地的卸载掉,在重试下即可

记录下生成的root临时密码:  localhost: 6o:Er;_yXGaa

5、添加系统服务,启动MySQL

mysqld --install MySQL –>添加到系统服务

net start mysql –>启动mysql服务

6、修改root密码

cmd进入执行:mysql -u root -p

输入刚才记录的root临时密码:6o:Er;_yXGaa

修改root密码:set password = password('root');  ---root密码改为root了

exit退出就ok了

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

开启远程控制
MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。

1、方式一(已验证):

1.1、连接服务器: mysql -u root -p

1.2、看当前所有数据库:show databases;

1.3、进入mysql数据库:use mysql;

1.4、查看mysql数据库中所有的表:show tables; 

1.5、查看user表中的数据:select Host, User,Password from user; 

1.6、修改user表中的Host:update user set Host='%' where User='root';?
1.7、最后刷新一下:flush privileges;
1
.8、注意:一定要记得在写sql的时候要在语句完成后加上" ; "?

2、方式二(未验证):

1、使用 grant?命令

grant?all privileges on 数据库名.表名 to 创建的用户名(root)@"%" identified by "密码";

2、格式说明:
数据库名.表名 如果写成*.*代表授权所有的数据库 flush privileges; #刷新刚才的内容

如:

grant all privileges on *.* to root@"113.123.123.1" identified by "123456789";

@ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,
如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了) 

原文地址:https://www.cnblogs.com/an-ning0920/p/13162257.html