1. Mysql的安装及开启log-bin
1.1. Mysql的安装
Mysql的安装可采用apt-get,安装很简单。
来源:https://blog.csdn.net/weixin_42209572/article/details/98983741
- 安装Mysql:
- 更新软件源:
apt-get update
- 安装Mysql:
apt-get install mysql-server
- 安装期间会要求为root填些密码,填写即可;
- 更新软件源:
- 启动和关闭Mysql:
- 启动:
service mysql start
- 关闭:
service mysql stop
- 启动:
- 确认是否启动成功:
- 节点是否处于LISTEN状态:
netstat -tap | grep mysql
- 节点是否处于LISTEN状态:
- 进入mysql shell界面:
- 使用root账号登录:
mysql -u root -p
,再输入密码即可;
- 使用root账号登录:
- 可能需要解决使用sqoop导入中文的问题:
- 第一步:进入mysql shell界面;
- 第二步:输入
show variables like "char%";
,确认返回的character_set_server=latin1
,如果是,则需要修改; - 第三步:修改办法,
vi /etc/mysql/mysql.conf.d/mysqld.cnf
,在[mysqld]下面添加一行character_set_server=utf8
,然后重启Mysql服务即可service mysql restart
; - 第四步:重复第二步确认已修改成功;
- 外网连接数据库的配置:
- 配置阿里云的安全规则,放开3306窗口;
- 在配置好1之后,外网连接数据库会返回
Host x.x.x.x is not allowed to connect to this MySQL server
,此时需要登陆Mysql Shell界面,更改其内设置:- 查看数据库:
show databases;
- 进入mysql表:
use mysql;
- 更新root账号的连接权限:
update user set host=‘%‘ where user=‘root‘;
(因为数据库默认设置只允许本地程序进行连接,即host=‘localhost‘
,为了让其它主机也可以访问,需要将其更改为host=‘%‘;
)
- 查看数据库:
1.2. log-bin的开启
1.3. log-bin的作用
- 记录数据库的增删改操作;
- 根据log-bin进行回滚(本质上是依赖于1);
1.4. 个人开启log-bin的原因
- 结合数据仓库的Stage层使用,读取业务层Mysql的log-bin,获取增删改记录;
- 为什么要采用读取业务层Mysql的log-bin的方法:因为实际生产中,数仓的Stage层需要从业务层获取数据,如果直接去访问业务层数据库,会增加业务层数据库的计算消耗,故采取此种直接读文件的方法;
1.5. 开启的方法
特别注意:为了开启log-bin,我查阅了不少资料,并且均测试过,均未能成功,报错的原因有几种,主要的是Job for mysql.service failed because the control process exited with error code.
,后面自己尝试出以下这种方法。因为个人认为开启log-bin应该跟系统版本,Mysql版本,安装方法相关,所以使用前先确认这两者跟我的一样,我的是Mysql5.7.31-0ubuntu0.16.04.1
,采取的方法如上。
开启方法的思路来源于Mysql安装的第5步:
- 进入mysql shell界面,,输入
show variables like "%log_bin%";
,会看到如图画面,表示还没有开启bin-log;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5K3m4o36-1600180034354)(./files/mysql开启bin-log1.jpg)] - 输入
vi /etc/mysql/mysql.conf.d/mysqld.cnf
,从文件中可以找到#server-id = 1
和#log_bin=/var/log/mysql/mysql-bin.log
,将注释取消即可(server-id
必须在集群中是唯一值,如果是单机,则可随意设置); - 可以根据自己的需要更改
expire_logs_days
和max_binlog_size
的值; - 重复1,确认
log_bin=ON
,且log_bin_basename
和log_bin_index
均有值,则表示已成功开启;