方法/步骤
1.下载。下载windows64版本的。如图所示。
2.解压,将下载下来的文件解压到磁盘,我解压到c盘,如图所示。
3.配置默认文件
在安装目录下,新建一个my.ini文件,然后写入如下代码。
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\mysql-5.7.18-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql-5.7.18-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
4.安装mysql服务
以管理员身份打开cmd,将目录切换到bin目录下,输入mysqld install ,注意是是mysqld,不是mysql。
如果你是新的操作系统,有可能会出现如下的错误提示。
按照它的提示,我们去下载一个MSVCP120.dll,或者直接从其他计算机的windows/system32(syswow64)中复制一个过来。放入相应文件夹(同时放入system32,syswow64)。然后再次输入mysqld install,发现出现如下错误。
解决方法同上
然后又出现
这时候我们需要下载DirectX修复工具(增强版),修复即可,注意,需下载增强版,这样可以修补系统相关的C++组件。
下载地址:http://www.pc6.com/softview/SoftView_57945.html
在修复期间可能需要重启计算机。
5.安装成功以后就可以启动mysql了,输入以下命令net start mysql。一般情况你可能会遇到这个错误。
原因是mysql目录下并没有data文件夹,而我们的配置文件里面有写,所以需要先初始化,输入以下命令。mysqld --initialize。但是很有可能你又会遇到如下的问题。
凭我的直觉,这是my.ini的编码格式的问题,将它的编码格式改为ANSI,再次输入mysqld --initialize。
又遇到如下错误
猜测是因为之前运行mysqld --initialize的时候已经生成了一个data文件夹,所以会出错,删除这个data文件夹,再次运行mysqld --initialize。终于不报错了。
然后再运行net start mysql
又出问题了.
估计是因为之前的某一次操作不小心启动了mysql服务,但是并未启动成功。只能来暴力的,直接从任务管理器停掉mysql.exe这个进程,然后再次运行net start mysql。
这样就启动成功了。
6.接下来我们在系统变量path中加入mysql的环境变量,就不用每次都要进入mysql的bin目录下了。具体的添加方法类似于java环境变量,此处不赘述。
7.使用mysql,输入命令mysql -uroot -p,对于低版本的mysql应该是可以直接进入的,但是高版本的mysql会有一个初始的密码,你需要输入初始密码才能进入。
但是我们怎么知道初始密码呢?
不知道,所以需要采用以下方法来绕过这个限制。
(1)编辑mysql配置文件my.ini(不知道在哪请搜索),在[mysqld]这个条目下加入
skip-grant-tables
(2)、重启mysql服务(net stop mysql,然后net start mysql)
(3).进入mysql数据库:输入mysql
(4).mysql> use mysql;
Database changed
蓝色部分自己输入:
mysql> update user set authentication_string=password("新密码") where user="root";
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
退出exit 就行了。记住直接关闭cmd窗口是没有退出的,要输入exit才会退出啊。
9.我们将之前在my.ini中加入的skip-grant-tables去掉,保存然后重启以后,再次想要直接进入mysql就不行了,必须使用mysql -uroot -p,要求输入密码以后才可以。
10.但是当我们需要访问其中的数据库时,比如我输入use mysql的时候,它又提醒我需要修改 密码,如下。
修改就修改,键入如下代码。
然后退出,重新登录。登录以后再次键入use mysql,发现就可以了。
10.然后我们修改一下root的权限,让他可以允许远程访问。
update
user
set
host =
'%'
where
user
=
'root'
;
flush privileges;
这样我们就可以在本地使用诸如sqlyog这样的软件来操纵服务器的数据库了。
11.当我们在项目中一般不会用root这个账号,我们可以新建一个自己的账号,用这个账号来进行数据的增删改查,并且只赋予该账号增删改查这四种权限。这时候可以这样做。
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
这是给了pig这个账号远程访问的权限,并且设定初始密码为123456。
但是有时候添加了新用户,在项目里面还是继续报错。
Access denied for user 'xdx'@'125.77.212.21' (using password: YES)
那是因为没有刷新,添加如下语句即可。
mysql> flush privileges;
这个语句可以在不重启mysql的情况下将用户信息和权限设置刷新到内存中。当然你也可以重启mysql.
其他补充:
1.有时候在安装完成,输入net stat mysql的时候,会报错:找不到指定文件。这可能是因为你之前有安装过旧的mysql,卸载完成以后。但是他在注册表的信息(路径)还是原来旧的路径,所以新的mysql就找不到那个文件。
只需要打开注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQL。然后修改其中的ImagePath,改成你新的安装路径,然后重启mysql服务就可以了。
2.有时候我们在用工具(sqlyog等)远程连接mysql的时候,明明什么都填写正确了,但是无法连接,这时候要看看服务器的3306端口是否有开启。
3.有时候我们设置了新的用户,但是发现该用户只具有对information_schema这个表的权限,那是因为你没有赋予权限给它,输入以下代码可以赋予xdx用户在所有表上增删改查权限。
use mysql;
grant select,update,insert,delete on *.* to 'xdx'@'%';
具体的赋权限的知识点可参考博客中其他文章。