MySQL 最新版的数据库和之前的数据库, 在安装方面有些许差别
1. 首先去官网下载安装包
下载地址: https://dev.mysql.com/downloads/mysql/
MySQL 下载
2. 解压到安装目录 D:\MySQL\MySQL-8.0.16-winx64
image.PNG
3. 创建 my.INI 和 MySQL 数据的存放路劲 data
image.PNG
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. 添加环境变量
image.PNG
然后: 在 path 中添加 %MYSQL_HOME%\bin
5: 以管理员的身份打开 cmd 窗口跳转路径到: D:\MySQL\MySQL-8.0.16-winx64\bin
5.1 初始化命令
mysqld --initialize --user=MySQL --console
5.2 初始化完成之后, 会生成一串随机密码
image.PNG
5.3 接着就是输入 安装命令进行服务的添加
- mysqld -install
- # 服务删除命令
- # sc delete 服务名称
image.PNG
5.4 启动服务
输入
net start MySQL
启动服务
image.PNG
5.5 登录数据库
输入
MySQL -u root -p
进行登录数据库, 这时提示需要密码, 然后就是用你上面的随机密码登录 (,f*9NlbqKm*u)
image.PNG
成功进入数据库
5.6 修改密码语句:
ALTER USER root@localhost IDENTIFIED BY '123456';
修改密码为: 123456
6 安装成功之后进入数据库
6.1 使用 Navicat 连接 报错
image.PNG
6.2 查询资料发现:
image.PNG
由于新版本的数据库密码加密方式和老版本的不同, 为了保证能使用 navicat 正常连接, 需要修改 MySQL 的加密方式
- use MySQL;
- select user,plugin from user where user ='root';
- ![image.PNG](https://upload-images.jianshu.io/upload_images/9811187-cca45f7244f8e54f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)
更改加密方式: 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 分别执行后如下, 重新执行查询结果如下, 加密方式已经该改变.
image.PNG
6.4 重新打开 Navicat Premium 12, 可连接成功.
image.PNG
6.5 然而, 使用内网 ip 不能连接, 继续修改
6.5.1 创建一个新用户用于远程访问
- # 先查看下当前的用户
- use MySQL;
- select user,host,plugin from user;
image.PNG
6.5.2 创建新用户
CREATE USER 'new_user'@'%' IDENTIFIED BY 'passwd';
6.5.3 在执行刚刚的查询语句查看一下用户
select user,host,plugin from user;
image.PNG
多了一个我们刚刚添加的用户 这里 host 是 % 代表可以任意 ip 访问 plugin 一定是 mysql_native_password 不然客户端连接不了 (此处不是, 需要修改, 执行之前的更改方式), 详见: 6.2
image.PNG
6.5.4 最终给用户赋权限 操作数据库的权限, 这里我赋的是全部的权限
GRANT ALL ON *.* TO 'remote'@'%';
6.5.5 最后刷新权限
flush privileges;
image.PNG
至此! 完成!
image.PNG
来源: http://www.jianshu.com/p/9e4ee889e1f6