加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Hive:无法连接到Docker内部的SQL

发布时间:2021-02-24 20:46:35 所属栏目:MySql教程 来源:网络整理
导读:我正在尝试使用hadoop和hive创建一个docker容器.这是我的Dockerfile FROM ubuntu:latestUSER rootRUN apt-get update#RUN apt-get -y install default-jreRUN apt-get install -y python-pip python-dev build-essentialRUN apt-get install -y libmysqlclie

root@c29fa91db6a2:/opt/hive/conf# mysql -uroot -ppassword
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 205
Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu)

Copyright (c) 2000,Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>

我究竟做错了什么?为了在Docker容器内使用配置单元,我还需要做什么?

另外,我看到mysql正在运行

root@7bfa781e1a2c:/opt/hive/conf# ps aux | grep mysql
mysql     1931  0.0  0.0   4624  1768 ?        S    20:19   0:00 /bin/sh /usr/bin/mysqld_safe
mysql     2282  0.2  8.7 1416908 179700 ?      Sl   20:19   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=
root      2594  0.0  0.0  11460  1084 pts/1    S+   20:24   0:00 grep --color=auto mysql
root@7bfa781e1a2c:/opt/hive/conf#
最佳答案 有几个问题需要解决:

> mysql安装随附的默认root用户使用auth_socket作为身份验证插件.这意味着它没有密码.尝试使用mysql -uroot登录,它仍然会登录.

mysql> select * from mysql.userG
*************************** 1. row ***************************
                  Host: localhost
                  User: root
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: auth_socket
 authentication_string:
      password_expired: N
 password_last_changed: 2019-04-03 07:43:20
     password_lifetime: NULL
        account_locked: N

>因此,在mysql中进行任何更改之前,配置单元服务会引发以下错误:

由以下原因引起:java.sql.SQLException:用户’root’@’localhost’的访问被拒绝

>我们需要设置root @ localhost以使用mysql_native_password身份验证,并设置@rajesh提到的密码:

mysql> alter user root@localhost identified with mysql_native_password by 'password';
Query OK,0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK,0 rows affected (0.00 sec)

mysql> q
Bye

>仍然配置单元为我抛出错误,因为未更新加载的mysql模式.所以不得不做Hive 2.1.1 MetaException(message:Version information not found in metastore. )中提到的一些步骤

cd $HIVE_HOME/scripts/metastore/upgrade/mysql/

mysql -uroot -ppassword

mysql> use metastore;
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
mysql> source hive-schema-2.3.0.mysql.sql;

>现在,配置单元开始正常.

2019-04-03T08:58:01,442 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Starting hive metastore on port 9083
2019-04-03T08:58:01,687 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - 0: Opening raw store with implementation class:org.apache.hadoop.hive.metastore.ObjectStore
2019-04-03T08:58:05,535 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Added admin role in metastore
2019-04-03T08:58:05,546 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Added public role in metastore
2019-04-03T08:58:05,594 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - No user is added in admin role,since config is empty
2019-04-03T08:58:05,804 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Starting DB backed MetaStore Server with SetUGI enabled
2019-04-03T08:58:05,814 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Started the new metaserver on port [9083]...
2019-04-03T08:58:05,815 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Options.minWorkerThreads = 200
2019-04-03T08:58:05,816 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - Options.maxWorkerThreads = 1000
2019-04-03T08:58:05,816 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore - TCP keepalive = true

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读