服务器配置Mysql, Redis, ELK

Mysql

1.连接远程Mysql

Error:Client does not support authentication protocol requested by server; consider upgrading MySQL cli

服务器安装好mysql之后,并导入数据库表之后,在本地使用NavicatMysql进行连接时发现连接不上。

这是由于服务器上的mysql的root权限只允许本机登录,因此需要开放服务器端mysql远程登录的权限。

参考blog: https://blog.csdn.net/a648119398/article/details/122420906

mysql -uroot -p  # 以root登录数据库
use mysql;    ## 选择mysql数据库
select user,host from user;    ## 查看用户访问端口
update user set host = '%' where user = 'root'; # 修改root允许任何ip访问
FLUSH PRIVILEGES;    ## 刷新服务配置项
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ## 授权root远程登录 后面的123456代表登录密码

如何还是连接不上,去看看服务器的防火墙中3306端口有没有开放!

Redis

1.TTL自动过期问题

在redis中存入数据,并对key设置过期时间后,发现没有到过期时间,其key就被删除了,这是什么原因?

原因如下:

redis.conf文件中可能注销了reqirepass这一行了,也就是你没有设置你的redis的密码。

所有取消注释,并设置你的redis访问密码即可!

2.redis跨域访问

# bind 127.0.0.1 ::1 注销掉这行,或者bind 你的服务器ip
supervised no # yes改为no
daemonize yes  # 这里改为yes
requirepass pangqiaofang  # 这里改为你的密码

然后让redis.conf生效并重启redis即可

source redis.conf

ElasticSearch

1.安装ELK

Docker安装ELK

pull elasticsearch

# 安装完docker之后,通过docker拉取
# 不安装docker的话,自己去下载安装包,然后解压安装
# 注意的是,ELK版本必须对应着安装
docker pull elasticsearch:7.12.1  # 拉取elasticsearch

docker network 
docker run -d --name elasticsearch --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1  # 运行es

# 进入容器查看配置文件
docker exec -it es /bin/bash

# 查看配置文件
cd config

# 将配置文件拷贝一份出来,到自己的home目录下(或者别的目录,这里只是为了方便编辑)
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /home/es/config/

# 打开配置文件,修改配置
cd /home/es/config
vim elasticsearch.yml
# 在配置文件中添加以下4行

在这里插入图片描述

# 然后将修改后的配置文件,复制回原路径
docker cp /home/es/config/elasticsearch.yml es:/usr/share/elasticsearch/config/elasticsearch.yml 
# 配制密码
docker exec -it elasticsearch /bin/bash
# 进入bin目录后,执行以下命令
./elasticsearch-setup-password interactive
# 然后输入密码如123456
# 然后重启es
docker stop elasticsearch
docker start elsaticsearch

访问域名:9200看看能不能看到es的信息

pull kibana

docker pull kibana: 7.12.1

# 运行kibana, --net需要跟es是同一个
docker run -d --name kibana --net elk -P -e "ELASTICSEARCH_HOSTS=http://[你es的ip]:9200" -e "I18N_LOCALE=zh-CN" kibana:7.12.1

# 修改配置文件,也是先拷贝一份出来

docker cp kibana:/usr/share/kibana/config/kibana.yml /home/kibana/

在这里插入图片描述

# 配置es的ip和用户名密码, 然后把配置写回原位置
docker cp /home/kibana/kibana.yml kibana:/usr/share/kibana/config/kibana.yml 
# 然后重启kibana

IK分词器

github下载对应版本的ik-analysis

https://github.com/medcl/elasticsearch-analysis-ik/releases?page=6

下载完成后,通过xftp上传到服务器,然后解压到指定文件夹, 然后复制到elasticsearch的plugins文件夹下面

unzip elasticsearch-analysis-ik-7.12.1.zip /home/ik

# 复制
docker /home/ik elasticsearch:/usr/share/elasticsearch/plugins/

# 然后重启es

2.springboot连接elasticsearch

elasticsearch的官方文档,很重要!!!参照官方来弄是最好的

https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/connecting.html#_your_first_request

一开始参考的别人的blog,但是由于es7.x之后弃用了很多东西,所以就一直没有配置成功,还是参考官方的好!!!

这里搞了一天,开始没注意版本的问题还是挺让人头疼的,首先我们要注意的是,需要自己去查一下安转的es的版本与springboot的版本是否对应。

https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.metadata

在这里插入图片描述

然后导入依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>7.17.9</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.3</version>
</dependency>

在这里插入图片描述

配置连接:

@Configuration
public class ElasticSearchClientConfig {

    @Bean
    public RestClientBuilder restClientBuilder(){
       	// 这里是带密码的es, 如果你的es是在本地并且没有设置密码,那么就可以参照官方的这一段代码
        /**
        RestClient restClient = RestClient.builder(
    		new HttpHost("localhost", 9200)).build();
        **/
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("elastic", "123456"));  // 这里需要写你的elasticsearch的用户名和密码
        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))  // 这里的localhost换成你的服务器ip地址
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(
                            HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder
                            .setDefaultCredentialsProvider(credentialsProvider);
                    }});
        return builder;
    }
}

测试:

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private RestClientBuilder restClientBuilder;  // 能点过去自己写的配置文件

    @Test
    void contextLoads() {

    }

    @Test
    void testCreateIndex() throws IOException {
        // 测试连接
//        RestClient build = restClientBuilder.build();
//        System.out.println(build.isRunning());
        //  创建索引请求
        RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
        CreateIndexRequest requests = new CreateIndexRequest("pqf_index");  // 你的索引的名字
        CreateIndexResponse response = restHighLevelClient.indices().create(requests, RequestOptions.DEFAULT);
        System.out.println(response);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值