Huh, tricked you. As if!
However I was looking at my Akismet Spam section in WordPress, the open source software that runs my blog, and it gave me this message.
Caught Spam
You have no spam currently in the queue. Must be your lucky day.
by ronald
Huh, tricked you. As if!
However I was looking at my Akismet Spam section in WordPress, the open source software that runs my blog, and it gave me this message.
Caught Spam
You have no spam currently in the queue. Must be your lucky day.
by ronald
No, it’s not a bedtime story, is a serious system’s design concept and I’m amazing that people don’t know about this.
As I mentioned in If you don’t know your data, you don’t know your application I was doing a Java Code Review, and I found a clear case of a much simplier solution. How simple you ask?
Well, without completing the task 100%, I achieved in less then 1 day (and lets say for the argument 1 more day of work), what is being worked on by somebody else for a week, with an estimate of 2 more weeks to complete. So let’s add 50% to my estimate, that’s a total of 3 days verses 15 days. You do the math. and yes that was last week and that task is still being worked on the same way, even with reference to my working code. Not to mention the code is a similiar magnitude of simplicity, and simplicity means cost savings in support, people so quickly forget that.
So what is this RAT and CAT:
This concept is really rather simple, however it’s amazing how implementations never consider this. Let me give you a simple example.
Your importing some external data (a flat file of 5 columns, and is inturn will be stored in 2 tables in a normalised form). So the RAT way of doing things would entail:
For those now laughing, it’s not really funny, it’s sad that programs are written this way. For those that say, but that’s the only way, well welcome to a different, radical and hard to learn approach.
The Cat way of doing things would entail:
It’s not rocket science people.
I should mention this is a simple example, and it’s not always possible to do CAT processing for all operations, but generally some portion of batch work can be, and the remaining must be done in a RAT way.
Updated
Some more recent articles including We need more CATs (2009) and The Art of Elimination (2010)
by ronald
The art of data modelling is definitely lost on some [most] people, or they never found it, even though they think they did. Over dinner with good friend Morgan last night we were swapping present stories on the topic.
Morgan wrote recently about I want my 4 bytes back damn it., and interesting example storing an ISBN. Further reference can be found at Getting started with MySQL of a more impractical ISBN example.
Disk is cheap now, so the attitude and poor excuse can be, well a few extra bytes doesn’t matter. Well no! If your a social hacker and have a website with a maximium concurrent connections of 2 maybe, but much like some recent Java Code Reviewing I just performed, just because the system isn’t 24×7, doesn’t give you excuse to be lazy about writing the code not to handle concurrency, thread safety and also as efficient as possible, in this case RAT verses CAT. (I’ll need to write about this, it seemed to go over some of the other professionals even)
I can remember a very specific example some 10 years ago in doing some performance analysis on a site. I’d identified the need for an additional index on a table. Now this table was sized for 200 million rows, and it already had about 70 million. The problem was adding another index required 4GB disk allocation. These things have an effect on sizing, growth and backups.
So the impact on appropiate sizing can clearly have an effect, if it was just one poorly sized column that’s acceptable (just), but normally it’s a pattern that litters a data model.
What’s important to realise is, it’s not just diskspace, it’s also memory. Without really touching on sizing data, I did mention some examples previously in Improving Open Source Databases – WordPress. Here the use of BIGINT(20) for primary keys proved my point. That’s 8 bytes, but unless you have going to have 4 billion categories, it’s a waste. It’s a waste when it’s a foreign key in a table, and it’s a big waste when it’s indexed, and that index is then in memory, and wasting more precious resources.
So how to do identify when the designer of the model has no idea about the intrinsic data value being stored? If you see tables with VARCHAR(255), that’s a clear sign. They have no idea regarding the data, so a default limit is used. Morgan referred to it as “Shooting guns in the dark with your eyes closed”. Books don’t help the cause, I was just skimming High Performance MySQL last night (one of the many freebies from the UC). There on page 82, is a table definition with not one column, but two with varchar(255). Hmmm!
If you see any new applications with VARHAR(255) they are even more lost, because MySQL 5, which has been around quite some time now, supports VARCHAR(65535). Speaking of that, has anybody seen VARCHAR(65535). I’d like to know.
Another example, is in Sheeri’s Top 8 SQL Best Practices Point 4 in regards to storing IP’s effeciently. If you log for example every page hit, this can be your largest table, and moving from varchar(15) to int can save you upto 11 bytes per row alone.
These may just be simple examples, but it’s the principle. When you define a column, consider it’s data, if you don’t know then take the time to do the reasearch and learn.
by ronald
So, FireFox have come up with a novel idea to promote it’s product. Check out Firefox Day.
The official blurb: Share Firefox with a friend. If your friend downloads Firefox before September 15, you’ll both be immortalized in Firefox 2.
You can even choose how to link your names together on the “Firefox Friends Wall”. Examples like ‘my name’ Informed ‘your name’, or ‘my name’ Empowered ‘your name’, or ‘my name’ Liberated ‘your name’.
Perhaps MySQL can leverage this idea for some what to promote future download!
by ronald
Got my new toy today, having only ordered it Thursday night, it arrived Monday. Normally Dell stuff comes from Asia, maybe they had some of these on hand locally.
A Dell 2407WFP 24″ LCD monitor with a 1920×1200 resolution.
Hmmm, not bad. I should mention $1,199 Delivered ($300 off normal price)
by ronald
No, it’s not a slogan from the 1960’s and 1970’s, however if I could draw a picture in a wordpress textarea I’d draw a hand Victory signal with two fingers.
Today I started providing services as a Technical Analyst for Peace Software initially here in Brisbane. Stealing directly from the marketing blub.
So, a different pace for me, especially in terms of the “end user” customer of the software I’ll be responsible for in some small way.
Things that are the same. Java, Web Client, Oracle, Unit Tests, some exposure to Agile Methodologies
Things that are different. Large, stable and established product, long standing company, corporate customer, lack of Internet end user urgency. And Still, no job working with MySQL which is my goal.
This is not the first time I’ve worked particularly in this type of software industry. I had a reasonable stint at Brisbane City Council when they first rolled out the RIMS system to manage Council Rates and Billing ($1 billion revenue p.y.) for one of the largest councils in the world.
by ronald
WebSite: www.meebo.com
If you use Instant Message (IM), but can’t use within an environment, do it via the web. Way Cool
by ronald
I’ve recently completed a contract and I’ve been in discussions with agents and other employers for further work. Having had one of the worse experiences in my previous work, I’ve been extra careful to ensure what I’m told at the interview/meeting stage is indeed true and accurate (in my last case it was not). I’ve also not made the assumption that an organisation that is dependent on software has placed a certain level of value on what’s in place. (in my last case I did, simply due to the size of the organisation and volume of business).
So, when being asked by people what I’m seeking, outside of the technical skills and compendencies, I’m seeking an organisation that places value on it’s existing software, it’s software quality, it’s software improvement and most importantly it’s software developers. It was unfortunate that for an organisation that lived in software, and would not survive long (especially at the present scale of operations) without it, they met none of these criteria. It was really sad, and overall I found the environment “depressing”.
Now “depressing” could be considered a harsh word, but it comes from both my ethos and also present circumstances in life. I had these two post-it notes on my wall at work, which summed up “What I was seeking/Where I wanted to be”, and “Where I was” in my job.
There have been a few articles recently, it was probably Marcus in Supporting ideas and being productive, based on earlier articles of How to Come Up With Ideas and How To Kill Good Ideas by Zack that motivated me to publish this. These articles have many good points, and while I could put my slant on it, I wanted to focus on just one thing.
In Software Development 10 years ago I was driven, now I know and I’m driven by passion. I always strive for something better then their presently is, seeking better quality, and better productivity, and most importantly today, simplicity.
Everybody is at a different position in life and it’s important to find the right fit. For me money is not a motivator, being productive, making what I’m doing better, where I’m working more enjoyable and productive, and who I’m working with a better place to be are important to me.
I’ve choose the word for the moment to best represent this as PRIDE.
Pride is:
For me, I’m seeking an organisation that takes pride in it’s people, it’s products and it’s future direction, and that attracts people that have pride in what they do, they way they think and how they interact with others.
by ronald
In order to enable wireless you will most probably have a Wireless Router that is managing your Internet Connection (via cable or DSL), Each router is different, however they generally all have a web interface to access them, the Netgear and DLink routers seems to have generally moved to http://192.168.0.1 as the default address (which is also configurable) Refer to the router documentation for the correct address. You will be prompted for a username and password, this is generally admin and then a default password. Refer to appropiate router documentation for the default password.
Your router will allow you to configure a number of wireless settings. Where this menu option differs with every router, but normally a Wireless Settings option is easily visible. The common wireless settings are:
The gets the terminology out of the way.
Start by looking at your present Windows Network Configuration on the machine in question.
At this point you should see a list of Network Connections. It’s not uncommon as per the screen to see 2 connections, a Wireless Network Connection from your wireless network card, and a Local Area Network if you used a fixed network cable.
The first thing you need to check is if your Wireless Network connection has a Red Cross thru it. This is a good indicator that it’s not working. The following points run thru the options against a Wireless connection.
The Status column for the connection should first say Enabled. If it says Disabled, you should enable this single click on Wireless Network Connection, then Right Click, then select Enable.
A right Click and View Available Wireless Networks should provide a list of available Networks that have been found inrange and that broadcasting their SSID (it’s possible to not broadcast, but by default this is enabled). You should see the SSID you define for your Router, and you may well see other wireless networks. But Selecting an Available Network, you will be prompted to enter the WEP Encryption key if the network is using encryption. Do so, and click [Connect].
Right Click, Status gives you information on your connection, It should have a Status of Connected, the other details if for informational purposes. Clicking on the Support tab is helpful to confirm your setttings. It’s important that the information is like:
These details define your connection, it’s important that the Default Gateway is the same as your router address, and that the IP Address is similar (with just the last part different)
Right Click, Properties gives you a lot to review. The three things you should review are:
If you have made any changes, it’s benefical to Disable and re Enable your connection.
Wireless in default operations is unsecure, and is very easy for example somebody else to use your bandwidth. It’s also easy for a hacker to intercept your communications and then analyse your information. There are two things you should always do:
In addition for greater protection you can run with an Access List, that is specifically defining at your Router the specific Network Addresses of each Network Card that can access your network, but this requires more configuration.
by ronald
Should you want to be on the bleeding edge, or in my case, don’t want to download 70MB each day in a daily snapshot (especially when I’m getting build errors), you can use Bit Keeper Free Bit Keeper Client that at least lets you download the MySQL Repository. This client doesn’t allow commits, which is a good thing for those non-gurus in mysql internals (which definitely includes me).
wget http://www.bitmover.com/bk-client.shar /bin/sh bk-client.shar cd bk_client-1.1 make
By placing sfioball in your path you can execute.
sfioball bk://mysql.bkbits.net/mysql-5.1 mysql-5.1
This took me about 4 mins, which seemed much quicker then getting a snapshot!
You can then get cracking with my instructions at Compiling MySQL Tutorial 1 – The Baseline.
A good reference in all this compiling is to take a good look at the MySQL Internals Manual. (which I only found out about recently)
If at a later time you want to update your repository to the latest, use the following command.
update bk://mysql.bkbits.net/mysql-5.1 mysql-5.1
5.1 Reference Manual – 2.9. MySQL Installation Using a Source Distribution
5.1 Reference Manual – 2.9.3. Installing from the Development Source Tree
5.1 Reference Manual – 2.13.1.3. Linux Source Distribution Notes
MySQL Internals Manual
To confirm earlier notes on minimum requirements for compiling the following details should be confirmed.
automake --version autoconf --version libtool --version m4 --version gcc --version gmake --version bison -version
My results running Fedora Core 5.
$ automake --version automake (GNU automake) 1.9.6 $ autoconf --version autoconf (GNU Autoconf) 2.59 $ libtool --version ltmain.sh (GNU libtool) 1.5.22 (1.1220.2.365 2005/12/18 22:14:06) $ m4 --version GNU M4 1.4.4 $ gcc --version gcc (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1) $ gmake --version GNU Make 3.80 $ bison -version bison (GNU Bison) 2.1
by ronald
Just to confirm my earlier confusion about verified snapshots at Compiling MySQL Tutorial 1 – The Baseline.
Seems the fine print at MySQL Database Server 5.1: Beta snapshots also states this. Well, need to take my RTFM pill there.
Thanks to Lenz for putting the record straight, and helping with my Forum Post. Seems I did uncover a Bug, now recorded as Bug #21463. Just need to get it fixed to continue on my tutorial.
by ronald
This tutorial is aimed at Linux installations that has the standard development tools already installed. The INSTALL file in the source archives provides good details of the software required (e.g. gunzip, gcc 2.95.2+,make).
Create a separate user for this development work.
su - useradd mysqldev su - mysqldev
You can view recent snapshots at http://downloads.mysql.com/snapshots/mysql-5.1/.
The official statement on snapshots from MySQL AB.
Daily snapshot sources are only published, if they compiled successfully (using the BUILD/compile-pentium-debug-max script) and passed the test suite (using make test). If the source tree snapshot fails to compile or does not pass the test suite, the source tarball will not be published.
At the time of producing this the present snapshot was http://downloads.mysql.com/snapshots/mysql-5.1/mysql-5.1.12-beta-nightly-20060801.tar.gz
mkdir -p $HOME/src cd $HOME/src SNAPSHOT="mysql-5.1.12-beta-nightly-20060801";export SNAPSHOT wget http://downloads.mysql.com/snapshots/mysql-5.1/${SNAPSHOT}.tar.gz tar xfz ${SNAPSHOT}.tar.gz cd $SNAPSHOT
You can for example do the simple way with most C programs:
DEPLOY=${HOME}/deploy; export DEPLOY ./configure --prefix=${DEPLOY} make make install
However it’s recommended you use the significant number of pre-configured build scripts found in the BUILD directory. For Example:
./BUILD/compile-pentium-debug --prefix=${DEPLOY}
I always get the following warnings. Not sure what to do about it, but it doesn’t break any future work to date. Surely somebody in the development team knows about them.
../build_win32/include.tcl: no such file or directory cp: cannot create regular file `../test/logtrack.list': No such file or directory
The easy, but time consuming part over, let’s test this new beast.
make install
This will deploy to the preconfigured area of $USER/deploy. For multiple versions within this process you should adjust this back in the compile process.
cd $DEPLOY bin/mysql_install_db bin/mysqld_safe & bin/mysql -e "SELECT VERSION()" bin/mysqladmin -uroot shutdown
So if you haven’t already sniffed around there are some reasonable changes in the structure. Here are a few points that caught me out:
This is a quick confirm it all works, and I’ve for the purposes of this example ensured that no other MySQL installation is running, and there is no default /etc/my.cnf file. (I always place this in the MySQL installation directory anyway).
Some minonr considerations for improvements with locations, users and multiple instances.
cd $DEPLOY rm -rf var bin/mysql_install_db --datadir=${DEPLOY}/data --user=$USER bin/mysqld_safe --basedir=${DEPLOY} --datadir=${DEPLOY}/data --user=$USER --port=3307 --socket=/tmp/mysqldev.sock & bin/mysql -P3307 -S/tmp/mysqldev.sock -e "SELECT VERSION()" bin/mysqladmin -P3307 -S/tmp/mysqldev.sock -uroot shutdown
Now, there is no guarantee that the snapshot is a working one, in the case of mysql-5.1.12-beta-nightly-20060801 in this example, it didn’t work for me? I’ve just reinstalled my OS to Fedora Core 5, and the previous source version (a 5.1.10 snapshot worked ok)
Here are some tips to help out.
The preconfigured BUILD scripts have a nice display option with -n that allows you to see what will happen.
./BUILD/compile-pentium-debug --prefix=${DEPLOY} -n
In my case it gave me this:
testing pentium4 ... ok gmake -k distclean || true /bin/rm -rf */.deps/*.P config.cache storage/innobase/config.cache storage/bdb/build_unix/config.cache bdb/dist/autom4te.cache autom4te.cache innobase/autom4te.cache; path=./BUILD . "./BUILD/autorun.sh" CC="gcc" CFLAGS="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX" CXX="gcc" CXXFLAGS="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX" CXXLDFLAGS="" ./configure --prefix=/home/mysqldev/deploy --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-readline --with-big-tables --with-debug=full --enable-local-infile gmake -j 4
In my case this helped with my problem, that is the autorun.sh command is throwing an error in the Innodb configuration.
Part of the compiling is you can turn Innodb off with –without-innodb, but the BUILD scripts don’t accept parameters, so it’s a matter of ignoring the autorun.sh command above, and adding –without-innodb to the configure.
As it turned out, the autorun.sh provided the additional storage engine support.
Details of the problem in this instance.
[mysqldev@lamda mysql-5.1.12-beta-nightly-20060801]$ . "./BUILD/autorun.sh" Updating Berkeley DB source tree permissions... ../build_win32/include.tcl: no such file or directory Updating Berkeley DB README file... Building ../README autoconf: building aclocal.m4... autoconf: running autoheader to build config.hin... autoconf: running autoconf to build configure Building ../test/logtrack.list cp: cannot create regular file `../test/logtrack.list': No such file or directory Building ../build_win32/db.h configure.in:723: required file `zlib/Makefile.in' not found Can't execute automake
The good news is today, the MySQL Barcamp was announced, a great place to get some better insite into the gurus of the MySQL internals. At least a place to ask these questions providing they have a beginner group.
My Next Tutorial will take a look at the example provided by Brian Aker at the recent MySQL Users Conference HackFest B: Creating New SHOW Commands.
by ronald
Following on from my earlier Eclipse CVS Tutorial 1.
The following options define what is presented in the Navigator View at the project, directory and file levels.
NOTE: There is a Mercurial Eclipse option under the top level menu in Window | Preferences. It should be moved to the Team submenu in line with CVS and SVN.
The following are the Right Click | Team menu views for both CVS and SVN.
NOTE: That depending on the Version Control, only the CVS or SVN options are shown. Presently the Mercurial options are shown for both, but should not be until the Project is shared with Right Click | Team | Share Project.
To step through the process of adding and maintaining a new file within CVS.
by ronald
If you wish to password protect your webapp with an Apache .htaccess type authentication model, you require two configuration steps. The first within your WEB-INF/web.xml, add the following replacing rolename appropiately.
<security-constraint> <web-resource-collection> <web-resource-name>All Pages</web-resource-name> <url-pattern>*.htm</url-pattern> <url-pattern>*.html</url-pattern> </web-resource-collection> <auth-constraint> <role-name>rolename</role-name> </auth-constraint> </security-constraint> <!-- Define the Login Configuration for this Application --> <login-config> <auth-method>BASIC</auth-method> <realm-name>Test Application</realm-name> </login-config> <!-- Security roles referenced by this web application --> <security-role> <description> The role that is required to log in to the Application </description> <role-name>rolename</role-name> </security-role>
Second, within the tomcat $CATALINA_HOME/conf/server.xml, you need to define the Realm used within the appropiate host’s <Engine> definition.
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase"/>
This Realm connects with a known resource, which I define with the $CATALINA_HOME/conf/server.xml <GlobalNamingResources> definition.
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"> </Resource> <ResourceParams name="UserDatabase"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/custom/users.xml</value> </parameter> </ResourceParams>
NOTE: The use of MemoryRealm has limited uses. Tomcat provides 5 different Realm implementations including JDBC, DataSource,JINDI, Memory and JAAS.
And of course you need to define your user authentication within the appropiately defined users file. In this case conf/custom/users.xml
by ronald
If you require a webapp to always run in https mode using a SSL key, then you need to add the following to your WEB-INF/web.xml configuration.
<security-constraint> <web-resource-collection> <web-resource-name>jsp</web-resource-name> <url-pattern>*.htm</url-pattern> <url-pattern>*.html</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
by ronald
I’ve read at times people complaining about the response to bugs, and people bag the support of MySQL on the forums at times.
Well today I logged a bug, not the first and I’m sure it’s not the last. See LAST_INSERT_ID() does not return results for a problem in the latest Connector/J 5.0.3 that was released just recently.
Now it took me about 2 hours to log the bug, and probably at least 2 hours of frustration prior to that. The initial frustration 2 hours was unsuccessful debugging of what I was sure was valid code (and it was near midnight last night). The second 2 hours today was testing the problem between two environments, different database versions and different Connector/J versions, and providing a simple reproducable case of said problem.
So the timeline of the Bug in the MySQL Bug Tracking System.
So let me summarise that.
For aS3 (Non-critical) Bug, it took 18 mins from logging for MySQL AB to acknowledge and review the problem, 24 mins from logging to get confirmation of compatibility issue, and 94 mins from logging to have a patch submitted that addressed this and probably some more compatibility issues across 7 source files.
Good Job Mark Matthews. Where do I send the comments for the “MySQL AB employee of the month” award.
by ronald
I found this cool command called glxgears that you can run under X.
$ glxgears 10524 frames in 5.0 seconds = 2104.650 FPS 10003 frames in 5.0 seconds = 2000.501 FPS 8417 frames in 5.0 seconds = 1683.340 FPS * Moved the window from left to right 10538 frames in 5.0 seconds = 2107.443 FPS 5639 frames in 5.0 seconds = 1120.850 FPS * Moved the window around constantly X connection to :0.0 broken (explicit kill or server shutdown).
$ glxgears --help Warrning: unknown parameter: --help
Note the spelling error in “Warrning”.
by ronald
I’m playing with the latest 5.1.11 beta in a master/slave replication situation. Given a lack of H/W lying around I’m configuring a mixed H/W setup to leverage an existing office’s after hours CPUs running Windows XP for my slaves. So here is my test setup.
Linux – 192.168.100.170
The following are the relevent my.cnf settings
[mysqld] port=3307 server-id = 1 log-bin=mysql-bin
Confirming the server. I did some test commands prior to confirm the position.
$ mysql -uroot -p mysql Your MySQL connection id is 47 to server version: 5.1.11-beta-log mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 1759 | | | +------------------+----------+--------------+------------------+
Windows XP – 192.168.100.171
The following are the relevent my.cnf settings
server-id = 11 master-host = 192.168.100.170 master-user = rep master-password = dolphin master-port = 3307
I’ve taken a few steps back for the documentation, to clearly identify any setup problems for those that are also reviewing this to setup replication.
Starting the Slave, I get the following error.
060720 16:36:22 [ERROR] Slave I/O thread: error connecting to master '[email protected]:3307': Error: 'Host '192.168.100.171' is not allowed to connect to this MySQL server' errno: 1130 retry-time: 60 retries: 86400
Makes sense, you need to give access to the slave to access the master. So to the uninitiated you may miss that a slave requires different access then a default ‘all’ for example.
On the master.
$ mysql -uroot -p mysql mysql> grant replication slave on *.* to rep@'192.168.100.%' identified by 'dolphin';
Just a side note, when defining the master replication you can specifically state databases to include or ignore, but to set up the appropiate grant on a particular database fails. For example:
mysql> grant replication slave on test.* to rep@'192.168.100.%' identified by 'dolphin'; ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
But the problem was not indeed here, looking closer at the error message, the host and the port matched the my.cnf file, but the user didn’t. It was ‘root’ when it should have been ‘rep’.
So, some advice later from the Planet MySQL #IRC (thanks Sheeri) you find if you RTFM at MySQL 5.1 Manual – Replication Startup Options.
So investigating the master.info file located in the slave data directory I get:
14 mysql-bin.000001 1839 192.168.100.170 root dolphin 3307 60 0
There is a mismatch between the master.info file and the my.cnf file. I don’t recall the exact series of events when I setup the Windows XP installation, I know I first tested it as a master, and it’s most likely I then configured the slave settings, but used a master-user of ‘root’ initially and started the server. Then thinking this was insecure before I’d created the permissions, I changed the my.cnf file to use the user ‘rep’.
So the lessons today are:
Now I fully agree this is a Replication 101 error. My excuse is the last replication I setup was in 2003 under 3.23, and it worked perfectly well in a production system for 2 years with a number of 3.23 and 4.0 slaves. Hence while I’m just refreshing my replication skills now.
by ronald
WebSite: del.icio.us
keep your favorite websites, music, books, and more in a place where you can always find them.
share your favorites with family, friends, and colleagues.
discover new and interesting things by browsing popular & related items.
by ronald
WebSite: www.im.com
The Leader in Internet TV
* There’s a new way to watch TV.
* Our free software delivers shows to your PC.
* Subscribe to your favorite channels.
* New shows will appear instantly.
* Click to watch.
by ronald
WebSite: www.squarespace.com
What is Squarespace?
Squarespace is a great way to publish and manage a web site online. We let you snap together a web site in a flash that will allow you to manage all of your unique content right in one place. It can be as professional or personal as you want.
Who’s Squarespace for?
Bloggers. Independent professionals. Small businesses. Anyone who needs to maintain a web presence, but wants exacting control over their site, and powerful publishing features that cover everything from blogs to files. No technical skill is required
by ronald
WebSite: www.digg.com
Digg is a user driven social content website. Ok, so what the heck does that mean? Well, everything on digg is submitted by the digg user community (that would be you). After you submit content, other digg users read your submission and digg what they like best. If your story rocks and receives enough diggs, it is promoted to the front page for the millions of digg visitors to see.
What can you do as a digg user? Lots. Every digg user can digg (help promote), bury (help remove spam), and comment on stories… you can even digg and bury comments you like or dislike. Digg also allows you to track your friends’ activity throughout the site — want to share a video or news story with a friend? Digg it!
by ronald
WebSite: www.zimbra.com
Zimbra is an open source server and client technology for next-generation messaging and collaboration. Zimbra delivers innovation for both the administrator and the end-user as well as compatibility with existing infrastructure and applications (both open source and proprietary).
by ronald
WebSite: www.cacti.net
Cacti is a complete network graphing solution designed to harness the power of RRDTool’s data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive, easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.
Cacti is a complete frontend to RRDTool, it stores all of the necessary information to create graphs and populate them with data in a MySQL database. The frontend is completely PHP driven. Along with being able to maintain Graphs, Data Sources, and Round Robin Archives in a database, cacti handles the data gathering. There is also SNMP support for those used to creating traffic graphs with MRTG.
by ronald
WebSite: www.eyeos.org
eyeOS is an Open Source Web Desktop Environment, commonly known as Web Operating System or Web Office. With eyeOS you can be organized, work and have fun anywhere, using your own personalized Web Desktop. For using eyeOS, you only have to go to your eyeOS server (or use the official eyeOS public server) and log in with your username and password. If you don’t have a username and password, you can create an account from there too.
by ronald
WebSite: www.protopage.com
Dynamic Web Page with graphical feeds and movable windows (like postit notes)
by ronald
WebSite: oss.oetiker.ch/rrdtool/
The industry standard data logging and graphing application. Use it to write your custom monitoring shell scripts or create whole applications using its Perl, Python or PHP bindings.
RRD is the acronym for Round Robin Database. It is a system to store and display time-series data (i.e. network bandwidth, machine-room temperature, server load average).
by ronald
by ronald
WebSite: www.nagios.org
Nagios is a host and service monitor designed to inform you of network problems before your clients, end-users or managers do. It has been designed to run under the Linux operating system, but works fine under most *NIX variants as well. The monitoring daemon runs intermittent checks on hosts and services you specify using external “plugins” which return status information to Nagios. When problems are encountered, the daemon can send notifications out to administrative contacts in a variety of different ways (email, instant message, SMS, etc.). Current status information, historical logs, and reports can all be accessed via a web browser.
by ronald
WebSite: www.thumbshots.org
This site enables you to embed a thumbnail image of a website. Rather cool, except there must be some level of caching for new website requests. This page at the time of saving doesn’t show the thumbshot of the official site.
Below is an example output from website that I got the idea from: