2021年11月01日 00:15
原创作品,转载时请务必以超链接形式标明文章原始出处,否则将追究法律责任。

每年的这个季节,应该是看红叶的时候,可是今年雨水太多,再加上疫情,老家也回不去,秦岭也不让进,看什么红叶,还是待家里别到处跑。引用豪哥的一句名言:我现在没有心情听他们什么狗屁爱情浪漫爱情故事,我现在只想搞钱, 我们光羡慕他们有什么用 ,我们要行动起来 我们要变得比他们更有钱!没办法人到中年就想钱,没钱寸步难行。

image.png

今天我们来看一下在docker 容器连接mariadb,首先我们在linux机器安装mariadb

yum install mariadb-server

安装完成后启动

systemctl start mariadb

启动起来后,我们进行安全方面的设置,输入命令

mysql_secure_installation

然后我们根据提示进行密码等安全方面的设置

Enter current password for root (enter for none): -输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
Set root password? [Y/n]  -设置密码,y
New password:  -新密码
Re-enter new password:  -再次输入密码
Remove anonymous users? [Y/n]  -移除匿名用户, y
Disallow root login remotely? [Y/n]  -拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Remove test database and access to it? [Y/n]  -删除test数据库,y:删除。n:不删除,数据库中默认会有一个test数据库
Reload privilege tables now? [Y/n]  -重新加载权限表

进行完这些配置之后,我们新建一个数据库和一张表,脚本如下

CREATE DataBase personalsite
CREATE TABLE techarticlereview(
   id INT NOT NULL AUTO_INCREMENT,
   articleId VARCHAR(50) NOT NULL,
   content VARCHAR(1000),
   indate Datetime,
   PRIMARY KEY ( id ));

注意这里我们使用命令mysql -u root -p进入mysql管理工具,需要输入上面安全配置设置的密码

image.png

这里呢,我们直接进入刚才创建的数据库,使用desc 命令查看表结构是否已经创建

image.png

看起来没有任何问题,我们插入几条数据试试

insert into techarticlereview(articleId ,content ,indate) values('1','.net is a very excellent platform','2021-10-30 23:22:09');
insert into techarticlereview(articleId ,contents ,tags ) values('2','spring boot is very easy to build rest service','.2021-10-31 20:22:09');

插入测试数据以后,我们查询看看是否已经成功

image.png

OK,测试数据已经造好。接下来就到我们的镜像了,前面有一篇我讲了windows 上sprintboot+mysql,由于本次是docker部署,所以我们需要改一些东西。

  • 第一,改mysql密码和ip地址,因为容器和宿主机的IP是不一样的,不能用localhost,修改项目application.properties文件

    spring.datasource.url=jdbc:mysql://xxx.xx.0.1:3306/personalsite

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

    spring.datasource.username=root

    spring.datasource.password=xxxx@xxxxx  --在mysql安全配置时设置的密码

    这个ip地址当然我们是要去linux上去看了,输入命令ifconfig查看,没错就是docker0下面的IP地址

    image.png

  • 接下来就是镜像了,由于前几篇已经讲过镜像,我这里就跳过,镜像的名称为spring-mariadb

我们启动一个容器运行这个镜像,启动起来的镜像如下,端口我们给8085image.png

ok,接下来就是见证奇迹的时刻,no,还有一步没有做,就是如下命令

 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
 mysql>flush privileges;
- *.* 对所有数据库和表有效
- "root" "123456" 分别是数据库用户名和密码
- '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定一些IP,比如:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY '123456' WITH GRANT OPTION;   
- flush privileges 刷新权限信息

允许了之后,127片段的IP才能访问mysql,我们打开8085端口的swagger找个api试一下,我们尝试一下获取所有评论的api

image.png

ok,来个get请求,看看是不是可以请求到刚才我们插入mysql的数据

image.png

OK,至此我们在docker中请求宿主机的mysql就算成功了,后面我会搭建solr,Hbase集群来结合springboot做demo来写文章。

发表评论
匿名  
用户评论
暂无评论