liberty配置mysql数据源_OpenStack

用dbconfig-common配置数据库¶

很多 OpenStack 服务组件需要配置对数据库的访问,可以通过下面的命令对 DSN (Database Source Name) 进行配置:

[database]

connection = mysql+pymysql://keystone:0dec658e3f14a7d@localhost/keystonedb

This connection directive will be handled by the dbconfig-common

package, which provides a standard Debian interface. It enables you to

configure Debian database parameters. It includes localized prompts for

many languages and it supports the following database backends: SQLite,

MySQL, and PostgreSQL.

默认情况下, ``dbconfig-common``包配置 OpenStack服务使用SQLite。所以如果你使用debconf的非交互模式并且没有进行任何预先配置,那么你安装的 OpenStack 服务会使用SQLite数据库。

默认情况下, dbconfig-common 也不提供通过网络访问数据库服务的方式。如果你想让``dbconfig-common`` 包提示通过网络访问远端数据库服务而不是通过UNIX套接字,像下面这样重新配置它:

# apt-get install dbconfig-common && dpkg-reconfigure dbconfig-common

当你重新配置``dbconfig-common`` 包时会弹出下面的屏幕:

e6646f7eb7b978d721953eb6210c5615.png

beea79a569b9f081732a6ed4088752af.png

与其他的debconf 提示不同,你不能使用``debconf-set-selections``对``dbconfig-common``交互提示进行预先应答。而是必须在 /etc/dbconfig-common`中创建文件。例如,你可以 ``dbconfig-common``创建一个keystone配置文件,文件位于 :file:/etc/dbconfig-common/keystone.conf`,像下面这样:

dbc_install='true'

dbc_upgrade='true'

dbc_remove=''

dbc_dbtype='mysql'

dbc_dbuser='keystone'

dbc_dbpass='PASSWORD'

dbc_dbserver=''

dbc_dbport=''

dbc_dbname='keystonedb'

dbc_dbadmin='root'

dbc_basepath=''

dbc_ssl=''

dbc_authmethod_admin=''

dbc_authmethod_user=''

当创建这个文件后,运行下面命令:

# apt-get install keystone

认证服务会安装 MySQL 作为后端数据库, ``keystonedb``作为数据库名和本地套接字文件。相关的DNS会是:

[database]

connection = mysql+pymysql://keystone:PASSWORD@localhost/keystonedb

dbconfig-common 包会配置MySQL这些权限并且为你创建数据库。自从 OpenStack 2014.1.1,所有Debian 的 OpenStack包在数据库创建(如果你决定使用MySQL做后端数据库)后会执行下面的MySQL查询:

ALTER DATABASE keystone CHARACTER SET utf8 COLLATE utf8_unicode_ci

因此,如果使用的是 Debian 系统,您将不需要关心数据库的创建、访问权限以及属性的配置。所有这些都由包来处理。

作为例子,这里的截屏来自 cinder-common 包:

01c73ea1752bcf9ed3d0d5e481b2c9d2.png

b2f9060bbeadc57b2a1f885287c6b868.png

2721b539ac3b8e0745a5bb9dfaa3d7da.png

31b67ea7a5475ac53f691ca317e75ce0.png

3a7b9abccbfc61ffef7f1ae88ee07d36.png

a886c8413b5da8f22d700cdd55541fe4.png

在Debian中,默认情况下,你可以从本地通过套接字文件或者127.0.0.1访问MySQL数据库。为了从网络上访问,你必须编辑:file:/etc/mysql/my.cnf`文件和 ``mysql.user` 表。为了完成这些操作,Debian在``openstack-deploy``包中提供了一个帮助脚本。为了使用它,安装包:

# apt-get install openstack-deploy

运行帮助脚本:

# /usr/share/openstack-deploy/mysql-remote-root

或者,如果你没有安装这个包,运行下面脚本,启用远程root访问:

#!/bin/sh

set -e

SQL="mysql --defaults-file=/etc/mysql/debian.cnf -Dmysql -e"

ROOT_PASS=`${SQL} "SELECT Password FROM user WHERE User='root' LIMIT 1;" \

| tail -n 1`

${SQL} "REPLACE INTO user SET host='%', user='root',\

password='${ROOT_PASS}', 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',\

Super_priv='Y', Show_db_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' "

${SQL} "FLUSH PRIVILEGES"

sed -i 's|^bind-address[ \t]*=.*|bind-address = 0.0.0.0|' /etc/mysql/my.cnf

/etc/init.d/mysql restart

在你安装OpenStack服务到多节点上之前必须保证能远程访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值