东方飘雪

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.MySQL版本介绍

2.MySQL下载

 3.MySQL8和MySQL5图形化安装方法

4.MySQL8免安装版(.zip压缩文件)安装方法


 

1.MySQL版本介绍

  • MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。
  • MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
  • MySQL Cluster 集群版,开源免费,用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用。
  • MySQL Cluster CGE 高级集群版,需付费。

 

此外,官方还提供了MySQL Workbench(GUITOOL)一款专为MySQL设计的图形界面管理工具。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。

 

2.MySQL下载

1.官网下载页面:https://www.mysql.com/downloads/     

        下图参考地址:https://blog.csdn.net/KiWi_VC/article/details/128821761

 

 3.MySQL8和MySQL5图形化安装方法

(Windows平台下提供两种安装文件:MySQL二进制分发版(.msi安装文件)免安装版(.zip压缩文件)。一般来讲,应当使用二进制分发版,因为该版本提供了图形化的安装向导过程,比其他的分发版使用起来要简单。)

 下图参考地址:https://blog.csdn.net/KiWi_VC/article/details/128821761

   mysql --version  #查看安装mysql版本(配置好环境变量后dos下)

 

 

 

4.MySQL8免安装版(.zip压缩文件)安装方法

 1. 下载mysql(windows)版本为mysql8.0.28并进行解压到 D:\Software\MySQL8.0.28 路径下。

 2. 配置环境变量 (到bin目录)

 

 3.新建 my.ini配置文件(网上找到,其实还有很多配置,后面再研究吧),放到D:\Software\MySQL8.0.28目录

[mysql]

# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]

interactive_timeout=28800000
wait_timeout=28800000

# 设置3306端口
port = 3306

# 设置mysql的安装目录
basedir=D:\Software\MySQL8.0.28\bin

# 设置mysql数据库的数据的存放目录
datadir=D:\Software\MySQL8.0.28\data

# 允许最大连接数
max_connections=200

# 设置mysql服务端默认字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

#跳过/禁止 DNS解析( 禁用DNS解析,使用ip连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式)(原由:https://bbs.csdn.net/topics/603542998)
skip-name-resolve

 

 

 

4.管理员身份打开dos窗口,进入到   D:\Software\MySQL8.0.28\bin目录(网上说虽然配置了环境变量,但安装时还是要进入\bin目录下执行,否则会报错(未验证)):

1) 安装mysql服务           mysqld --install MySQL --defaults-file="D:\Software\MySQL8.0.28\my.ini"

这个命令是安装服务, 执行完后, 提示英文的成功, 这时候你可以在你的 windows 服务中看到  MySQL 的服务,移除服务命令为:mysqld --remove MySQL

2)初始化及生成/data文件(/data文件是存放数据文件的)  mysqld --initialize

3)启动mysql服务   net start mysql       (停止mysql服务命令是 net stop mysql)

      

4)查找密码  mysql8的版本跟以前5的版本不一样,要找随机生成的初始密码,进入刚刚生成的/data文件夹下,然后找到以.err为结尾的文件,然后搜索 temporary password即可找到初始随机密码

      (这个地方我费了n长时间,重新安装了二次,网上查资料都说初始化时会告知密码,还有就是初始安装没有密码,让数密码时直接回车跳过就行,后来发现原因是版本问题,mysql8的版本密码生成策略跟旧版本不一样,浪费感情)

 

5) 登录 mysql -u root -p  (root用户为安装后的默认用户)(退出登录: quit)    这个地方遇到些问题(问题1)

6)修改密码 alter user 'root'@'localhost'IDENTIFIED BY 'a123456';     刷新权限: flush privileges;

5.新建用户并授权

1.root账号登陆mysql:
 mysql -u root -p;
输入密码后确认;
2.创建数据库(这里不想使用默认创建的mysql数据库,则可新建数据库):
 create database to_dgc_db;
3.创建新用户:
 create user 'mysqltest'@'to_dgc_db' identified by 'a123456';(注意密码安全要求)
4.授权 grant all privileges on to_dgc_db.* to mysqltest@'%' with grant option;(执行此步骤报42000错误 原因是mysql8.0以后版本不能用这个了)
  解决如下:
    use  mysql; #使用mysql数据库
    update user set host='%' where user='mysqltest'; #特定用户的host修改 设置此数据库的访问白名单, host='%'为不受限制
    grant all privileges on to_dgc_db.* to mysqltest@'%'; #指定用户的授权 
   (注意:如限制固定ip访问,则为 update user set host='192.168.1.27' where user='mysqltest';grant all privileges on to_dgc_db.* to mysqltest@'192.168.1.27' ;)
   (注意:all privileges on to_dgc_db.* 表示to_dagc_db数据库所有权限如果要赋予全部数据库的所有权限,可用grant all privileges on *.* to mysqltest@'%';)
 5.刷新权限:  flush privileges; 此时就完成了简单的数据库创建和新用户授权; (注意:上面的单引号复制出来可能会变,在执行脚本的时候需要改成英文状态下的单引号)

 

  授权时报:

  原因是mysql8的版本跟以前的版本有较大差异,网上查找解决办法:https://blog.csdn.net/zhouzhiwengang/article/details/102909298

6.navicat连接mysql数据库

 

    之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,直接去连接Navicat会报错1251

 

     解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 

alter user mysqltest identified with mysql_native_password by 'a123456';#修改mysqltest用户的加密规则,及重新更新密码
alter user root identified with mysql_native_password by 'a123456';#修改root用户的加密规则,及重新更新密码

use mysql
select host,user,authentication_string,plugin from user; #查询mysql的所有用户及密码加密方式

 

 

 ok了

 

 

 

问题1:

之前装过一次是OK的,今天按同样步骤在新服务器上安装,但执行登录 mysql -u root -p 并输入密码后, 报错如下

 网上查到很多,都是其他服务器的地址不在mysql访问白名单内,经过学习总结起来如下:

1):mysql -u root -p   #输入密码登录

2):use mysql;   #切换mysql数据库

3): update user set host = '%' where user = 'root';   #将root用户白名单设置为不限制访问 

       这步执行前 用 SELECT Host FROM mysql.user WHERE User ='root';查询结果如下,发现限制了只有localhost可以去访问数据库,问题根源就在这里。

  因为在我的my.ini有个设置为skip-name-resolve(#禁止DNS解析,即只能ip访问),所以登录时才报上面的不允许访问的错误。

       故先将此句注释掉,重启mysql,就可以使用 mysql -u root -p登录了。然后按照1、2、3、4步骤执行完成,(如还想禁止DNS解析, 可重新设置skip-name-resolve ,重启mysql。就可以了)

 4)  : grant all privileges on *.* to root@'%'; #付权限

 5):FLUSH PRIVILEGES;  #刷新权限

 

   



 

 

posted on 2022-03-25 14:23  东方飘雪  阅读(926)  评论(0编辑  收藏  举报