登录openstack的在dashboard,提示说权限验证错误,有2种情况: 1. 密码被人改了。 2. 系统发生了问题。

密码确认没人改,所以查看/var/log/keystone-all.log日志,发现一堆错误:

  1. File "/usr/lib/python2.6/site-packages/keystone/assignment/core.py", line 262, in get_domain
  2. return self.driver.get_domain(domain_id)
  3. File "/usr/lib/python2.6/site-packages/keystone/assignment/backends/sql.py", line 526, in get_domain
  4. return self._get_domain(session, domain_id).to_dict()
  5. File "/usr/lib/python2.6/site-packages/keystone/assignment/backends/sql.py", line 519, in _get_domain
  6. ref = session.query(Domain).get(domain_id)
  7. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py", line 775, in get
  8. return self._load_on_ident(key)
  9. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py", line 2512, in _load_on_ident
  10. return q.one()
  11. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py", line 2184, in one
  12. ret = list(self)
  13. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py", line 2227, in __iter__
  14. return self._execute_and_instances(context)
  15. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py", line 2240, in _execute_and_instances
  16. close_with_result=True)
  17. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py", line 2231, in _connection_from_session
  18. **kw)
  19. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 777, in connection
  20. close_with_result=close_with_result)
  21. File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 783, in _connection_for_bind
  22. return engine.contextual_connect(**kwargs)
  23. File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 2489, in contextual_connect
  24. self.pool.connect(),
  25. File "/usr/lib64/python2.6/site-packages/sqlalchemy/pool.py", line 236, in connect
  26. return _ConnectionFairy(self).checkout()
  27. File "/usr/lib64/python2.6/site-packages/sqlalchemy/pool.py", line 474, in checkout
  28. self)
  29. File "/usr/lib64/python2.6/site-packages/sqlalchemy/event.py", line 377, in __call__
  30. fn(*args, **kw)
  31. File "/usr/lib/python2.6/site-packages/keystone/common/sql/core.py", line 204, in mysql_on_checkout
  32. dbapi_conn.cursor().execute('select 1')
  33. File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 205, in execute
  34. self.errorhandler(self, exc, value)
  35. File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
  36. raise errorclass, errorvalue
  37. OperationalError: (1047, 'Unknown command')

这里可以看出,是mysqldb引擎连接mysql进行数据操作mysql返回的错误,所以,基本判断是mysql出问题了,登录mysql,查询admin的密码,发现连mysql的use命令都无法使用。所以引出了mysql的galera的问题。

mysql的galera是一种多主的mysql的HA方案,由单独开发一段程序在mysql底层实现数据的复制,而在各个服务器操作mysql上基本和单机没有区别。 但是在线上没有做任何修改,一直运行的过程中,发生了一个错误:

  1. [root@node-10 conf.d]# mysql
  2. Welcome to the MySQL monitor. Commands end with ; or \g.
  3. Your MySQL connection id is 30631
  4. Server version: 5.5.28
  5.  
  6. Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
  7.  
  8. Oracle is a registered trademark of Oracle Corporation and/or its
  9. affiliates. Other names may be trademarks of their respective
  10. owners.
  11.  
  12. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  13.  
  14. mysql> use keystone;
  15. ERROR 1047 (08S01): Unknown command

我们应该知道mysql的use命令肯定是存在的。如果我们真实输入一个不存在的命令,提示也应该是这样的:

  1. Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
  2.  
  3. Oracle is a registered trademark of Oracle Corporation and/or its
  4. affiliates. Other names may be trademarks of their respective
  5. owners.
  6.  
  7. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  8.  
  9. mysql> test
  10. -> ;
  11. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test' at line 1

这里先初步解决,让服务器运行起来,重启服务即可

  1. service mysql restart

注意,这里/etc/init.d/mysql这个文件是使用了galera的定制化的脚本,理论上是将集群中所有的mysql服务重启,如果失败,可以手动kill -9即可。

然后再登录openstack的HA环境,就可以成功了。

Openstack的mysql数据多主galera的错误的更多相关文章

  1. 设置MySQL数据表主键

    设置MySQL数据表主键: 使用“primary key”关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合.如下SQL语句所示: My ...

  2. MySql数据库主主同步配置步骤

    测试环境:  192.168.1.192  192.168.1.193    mysql5.2     配置192服务器:  /usr/local/mysql/bin/mysql -uroot -p ...

  3. MYSQL数据库主主同步实战

    MYSQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务 ...

  4. MySQL数据的主从复制、半同步复制和主主复制详解

    一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...

  5. MyBatis框架——mybatis插入数据返回主键(mysql、oracle)

    向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是 ...

  6. MySQL数据的主从复制、半同步复制和主主复制详解-转

    一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...

  7. sqoop从hive导入数据到mysql时出现主键冲突

    今天在将一个hive数仓表导出到mysql数据库时出现进度条一直维持在95%一段时间后提示失败的情况,搞了好久才解决.使用的环境是HUE中的Oozie的workflow任何调用sqoop命令,该死的o ...

  8. MySQL/MariaDB数据库的Galera高可用性集群实战

      MySQL/MariaDB数据库的Galera高可用性集群实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Galera Cluster概述 1>.什么是Gale ...

  9. MySQL集群之Galera Cluster

    mysql cluster集群 Galera Cluster:集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分别 ...

随机推荐

  1. LightOj 1098 - A New Function(求1-n所有数的因子和)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1098 题意:给你一个数n (0 ≤ n ≤ 2 * 109),求n以内所有数的因子和, ...

  2. Date and Time Pattern

    The following examples show how date and time patterns are interpreted in the U.S. locale. The given ...

  3. 人脸识别的ppt

    http://wenku.baidu.com/link?url=GWiNRy_9mzqBZ9_2DDZbHRZbBbaBofhs1Y0pBS7aiE5oab8TY78r_z6aAlqo_L9AZzD4 ...

  4. 获取微信服务器IP地址

    关键字:微信公众平台 微信服务器 IP地址 如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表. 接口调用请求说明 http请求方式 ...

  5. Power-BI费用分析

    费用分析主要从财务三大费用入手,剖析费用的结构.用途.占用等情况,从三大费用到明细费用.部门.职员的层层钻取,从而有效地进行费用管理和控制.Power-BI前端展示:图1<ignore_js_o ...

  6. Java学习——Java运算符

    位运算符 A = 0011 1100 B = 0000 1101 ----------------- A&b = 0000 1100 A | B = 0011 1101 A ^ B = 001 ...

  7. mysqld_multi部署mysql单机多实例

    1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...

  8. PAT 解题报告 1049. Counting Ones (30)

    1049. Counting Ones (30) The task is simple: given any positive integer N, you are supposed to count ...

  9. Leetcode: Palindrome Pairs

    Given a list of unique words, find all pairs of distinct indices (i, j) in the given list, so that t ...

  10. Lintcode: Route Between Two Nodes in Graph

    Given a directed graph, design an algorithm to find out whether there is a route between two nodes. ...