On Wednesday 16 February 2005 09:48 pm, Logan, David (SST - Adelaide) wrote:
> You could start a second copy of the same server the way that I
> described below. Just start the second copy listening on a different
> port. You could use command line overrides to start it up with a
> different my.cnf file with the changed parameters. eg. different
> datadir, different port etc. This way you don't have to install a second
> newer version but can run with the old one.
>
> instance 1 starts with /etc/my.cnf (default)
> instance 2 starts with /etc/my.cnf.dev and listens on port 3307 with a
> datadir of /some/where/else/on/the/disk
>
> See chapter 4 of the manual
> http://dev.mysql.com/doc/mysql/en/using-mysql-programs.html before I
> give you a bum steer 8-) that has all the docs on how to set up the
> correct option files you will require

Since you gave me this, I was able to find most of what I needed with mysqld 
--help.  I knew I could set the port, but I still wanted to be sure I could 
have two instances (that's the word I couldn't remember when I was trying to 
figure out what to Google for) running, using different data sources without 
them interfering with each other.

From what I see, I can take /etc/init.d/mysql and copy it 
to /etc/init.d/mysql2.  I can modify the 2nd version to specify a different 
port and a different config file (which may not be needed if I specify the 
different data directory) on the command line.

I'll try this tomorrow, when I'm more alert.  I just didn't want to poke 
around with something like that and find out later that I was doing something 
that had effects I wouldn't see until it was too late.

Thank you for all the info.  This is huge help to me (it lets me get rid of 2 
old boxen that'll go to my parents and another relative and move everything 
onto one system -- at long last!).

Hal


