每年的这个季节,应该是看红叶的时候,可是今年雨水太多,再加上疫情,老家也回不去,秦岭也不让进,看什么红叶,还是待家里别到处跑。引用豪哥的一句名言:我现在没有心情听他们什么狗屁爱情浪漫爱情故事,我现在只想搞钱, 我们光羡慕他们有什么用 ,我们要行动起来 我们要变得比他们更有钱!没办法人到中年就想钱,没钱寸步难行。
今天我们来看一下在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管理工具,需要输入上面安全配置设置的密码
这里呢,我们直接进入刚才创建的数据库,使用desc 命令查看表结构是否已经创建
看起来没有任何问题,我们插入几条数据试试
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');
插入测试数据以后,我们查询看看是否已经成功
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地址
接下来就是镜像了,由于前几篇已经讲过镜像,我这里就跳过,镜像的名称为spring-mariadb
我们启动一个容器运行这个镜像,启动起来的镜像如下,端口我们给8085
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
ok,来个get请求,看看是不是可以请求到刚才我们插入mysql的数据
OK,至此我们在docker中请求宿主机的mysql就算成功了,后面我会搭建solr,Hbase集群来结合springboot做demo来写文章。