Difference between revisions of "Rackspace API/Cloud Databases"
(New page: ==Population timezone tables== In order to populate the timezone tables for a given Cloud Database, you must first enable root on your instance. However, this must be [http://docs.rackspac...) |
|||
Line 35: | Line 35: | ||
See also: "[http://docs.rackspace.com/cdb/api/v1.0/cdb-getting-started/content/Managing_TZ_for_Database_Instances_CURL.html Managing the Time Zone with cURL]". | See also: "[http://docs.rackspace.com/cdb/api/v1.0/cdb-getting-started/content/Managing_TZ_for_Database_Instances_CURL.html Managing the Time Zone with cURL]". | ||
+ | |||
+ | ==See also== | ||
+ | * [[Rackspace API]] | ||
[[Category:Rackspace]] | [[Category:Rackspace]] |
Revision as of 06:23, 11 September 2014
Population timezone tables
In order to populate the timezone tables for a given Cloud Database, you must first enable root on your instance. However, this must be done via the Rackspace API.
Please make sure you note the important caveat that accompanies this process:
"Changes you make as a root user may cause detrimental effects to the database instance and unpredictable behavior for API operations. When you enable the root user, you accept the possibility that we will not be able to support your database instance. While enabling root does not prevent us from a 'best effort' approach to helping you if something goes wrong with your instance, we cannot ensure that we will be able to assist you if you change core database settings. These changes can be (but are not limited to) turning off binlogs, removing users that we use to access your instance, and so forth."
So, for an example, to enable root on a Cloud Database instance named "foobar" (id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee; dc: DFW), you would run the following commands:
$ USERNAME=<YOUR_ACCOUNT_USERNAME> $ API_KEY=<YOUR_API_KEY> $ TOKEN=`curl -s -XPOST https://identity.api.rackspacecloud.com/v2.0/tokens \ -d'{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"'$USERNAME'","apiKey":"'$API_KEY'"}}}' \ -H"Content-type:application/json" | \ python -c 'import sys,json;data=json.loads(sys.stdin.read());print data["access"]["token"]["id"]'`
$ REGION=dfw $ ACCOUNT=<YOUR_ACCOUNT_NUMBER> $ ENDPOINT=https://${REGION}.databases.api.rackspacecloud.com/v1.0/${ACCOUNT} $ DB_UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee # "foobar" instance ID $ curl -XPOST -H "X-Auth-Token: $TOKEN" "$ENDPOINT/instances/${DB_UUID}/root.json" | python -m json.tool
That last commend will enable root and return the root password (note: If you ever forget your root password for a given instance, simply run that last command again and it will return your root password).
Now that root has been enabled on your Cloud Database instance, you can run the following commands from within a Cloud Server (it must be in the same region; "DFW" for this example):
$ DB_HOSTNAME=ffffffffffffffffffffffffffffffffffffffff.rackspaceclouddb.com # use your DB's real hostname $ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p -h $DB_HOSTNAME mysql
You can verify that the tables have been loaded by logging into your MySQL instance like so:
$ mysql -u root -p -h $DB_HOSTNAME mysql # provide the root password given above
See also: "Managing the Time Zone with cURL".