• 解决 Amoeba连接mysql出错 解决方案


    今天配置mysql的主从复制 用到了Amoeba。从安装到启动服务,我深深地体会到学运维的不易。 

    首先是  安装错误  的解决,连接错误  的兄弟可以直接往下拉。

    安装错误

    1.出现 JAVA_HOME environment variable is not set. 
    可是明明jdk已经安转成功了,java version 显示的也是正常的 
    说明 问题一定就出在amoeba的配置上面

    [root@localhost bin]# ./amoeba start
    Error: JAVA_HOME environment variable is not set.
    [root@localhost bin]# java -version
    openjdk version "1.8.0_102"
    OpenJDK Runtime Environment (build 1.8.0_102-b14)
    OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)

    解决: 
    修改/amoeba/bin/amoeba文件,在文件最开头直接写入JAVA_HOME环境变量

    JAVA_HOME=/usr/local/src/java/jdk1.8.0_121

    2 出现 The stack size specified is too small, Specify at least 228k 
    说明默认配置Xss比较小128k,启动时提示太小

    The stack size specified is too small, Specify at least 228k
    Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.

    同样也是修改/amoeba/bin/amoeba文件,修改为256k即可

    DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"

    这个时候,进入amoeba的目录下 
    执行

    ./bin/amoeba start

    成功的出现以上画面,说明你的Amoeba已经安转成功了。 
    但是。。。。 
    你以为这样就结束了么,曾经我也是这么天真的认为的。 
    直到我花了N个小时才把Amoeba和mysql正常连接成功,希望我的解决方法对你有用 
    以下就是Amoeba连接错误的解决方案。 
    正常 在网上 我们可以搜到两种的解决方案。

    连接错误

    第一种 
    就是amoedb的dbServers.xml中的password哪一项被注释了,细心的小伙伴一定不会犯这种错误,这种解决方案就是去配置文件把注释消掉,并填写正确的password。 
    例如这位兄弟就是这个错误 
    http://blog.csdn.net/lwei_998/article/details/7321880

    第二种 
    就是 数据库的访问权限没有对 amoeba 所在的服务器开启,导致amoeba无法访问数据库 
    解决方案:去主数据库和从数据库进入mysql 并输入以下命令

    GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION;

    再次连接即可。

    第三种 
    也就是楼主出现错误,错误提示是

    java.util.NoSuchElementException: Could not create a validated object, cause: ValidateObject failed

    某前辈一番折腾后,觉得是jdk和emoeba之间有冲突(其实并不是),他用的是jdk1.8+emoeba2.2,所以重新换了个jdk1.7+emoeba2.2,还是出现同样的错误,他还不死心,又换了个jdk1.7+emoeba3.0.4,还是同样的错误。又一番测试,十分肯定 是emoeba的问题,数据库能成功连接emoeba,连接后就GG了,开始翻阅配置文件,一句话引起他的注意

    <property name="schema">test</property>

    这是什么,这是一个test数据库啊,我的databases里面有test数据库么,并没有。 
    于是在databases中创建一个test的数据库 。

    再次连接,成功!

  • 相关阅读:
    Shell基本语法
    CURL简单使用
    <C> 字符串简单习题
    <C> 字符串相关的函数
    <C> 内存分区
    <C> 最大值以及最大值下标 二分查找(折半查找)
    <C> 函数 函数指针
    <C> 冒泡排序及其非常非常非常简单的优化
    <C> typedef 宏 const 位运算
    <C> 数组
  • 原文地址:https://www.cnblogs.com/KunGe-13/p/8335621.html
Copyright © 2020-2023  润新知