一、安装包准备
(1)卸载自带的Mysql-libs(如果之前安装过MySQL,要全都卸载掉)
[root@hadoop10 data]# rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
(2)如果是阿里云服务器按照如下步骤执行
说明:由于阿里云服务器安装的是Linux最小系统版,没有如下工具,所以需要安装。
(1)卸载MySQL依赖,虽然机器上没有装MySQL,但是这一步不可少
[root@hadoop10 data]# sudo yum remove mysql-libs
(2)下载依赖并安装
[root@hadoop10 data]# sudo yum install libaio
[root@hadoop10 data]# sudo yum -y install autoconf
二、安装MySQL依赖
[root@hadoop10 module]# mkdir mysql
将安装包和JDBC驱动上传到/data/mysql,共计6个
01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
mysql-connector-java-5.1.27-bin.jar
[root@hadoop10 data]# mkdir mysql
1) 安装依赖
[root@hadoop10 mysql]# sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
[root@hadoop10 mysql]# sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[root@hadoop10 mysql]# sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
2)安装mysql-client
[root@hadoop10 mysql]# sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
3)安装mysql-server
[root@hadoop10 mysql]# sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rp
注意:如果报如下错误,这是由于yum安装了旧版本的GPG keys所造成,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名
warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
解决办法
sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm --force --nodeps
4)启动MySQL
[root@hadoop10 mysql]# sudo systemctl start mysqld
5)查看MySQL密码
[root@hadoop10 mysql]# sudo cat /var/log/mysqld.log | grep password
2023-08-24T13:18:27.891433Z 1 [Note] A temporary password is generated for root@localhost: q_roZ0rwZd6n
三、配置MySQL
配置只要是root用户 + 密码,在任何主机上都能登录MySQL数据库。
1)用刚刚查到的密码进入MySQL(如果报错,给密码加单引号)
[root@hadoop10 mysql]# mysql -uroot -p q_roZ0rwZd6n
2)设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)
mysql> set password=password("123456");
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password=password("Aa@123456");
Query OK, 0 rows affected, 1 warning (0.00 sec)
3)更改MySQL密码策略
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
5)进入MySQL库
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
6)查询user表
mysql> select user, host from user;
7)修改user表,把Host表内容修改为%
mysql> update user set host="%" where user="root";
8)刷新
mysql> flush privileges;
9)退出
mysql> quit;
四、生成业务数据
1)在hadoop102的/opt/module/目录下创建db_log文件夹
[atguigu@hadoop102 module]$ mkdir db_log/
2)把gmall2020-mock-db-2021-11-14.jar和application.properties上传到hadoop102的/opt/module/db_log路径上。
3)根据需求修改application.properties相关配置
logging.level.root=info
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://hadoop10:3306/gmall?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=Aa@123456
logging.pattern.console=%m%n
mybatis-plus.global-config.db-config.field-strategy=not_null
mybatis.mapperLocations=classpath:mapper/*.xml
#业务日期
mock.date=2020-06-14
#是否重置,首日须置为1,之后置为0
mock.clear=1
#是否重置用户,首日须置为1,之后置为0
mock.clear.user=1
#生成新用户数量
mock.user.count=200
#男性比例
mock.user.male-rate=20
#用户数据变化概率
mock.user.update-rate:20
#收藏取消比例
mock.favor.cancel-rate=10
#收藏数量
mock.favor.count=100
#每个用户添加购物车的概率
mock.cart.user-rate=10
#每次每个用户最多添加多少种商品进购物车
mock.cart.max-sku-count=8
#每个商品最多买几个
mock.cart.max-sku-num=3
#购物车来源 用户查询,商品推广,智能推荐, 促销活动
mock.cart.source-type-rate=60:20:10:10
#用户下单比例
mock.order.user-rate=30
#用户从购物中购买商品比例
mock.order.sku-rate=50
#是否参加活动
mock.order.join-activity=1
#是否使用购物券
mock.order.use-coupon=1
#购物券领取人数
mock.coupon.user-count=100
#支付比例
mock.payment.rate=70
#支付方式 支付宝:微信 :银联
mock.payment.payment-type=30:60:10
#评价比例 好:中:差:自动
mock.comment.appraise-rate=30:10:10:50
#退款原因比例:质量问题 商品描述与实际描述不一致 缺货 号码不合适 拍错 不想买了 其他
mock.refund.reason-rate=30:10:20:5:15:5:5
logging.level.com.atguigu.gmall2020.mock.db.mapper=debug
4)并在该目录下执行,如下命令,生成2020-06-14日期数据:
[root@hadoop10 db_log]# java -jar gmall2020-mock-db-2021-11-14.jar
5)查看gmall数据库,观察是否有2020-06-14的数据出现
五、业务数据建模
六、采集通道
mysql⇒maxwell⇒kafka =》离线数仓hive
mysql⇒maxwell⇒kafka =》实时数仓 flink/spark