0
点赞
收藏
分享

微信扫一扫

【LeetCode】力扣364.周赛题解

十日十月Freddie 2023-09-26 阅读 9

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添加用户、删除用户、授权及撤销权限

举报

相关推荐

0 条评论