> Regards
>
> David Logan
> Database Administrator
> HP Managed Services
> 148 Frome Street,
> Adelaide 5000
> Australia
>
> +61 8 8408 4273 - Work
> +61 417 268 665 - Mobile
> +61 8 8408 4259 - Fax
>
>
> -----Original Message-----
> From: Hal Vaughan [mailto:[EMAIL PROTECTED]
> Sent: Thursday, 17 February 2005 1:10 PM
> To: mysql@lists.mysql.com
> Subject: Re: Using Different Database Groups On the Same Computer
>
> On Wednesday 16 February 2005 09:27 pm, Logan, David (SST - Adelaide)
>
> wrote:
> > Ooops, sorry for the second time, I forgot to include the list.
> >
> > Yes, you can install the "normal" version of mysql (in my case 4.0.22)
> > and leave everything default. You can then install a new version of
> > mysql (4.1.3 or something) and then set up the my.cnf so that it
>
> listens
>
> > on a different tcp port. MySQL uses port 3306 by default but you can
> > change this via the my.cnf. I also set up a different startup file in
> > the rc3.d directory that starts the second server using different
> > parameters passed via the command line.
>
> Okay -- I follow most of this.  Just one other question: Is there a way
> to set
> this up with only ONE install of MySQL?  (I'm running a Debian system
> and,
> for the sake of updates and stuff, I'm trying to put as little as
> possible on
> the system and keep it all so it can be easily updated through
> security.debian.org.)  In other words, could I make it so if I access it
>
> through 3306, it goes to the current version, but port 3307 makes it use
> the
> new databases?
>
> > The docs do quite a good job on describing this.
> >
> > You can then specify this in your DBI call to MySQL like
> >
> > my $dsn =
> > "DBI:mysql:host=$hostname;database=lcscreative;port=$newportnumber";
> > my $dbh = DBI->connect($dsn, 'username', 'password', \%err_handle);
> >
> > You could also use a unix socket rather than tcp by specifying the
> > socket name rather than a port number. This is documented in the DBI
> > docs at CPAN.
> >
> > You can do the same thing from PHP, eg. specifying a different port
> > number etc. You can do this from the command line by using mysql
> > --username username --password --port=3307
>
> --socket=somethingdifferent.
>
> > Just make sure that you specify 2 different data directories, 1 for
>
> the
>
> > production or normal version and 1 on a different filesystem or
> > whereever for the development version. It will not matter that the
> > databases have the same name as they are in different mysql instances.
>
> I figured I'd have to have different directories.  That also makes
> backing up
> data easier.  (I'm backing everything up with rsync, so if I specify
> directories that are in the same directory tree the rest of the programs
> and
> data are in, I can back up everything with one cron job instead of using
>
> mysqldump AND backing up the file I generate with it.)
>
> > I also use environment variables set in the apache config to ensure
> > separation. I have 2 servers that I use, one production and one
> > development. I have the following 2 statements in the virtual host
> > section for the website
>
> At this point, fortunately, I won't have to worry about doing anything
> through
> Apache.  I think I'll miss that entirely.
>
> > httpd.config on development
> >
> > SetEnv DB_HOST devhost
> > SetEnv DB_USER root
> >
> > httpd.config on production
> >
> > SetEnv DB_HOST prodhost
> > SetEnv DB_USER prod_username
> >
> > and then access these through the %ENV hash in perl or getenv function
> > in PHP. That makes it easy, all I have to do is transfer the scripts
> > over and they pick up the correct names. You could do this on a single
> > server by having virtual hosts and setting the variables to different
> > values dependent upon the url called.
>
> I'm using Perl for the web stuff (which is only for a setting editor).
> I'm
> not a professional programmer.  I hadn't touched a line of code in over
> a
> decade when I started this.  I discovered Perl quickly, and I've done as
> much
> as possible in Perl so I can give myself a sense of unity.  (I had to do
>
> another part in Java, so I'm trying to stick with only those two
> languages
> for now.)
>
> > HTH
>
> Thank you for all the info.  It's a big help!
>
> Hal
>
> > Regards
> >
> > David Logan
> > Database Administrator
> > HP Managed Services
> > 148 Frome Street,
> > Adelaide 5000
> > Australia
> >
> > +61 8 8408 4273 - Work
> > +61 417 268 665 - Mobile
> > +61 8 8408 4259 - Fax
> >
> >
> > -----Original Message-----
> > From: Hal Vaughan [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, 17 February 2005 12:45 PM
> > To: Logan, David (SST - Adelaide)
> > Subject: Re: Using Different Database Groups On the Same Computer
> >
> > On Wednesday 16 February 2005 09:04 pm, you wrote:
> > > Hi Hal,
> > >
> > > Do you mean using the same version but accessing 2 different sets of
> > > tables? I'm a little confused as to what your requirements are.
> >
> > Or databases.  Basically, I want it all on one system, but I don't
>
> want
>
> > the
> > current databases, which are in use by the current and running version
> > of the
> > program, to be effected in any way by the new version of my program
> > (actually
> > a suite of programs), which will be using databases and tables with
>
> the
>
> > same
> > names as the current version.
> >
> > > You could install both versions and use aliases to ensure that you
>
> can
>
> > > access only one instance at a time by the method you described. You
> > > would have new-mysql aliases to a mysql command with either a
> >
> > different
> >
> > > port number or hostname to access the newer version whereas the
>
> mysql
>
> > > would point to localhost on the standard port.
> >
> > Let me put it in my words, so I can be sure I understand you.  So I
> > could
> > install MySQL and leave everything "normal" for my current program to
> > access
> > everything it can access now (I'm accessing them through Perl, using
> > DBI),
> > AND I can also specify another group of databases that are accessed if
>
> I
>
> > try
> > a different port from Perl, or perhaps, a different specification on
>
> the
>
> > command line.
> >
> > Is that it?
> >
> > If so, is there a technical term for what I'm trying to do, or what
>
> each
>
> > set
> > of databases is called?  And what does this come under in the manuals
> > and
> > info so I can find out how to configure my system to do this?
> >
> > > I run 2 different versions on one of my smaller linux boxes for
> > > precisely the reason you are talking about. If you are accessing
>
> these
>
> > > via php for example, you can use an environment variable to set
>
> which
>
> > > port, host etc. you wish to talk to.
> >
> > That's basically what I want to do, so I think we're talking about the
> > same
> > thing.
> >
> > Thanks!
> >
> > Hal
> >
> > > Regards
> > >
> > >
> > > David Logan
> > > Database Administrator
> > > HP Managed Services
> > > 148 Frome Street,
> > > Adelaide 5000
> > > Australia
> > >
> > > +61 8 8408 4273 - Work
> > > +61 417 268 665 - Mobile
> > > +61 8 8408 4259 - Fax
> > >
> > >
> > > -----Original Message-----
> > > From: Hal Vaughan [mailto:[EMAIL PROTECTED]
> > > Sent: Thursday, 17 February 2005 12:23 PM
> > > To: mysql@lists.mysql.com
> > > Subject: Using Different Database Groups On the Same Computer
> > >
> > > I'm not quite sure what search terms to use, otherwise I'm sure I
> >
> > could
> >
> > > find
> > > this on Google.
> > >
> > > I have a working install of MySQL on an older computer, running the
> > > current
> > > version of my program.  I am about to start developing a newer
>
> version
>
> > > of my
> > > program on a new computer.  I'd like to have both versions (current
> >
> > and
> >
> > > new)
> > > on the same computer, however, that will cause a LOT of problems in
> > > interference between the current and development versions of my
> >
> > program.
> >
> > > Is there any way to separate these, so I can run mysql one way to
> >
> > access
> >
> > > the
> > > databases for the current version, and run it another way to access
> >
> > the
> >
> > > newer
> > > databases for the development version (and yes, many databases in
>
> the
>
> > > development version will have the same name as those in the current
> > > version).
> > >
> > > For example, if I ran a command "mysql", I'd get these tables:
> > >
> > > CaseData
> > > Clients
> > > GeneralSetup
> > >
> > > And if I ran an alias, like, say, "new-mysql", I'd get these tables:
> > >
> > > CaseData  (same name, different table)
> > > Clients  (same name, different table)
> > > GeneralSetup  (same name, different table)
> > > DataFilters
> > >
> > > I am running MySQL on Linux, if that makes a difference.
> > >
> > > Hal
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to