MySql安装(Windows版本)

1,下载Mysql

免安装版本:   

https://dev.mysql.com/downloads/mysql/ 

https://downloads.mysql.com/archives/community/

下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:webmysql-8.0.11 下(这里自定义就行,路径中间不要有空格和中文)。

接下来我们需要配置下 MySQL 的配置文件

打开刚刚解压的文件夹 C:webmysql-8.0.11 ,在该文件夹下创建 mysql.ini 配置文件,编辑 mysql.ini 配置以下基本信息:

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\web\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成一个data文件夹存放数据,否则有可能报错
# datadir=C:\web\sqldata    #注意,这行在 8.0+ 版本不需要,系统自动生成
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

2,配置mysql环境变量 

上面安装的是时候我们看到mysql安装路径是:C:mysql-8.0.23-winx64

我的电脑-->右键—>属性-->高级系统设置-->环境变量-->系统变量  

新建 MYSQL_HOME,路径选择mysql 解压目录

 

然后找到 Path 路径,在 Path 变量中添加-->   ;%MYSQL_HOME%in;    

3,接下来我们来启动下 MySQL 数据库:

以管理员身份打开 cmd 命令行工具,切换目录:

cd C:mysql-8.0.23-winx64in

初始化数据库: (此时会生成data目录)

mysqld --initialize --console

执行完成后,会输出 root 用户的初始默认密码,如:

...
2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ
...

APWCY5ws&hjQ 就是初始密码,root 是用户名,后续登录需要用到,你也可以在登陆后修改密码

输入以下安装命令:mysql 可以省略不写,默认名字就是 mysql

mysqld --install mysql

要启动 输入以下命令即可:

net start mysql

如果初始化失败(没有出现密码即为失败)
则依次执行:
net stop mysql (停止运行)
mysqld --remove mysql (移除安装)
手动删掉 data文件夹   重新安装
(忘了密码可以手动删掉data文件夹重新初始化)

登录 MySQL

当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:

mysql -h 主机名 -u 用户名 -p

参数说明:

  • -h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
  • -u : 登录的用户名;
  • -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:

mysql -u root -p

按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:

Enter password:

退出登陆   exit;  (要带分号)

修改密码 

执行如下命令修改密码,例如:修改新密码为:  123456

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges; #每次修改数据之后都要执行该句命令
注意:注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

退出之后,用新密码重新登陆,成功登陆!

其他命令

在user表中创建账号

create user 'root'@'%' identified by 'root123';

查看数据库中的用户权限表

select host, user, authentication_string, plugin from user;

如果查看user表的root用户Host字段是 localhost,说明root用户只能本地登录,

现在把他改成远程登录,执行如下命令,将localhost 修改为  %  符号

update user set host='%' where user='root';

给指定IP授权远程访问,localhost 指只允许本地访问,

#localhost 表示只允许本地访问 
grant all privileges on *.* to 'root'@'localhost' with grant option;
# 允许所有 ip 远程访问(危险!) grant all privileges on
*.* to 'root'@'%' with grant option;

在另外一台服务器上,使用 Navicat 连接 Mysql 8.0 +版本的服务,出现如下错误!

查找问题后发现

MySQL8.0 之前的版本密码加密规则:mysql_native_password,

MySQL8.0 密码加密规则:caching_sha2_password

把mysql用户登录密码加密规则还原成 mysql_native_password. 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;   #刷新命令  这样就无需重启服务

远程客户端重新链接

如果因为防火墙的问题导致连接不上,需要添加入站规则,设置 3306 端口

参考文档:

https://www.runoob.com/mysql/mysql-install.html  安装文档

https://www.runoob.com/w3cnote/windows10-mysql-installer.html   Windows下安装文档

https://blog.csdn.net/id145/article/details/103114904   参考文档

作者:PeterZhang
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/peterzhang123/p/14677559.html