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:\win7soft\mysql-5.7.14-winx64\data
3、将D:\win7soft\mysql-5.7.14-winx64\bin路径添加到path中
4、再bin目录下复制my-default.ini为my.ini添加或者修改如下配置:
basedir = D:\win7soft\mysql-5.7.14-winx64
datadir = D:\win7soft\mysql-5.7.14-winx64\data
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:\win7soft\mysql-5.7.14-winx64\bin
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数据库了)