mysql最新版的数据库和之前的数据库,在安装方面有些许差别
1. 首先去官网下载安装包
下载地址:https://dev.mysql.com/downloads/mysql/
2. 解压到安装目录 D:\MySQL\mysql-8.0.16-winx64
3. 创建my.ini和mysql数据的存放路劲data
my.ini的代码如下
[mysqld]
#绑定IPv4,如果是0.0.0.0则表示任意IP都可以访问,也可以指定可以访问的IP
bind-address = 0.0.0.0
# 设置mysql的安装目录,即你解压缩安装包的位置
basedir = D:\MySQL\mysql-8.0.16-winx64
# 设置mysql数据库的数据的存放目录
datadir = E:\development\MYSQL\data\8.0
# 设置端口号
port = 3306
# 回收空闲连接的时间
wait_timeout = 86400
# 允许最大连接数
max_connections = 200
# 数据库 写入的 数据包 最大值
max_allowed_packet = 512M
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 设置字符集为utf8
loose-default-character-set = utf8
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
#开启查询缓存
explicit_defaults_for_timestamp = true
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# mysql 8.0 以上默认的密码加密方式
default_authentication_plugin = mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
4. 添加环境变量
然后:在path中添加%MYSQL_HOME%\bin
5:以管理员的身份打开cmd窗口跳转路径到:D:\MySQL\mysql-8.0.16-winx64\bin
5.1 初始化命令
mysqld --initialize --user=mysql --console
此处如果报错
error: Found option without preceding group in config file: D:\MySQL\mysql-8.0.16-winx64\my.ini at line: 1
Fatal error in defaults handling. Program aborted
原因:my.ini文件格式是utf-8
解决办法,my.ini文件保存为ANSI格式文件
5.2 初始化完成之后,会生成一串随机密码
5.3 接着就是输入 安装命令进行服务的添加
mysqld -install
# 服务删除命令
# sc delete 服务名称
5.4 启动服务
输入
net start mysql
启动服务
5.5 登录数据库
输入
mysql -u root -p
进行登录数据库,这时提示需要密码,然后就是用你上面的随机密码登录(,f*9NlbqKm*u)
成功进入数据库
5.6 修改密码语句:
ALTER USER root@localhost IDENTIFIED BY '123456';
修改密码为:123456
6安装成功之后进入数据库
6.1 使用Navicat 连接 报错
6.2查询资料发现:
由于新版本的数据库密码加密方式和老版本的不同,为了保证能使用navicat正常连接,需要修改mysql的加密方式
use mysql;
select user,plugin from user where user ='root';
更改加密方式:ALTER USER'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新用户密码:ALTER USER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
刷新权限:FLUSH PRIVILEGES;
6.3 分别执行后如下,重新执行查询结果如下,加密方式已经该改变。
6.4 重新打开Navicat Premium 12,可连接成功。
6.5 然而,使用内网ip不能连接,继续修改
6.5.1 创建一个新用户用于远程访问
# 先查看下当前的用户
use mysql;
select user,host,plugin from user;
6.5.2 创建新用户
CREATE USER 'new_user'@'%' IDENTIFIED BY 'passwd';
6.5.3 在执行刚刚的查询语句查看一下用户
select user,host,plugin from user;
多了一个我们刚刚添加的用户 这里host 是 % 代表可以任意ip访问 plugin 一定是 mysql_native_password 不然客户端连接不了(此处不是,需要修改,执行之前的更改方式),详见:6.2
6.5.4 最终给用户赋权限 操作数据库的权限,这里我赋的是全部的权限
GRANT ALL ON *.* TO 'remote'@'%';
6.5.5 最后刷新权限
flush privileges;
至此!完成!