MySQL 8 0 填坑历险之安装与基本用户权限

MySQL 8.0 填坑历险之安装

MySQL 是当下流行的关系型数据库,搜掠了各种文章,多少有些偏差,为此来分享下我的经历;

安装环境

环境版本备注
Ubuntu 18.0418.04.6 LTS (Bionic Beaver)Linux
Kernel5.4.0-42-generic
MySQL 8.0.23mysql-server_8.0.23-1ubuntu18.04_amd64.deb-bundle.tarhttps://downloads.mysql.com/archives/community/
Navicat premiu 1515.0.17MySQL 客户端

安装步骤:

1、下载MySQL Debian and Ubuntu deb 安装包,然后解压文件:

tar -xvf mysql-server_MVER-DVER_CPU.deb-bundle.tar

2、安装依赖库:

sudo apt-get install libaio1

3、预配置MySQL config,通过预配置设置Root密码,注,MySQL 8.0 采用了新的加密方式,与Ubuntu 18.04 存在密码兼容问题,为此需要选择旧版密码策略,如下所示 :

sudo dpkg-preconfigure mysql-community-server_*.deb

在这里插入图片描述
4、通过Deb 安装包,安装MySQL 服务:

sudo dpkg -i mysql-{common,community-client-plugins,community-client-core,community-client,client,community-server-core,community-server,server}_*.deb

如果提示错误或警告缺少依赖(如libmecab2),可以通过如下去解决:

sudo apt-get -f install

5、验证MYSQL 安装,

$ mysql -V
mysql  Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)

在这里插入图片描述

6、常用配置文件和默认数据目录:

/etc/mysql: 所有配置文件目录
/usr/bin and /usr/sbin  :所有二进制文件、库文件等目录
/var/lib/mysql  # 所有数据文件和默认log 目录(通用日志、二进制binary log等)

7、修改Root 允许远程登录,注生成环境根据权限创建用户授权,当前仅是测试条件:

# 登录MySQL 服务
> mysql -u root -p
切换Database 为mysql:
> use mysql;
## 修改root 用户连接权限,允许从任意host连接server
> UPDATE `user` SET HOST = '%' WHERE USER = 'root';
## 刷新权限
> FLUSH PRIVILEGES

测试,使用客户端连接MySQL:
在这里插入图片描述### 安装遇到的问题:

1、安装后一直无法登录,提示ACCESS Denied:

解决方式:未调整允许Root 使用密码登录,参考步骤 7,;

2、Error: dpkg frontend is locked by another process 由于Update或其他的更新导致locked:

解决:

  1. 找到正在locking 的进程的PID:

    lsof /var/lib/dpkg/lock-frontend
    
  2. 强制kill 掉Locking PID:

    sudo kill -9 PID
    
  3. 移除lock 记录文件,重新配置dpkg:

    sudo rm /var/lib/dpkg/lock-frontend
    sudo dpkg --configure -a
    

3、Ubuntu 18.04 localhost 使用Root 无法正常登录,

解决:参考步骤3;

MySQL 用户权限操作命令:

1、重置Root 密码:

ALTER user 'root'@'%' IDENTIFIED BY 'mysql@cool';

2、查询用户
在这里插入图片描述

3、创建新的MySQL 用户:

CREATE USER 'mysql01'@'%' IDENTIFIED WITH mysql_native_password BY "mysql01a"
> OK
> 时间: 0.004s

4、授权用户数据库权限,注意grant,revoke 调整用户权限后,该用户需要重新连接MySQL数据库,新权限才会生效;

# 授权用户所有Database 所有权限
GRANT ALL PRIVILEGES ON *.* TO 'mysql01'@'%'
> OK
> 时间: 0.004s

## 授权mysql02 仅有demo database 所有表权限常用权限:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON demo.* TO 'mysql02'@'192.168.161.128'
> Affected rows: 0

在这里插入图片描述
测试通过指定host 连接MySQL:
在这里插入图片描述

测试用户mysql02 数据库权限,无法访问系统 mysql 数据库,如下所示:

mysql> select * from demo.record;
+---------+-----------+-------+
| barcode | goodsname | price |
+---------+-----------+-------+
| 001     | book      | 86    |
| 002     | pen       | 98    |
+---------+-----------+-------+
3 rows in set (0.00 sec)

mysql> select * from mysql.user;
ERROR 1142 (42000): SELECT command denied to user 'mysql02'@'192.168.161.128' for table 'user'

查看授予用户的权限:

-- 查询对mysql01的授权
SHOW GRANTS FOR 'mysql01'@'%';
SHOW GRANTS FOR 'mysql02'@'192.168.161.128';

参考:

1、Ubuntu 18.04 安装 MySQL 8.0

2、Installing MySQL on Linux Using Debian Packages from Oracle

3、Error dpkg frontend is locked by another process

4、MySQL 8.0 版本授权 root 远程连接,修改权限,更改加密方式

5、MySQL添加用户、删除用户、授权及撤销权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值