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 参考文档