I am pleased to announce the release of Wordcraft 0.8. I have managed to release
about once a month since November. I also have actually
gotten some feedback and tickets posted. Thanks to those
that have tried it out.
I have decided to go back to YUI's Editor. I tried TinyMCE
in the last release. But, using it full time I found it
messed with my HTML too much for my liking. When I would
switch to raw HTML mode and add something like a <code>
tag, it would be lost when saving the data back into the WYSIWYG
editor.
I also converted the admin HTML to HTML 4.01 Transitional.
I never use XHTML anymore these days. So, I was writing
invalid XHTML inadvertantly.
I worked on the session handling some more in this release.
Users should stay logged in to the admin …
I had the opportunity to review a client’s production Drupal installation recently. This is a new site and traffic is just starting to pick up. Drupal is a popular LAMP stack open source CMS system using the MySQL Database.
Unfortunately I don’t always have the chance to focus on one product when consulting, sometimes the time can be minutes to a few hours. Some observations from looking at Drupal.
Disk footprint
Presently, volume and content is of a low volume, but expecting to ramp up. I do however find 90% of disk volume in one table called ‘watchdog’;
+--------------+--------------+--------------+-------------+--------+ | table_schema | total_mb | data_mb | index_mb | tables | +--------------+--------------+--------------+-------------+--------+ | xxxxx | 812.95555878 | …[Read more]
Save time and energy: How to:
Listening to “Highway to Hell” in an Oxford University computer lab on a sunday afternoon writing a MySQL blog can be legitimally defined by some as sick but thats what a geek calls a relaxing yet productive sunday afternoon.
For the sake of all those CLI ambassadors like myself, I wanted to share a couple of tips and tricks I use quite often when doing my mysql db administration work / scripting. I strongly suggest any mysql dba / dev use CLI simply because thats the one thing you should always have on any machine on which mysql is installed, be it Unix, Linux, Mac, Microsoft or whatever platform you are using.
Cancelling a query you are typing without exiting to the
terminal:
`\c` – How many times you ended up hitting `CTRL+C` (default
process kill in most OSes) in order to cancel a command, finding
yourself going back to the console and having to connect again?
Nuisence? Hell …
Its same as what http://blog.olindata.com/2009/02/using-the-google-graph-api-with-mysql-stored-functions/ had posted, I've just updated a little. And there are no smart quotes here. So u can copy paste ;)
DELIMITER $$ DROP FUNCTION IF EXISTS `test`.`FNC_GOOGRAPH_DB_SIZE`$$ CREATE FUNCTION `test`.`FNC_GOOGRAPH_DB_SIZE` ( p_chart_type CHAR, p_height INT, p_width INT) RETURNS varchar(3000) CHARSET latin1 READS SQL DATA BEGIN /* Author: Walter Heck - OlinData */ /* Date: 20090216 */ /* Note: After an idea by Alex Gorbachev - Pythian */ /* http://www.pythian.com/blogs/1490/google-charts-for-dba-tablespaces-allocation */ /* variable declaration */ DECLARE v_done BOOLEAN default false; DECLARE v_url varchar(3000); DECLARE v_schema_name varchar(3000); DECLARE v_data_length_sum int; DECLARE …[Read more]
This Thursday (February 26th, 14:00 UTC), Lenz Grimmer will give a MySQL University session on Backing up MySQL using file system snapshots. Lenz is a member of the MySQL Community team and the maintainer of the mylvmbackup tool. mylvmbackup is a tool for quickly creating backups of a MySQL server's data files. To perform a backup, mylvmbackup obtains a read lock on all tables and flushes all server caches to disk, creates a snapshot of the volume containing the MySQL data directory, and unlocks the tables again. The snapshot process takes only a small amount of time. When it is done, the server can continue normal operations, while the actual file backup proceeds.
For MySQL University sessions, point …
[Read more]With this post I want to start the practice of writing short weekly summaries of QOT activities.
This week I was able to work on some bug reports: #12 #13 #14 #15. Some trivial crashes, some of which were already fixed before. As I wrote in my previous post, I have changed the way I do the releases so if you want to have all the latest features and fixes be sure to use the latest Launchpad version of QOT.
Besides the bugs I started to rework my testing environment. Earlier I had a set of C++ - based unit-tests. I used while-box …
[Read more]
To some kick ass DBA or someone that works on MySQL internals,
this is probably a no brainer. But, for just joe schmoe
power user types, we wonder about these things. We could
not find the answer on the internet, so I decided to blog about
it. We expected the result we found, but I think it's good
information.
Have you ever had to make changes to several indexes or columns
in a table? With Phorum, we keep a series of scripts that run
queries to upgrade the database as we make changes.
Recently I had to delete about 12 keys and add about 7 back in
their place. I initially thought to make two sql
statements. One to delete indexes and one to create new
ones. But, Thomas, one of the other developers, wondered if
that was really any better. So, I decided to run some
tests.
First I altered a table with 70k rows, …
I'm just back from a little vacation in the winter-wonderland and had some time on the train to spend. Thanks to power-plugs the 8hrs were well spent and ended up in a first, rough cut of a lua-customizable, mysql-shell that is based on the internals of the MySQL Proxy.
Branch
$ bzr branch lp:~jan-kneschke/mysql-proxy/mysql-shell
if you are interested and want to follow the development.
Everyone already has a mysql-shell, the mysql
program that comes with each MySQL installation.
I wanted to take its idea a bit further and make it customizable with our well-known Lua interface. Even if this ongoing work, it already does something useful:
$ mysql-client (not connected)> .connect root@127.0.0.1:3306 []> select 1; { ["1"] = 1, } OK (warnings: 0, auto-commit: true) root@127.0.0.1:3306 []> explain extended select 1; { ["id"] = 1, ["select_type"] = "SIMPLE", ["table"] = NULL, …[Read more]
In my last post I suggested to clone zones and instead of running sys-unconfig I hacked the script, so that only /etc/nodename gets modified.The script worked very well... It took 10 seconds to clone a zone. But after I installed MySQL and the monitoring agent, I failed monitoring the instances in the Enterprise Monitor. After "only" 5 hours of testing and re-installing I discovered that the Enterprise Monitor identifies the host via its ssh hostid, that was generated during install. Unfortunately all my clones had the same ssh hostid, so Enterprise Manager was a little confused. What did I learn from these five hours?
- I will never again hack scripts that are written by people
much smarter than me (Solaris engineering in this case).
- I can install zones regularly with zoneadm -z zonename install and everything is fine.
- I can clone a zone (with the standard script!) zoneadm -z zonename clone template but then …
This week I was the invited speaker to give a 4 hr presentation to the Federal Government Sector in Washington DC on “Best Practices in Migrating to MySQL“. This was a followup to my day long “MySQL for the Oracle DBA Bootcamp” which I presented in Washington DC last year. It was good to see a number of attendees from my first DC presentation.
There was good attendance across various government departments and companies providing services to the government sector, as well a variety of job descriptions.
Thanks to Carahsoft and Sun/MySQL for organizing and sponsoring the event. Thanks also to Phil Hildebrand who provided fantastic support during my preparation answering all my SQL Server questions.
Thanks also …
[Read more]