雁过请留痕...
代码改变世界

mysql5.7.20安装

2018-03-21 18:14  xiashengwang  阅读(9217)  评论(0编辑  收藏  举报

MySQL 的官网下载地址:http://www.mysql.com/downloads/

 一、各版本的区别

1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4. MySQL Cluster CGE 高级集群版,需付费。
5. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。

我选择MySQL Community Server,下载的文件为mysql-installer-community-5.7.21.0.msi,这个是windows图形界面的离线安装方式,可以免去很多直接解压安装方式的配置。

二,安装(windows安装包安装)

1,点击mysql-installer-community-5.7.21.0.msi安装

如果出现下面的提示框,表明安装程序需要.Net Framework4.5.2的安装环境,我的Win7里面没有这个环境。

按提示在这里下载.Net Framework4.5.2的安装包:https://www.microsoft.com/en-us/download/confirmation.aspx?id=42642

 下载的文件为:NDP452-KB2901907-x86-x64-AllOS-ENU.exe,先安装这个文件。

2,点“接受”,Next

3,选“Server Only”,Next, 我只想安装服务器,你也可以选第一个Developer Default,这样Sever和Client的所有组件都会安装。

4,显示还需要一个C++ 2013 安装环境

 5,点“Excute”试图自己解决失败,原因是我没有联网,这个环境只能先去下载

需要ViusalC++ 2013 的环境,点Execute会失败,原因是我是断网的状态,访问不了外网。点Cancel退出。

可以在这里下载安装vcredist_x86.exe,注意是x86的这个,即使你是64位系统也要这个。 https://www.microsoft.com/en-gb/download/confirmation.aspx?id=40784

 6,安装完上面的后,重新执行点击mysql-installer-community-5.7.21.0.msi安装包安装

7,出现“Complete”,代表安装成功了,接下来进入配置步骤,点“next”

 8,点“Next”

9,点“Next”

 10,选“Server Machine”,如果我们是本机调试开发,可选这个“Development Macine”,“Server Machine”的内存需求更大,用于部署环境,应对多客户端的访问,点“Next”

 11,输入root用户的密码

 12,默认选项即可,你也可以适当修改。点“Next”

13,这一步可以不勾选,主要是用于NoSqL的支持,如果项目没有用,那就没有必要,我把它选了,点Next

 14,点“Excute”开始配置

15,安装完成

16,验证是否成功

 开始菜单--》Mysql--》MySql Server5.7-->MySQL 5.7 CommandLine Client

输入刚才root的密码

show databases命令,显示默认的4个数据库

到此安装结束。

17,注意,这种方式安装后,mysql的数据库文件存储地址在win7的C:\ProgramData\MySQL\MySQL Server 5.7 这个位置,并没有在Program Files的安装目录下面。

三,其他功能安装

1,如需要mysql的其他功能,可以重复利用上面那个安装包,安装其他功能。如客户端连接工具,各种编程语言用的连接驱动,说明文档,sample例子等。

2,压缩版的安装步骤

1)下载mysql-5.7.21-winx64.zip,解压到D:\mysql-5.7.21-winx64

2)将D:\mysql-5.7.21-winx64添加到path变量

3)在D:\mysql-5.7.21-winx64下面新建一个data目录

4)D:\mysql-5.7.21-winx64新建一个my.ini,内容为:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
# 设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=D:\mysql-5.7.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-5.7.21-winx64\data
# 允许最大连接数
max_connections=200
# 设置mysql服务端默认字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB 

5)初始化数据库目录,并且root的密码初始为空。

  mysqld --initialize-insecure --user=mysql

如果这一步出现下面这样的错,那可能上面那个ini文件的内容保存的编码有问题。

把里面的汉字用英文替换掉,或者干脆去掉注释,ANSI编码再次保存。 

[mysql]
# set mysql client charset
default-character-set=utf8 
[mysqld]
# set port to 3306
port = 3306 
# set basedir
basedir=F:\StoreHouse\Sofeware\MySQL Server 5.7
# set database dir
datadir=F:\StoreHouse\Sofeware\MySQL Server 5.7\data
# max connections
max_connections=200
# set mysql server charset
character-set-server=utf8
# default engine
default-storage-engine=INNODB 

 6)安装服务:mysql3306

mysqld install mysql3306

7)启动服务

net start mysql3306

8)登录mysql

mysql -u root -p

备注:此时密码为空。

9)修改密码为root

mysql> set password=password('root');

到此结束

更多参考:

https://blog.csdn.net/we_are_the_world_123/article/details/79230537

 四,开启远程访问

1,查看数据库用户

可以看出root用户只能localhost访问。

2,添加或修改root用户的host字段,这里选择添加一条,让root可以从任何机器登录。‘%’代表任何,也可以是ip地址,限定某一台机器,或一个ip段,grant语句可以对用户进行权限设置,如用户不存在就创建一个新用户。

grant all privileges on *.* to 'root'@'%' identified by '12345' with grant option;
flush privileges;

可以看到多出一条root  %的记录。这时如果防火墙开启了,依然不能远程连接。

其他的一些用户创建,授权,删除

参考:https://www.cnblogs.com/xujishou/p/6306765.html
一. 创建用户:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';

        CREATE USER 'dog2'@'localhost' IDENTIFIED BY '';

远程连接要将"localhost"改为"%",表示在任何一台电脑上都可以登录

二.授权:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON mq.* TO 'dog'@'localhost';.创建用户同时授权
mysql> grant all privileges on mq.* to test@localhost identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

PS:必须执行flush privileges; 

否则登录时提示:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES ).设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

例子: SET PASSWORD FOR 'dog2'@'localhost' = PASSWORD("dog");.撤销用户权限
      命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

     说明: privilege, databasename, tablename - 同授权部分.

      例子: REVOKE SELECT ON mq.* FROM 'dog2'@'localhost';

PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.

      具体信息可以用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看..删除用户
      命令: DROP USER 'username'@'host';.查看用户的授权
mysql> show grants for dog@localhost;

3,关闭windows的防火墙,或是添加一条tcp的入站规则,允许端口3360。

到此为止,就可以通过Mysql服务器的ip地址,root用户名远程访问了。