Jun
29
2010
--

Recall of Percona Server 5.1.47-11.0

Percona Server release 11.0 which we announced few days ago unfortunately was released with a bug introduced while implementing stripping comments in query cache which could cause server crash with certain types of queries if query cache is enabled. We have released Percona Server release 11.1 which includes a fix for this issue. If you can’t perform upgrade promptly you can disable query cache until you can do this.

We’re sorry for shipping release with such bug.

The issue with this bug in more details is as follows:
MySQL Query Cache works by checking incoming queries if they may be found in query cache – this is done by performing simple check if query is starting from SEL or comment. After Query is parsed and executed MySQL stores results for SELECT queries in Query Cache. There are cases when queries will not be considered as cachable query during first check, however result for them will be stored in the query cache. This rare case was not handled properly in the new feature added and it was causing MySQL to crash.

The most typical case for queries causing issues would be queries starting with brackets and having space before select such as ( select * from t1 ) Queries starting with brackets are often used with UNION queries.


Entry posted by peter |
9 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Jun
29
2010
--

Security Release: symfony 1.3.6 and 1.4.6

New releases for symfony 1.3 and 1.4 have been packaged sooner than expected to address a security vulnerability reported yesterday. It is strongly recommended that all applications running symfony 1.3 and 1.4 upgrade to this latest release immediately.

The Security Fix

One of the enhancements added to symfony 1.3 and 1.4 was the ability to cache rendered templates even when the current URL includes GET parameters (i.e. /feed?page=2). These parameters are used to create a unique cache key, which is then used to generate the directory structure where the cache files are stored.

These incoming parameters were not being properly cleaned, resulting the potential for directory traversal. For example, the response for /feed?page=.. would be stored higher in the cache’s directory structure than intended. The extent of the vulnerability depends on how each deployment’s file permissions are configured and only applies to applications with the cache setting enabled in settings.yml.

To see the changeset checkout r30031.

How to Upgrade

If you’ve checked out a copy of the tag from Subversion you can switch to
the latest version:

// symfony 1.3
$ svn switch http://svn.symfony-project.com/tags/RELEASE_1_3_6

// symfony 1.4
$ svn switch http://svn.symfony-project.com/tags/RELEASE_1_4_6

If you are using the PEAR package you can update using the pear command:

// symfony 1.3
$ pear upgrade symfony/symfony-1.3.6

// symfony 1.4
$ pear upgrade symfony/symfony-1.4.6

How to Report Security Issues

As we’ve stated in the past, please report security-related issues to security [at] symfony-project [dot] com rather than posting them directly to Trac. This will give the core team the opportunity to review and address the issue before word gets out.


Be trained by symfony experts
Aug 25 Paris – Sep 07 Online – Sep 22 Paris – Oct 05 Online – Oct 20 Paris

Written by in: Zend Developer |
Jun
29
2010
--

High availability for MySQL on Amazon EC2 – Part 2 – Setting up the initial instances

This post is the second of a series that started here.

The first step to build the HA solution is to create two working instances, configure them to be EBS based and create a security group for them. A third instance, the client, will be discussed in part 7. Since this will be a proof of concept, I’ll be using m1.small type instances while normally, the mysql host would be much larger. Using another type is trivial. I will assume you are using the command line api tools, on Ubuntu, install “ec2-api-tools”. The use of these tools simplifies the expression of the command compared to the web based console.

Create the security group

The instances involved in the MySQL HA setup will need to be inside the same security group for networking purposes and the help identify them. To create a security simply run this command:

CODE:

  1. yves@yves-laptop:~$ export EC2_CERT=cert-yves.pem
  2. yves@yves-laptop:~$ export EC2_PRIVATE_KEY=pk-yves.pem
  3. yves@yves-laptop:~$ ec2-add-group hamysql -d ‘nodes for HA MySQL solution’
  4. GROUP   hamysql nodes for HA MySQL solution

From now, I’ll always assume the EC2_CERT and EC2_PRIVATE_KEY environment variables are setup in your shell. Next, we need to authorize some communications for the security group. I’ll authorize 3306/tcp (MySQL) from hamysql, 694/udp (Heartbeat) from hamysql and 22 (SSH) from everywhere. You can be more restrictive for SSH if you want to.

CODE:

  1. yves@yves-laptop:~$ ec2-authorize hamysql -P tcp -p 3306  -o hamysql -u 834362721059
  2. yves@yves-laptop:~$ ec2-authorize hamysql -P udp -p 694  -o hamysql -u 834362721059
  3. yves@yves-laptop:~$ ec2-authorize hamysql -P tcp -p 22 -s 0.0.0.0/0
  4. yves@yves-laptop:~$  ec2-describe-group hamysql
  5. GROUP   834362721059    hamysql nodes for HA MySQL solution
  6. PERMISSION      834362721059    hamysql ALLOWS  tcp     3306    3306    FROM    USER    834362721059    GRPNAME hamysql
  7. PERMISSION      834362721059    hamysql ALLOWS  udp     694     694     FROM    USER    834362721059    GRPNAME hamysql
  8. PERMISSION      834362721059    hamysql ALLOWS  tcp     22      22      FROM    CIDR    0.0.0.0/0

Launch the instances

Now we can start creating our instances. Since this is only a proof of concept, I’ll built 2 m1.small instances, fell free to use other types. At the time I wrote this, the following AMI seems ok.

CODE:

  1. yves@yves-laptop:~$  ec2-describe-images ami-1cdf3775
  2. IMAGE   ami-1cdf3775    099720109477/ubuntu-images-testing/ubuntu-lucid-daily-i386-server-20100618      099720109477    available       public          i386    machine aki-aca44cc5         instance-store

So, lauching 2 of these,

CODE:

  1. yves@yves-laptop:~$  ec2-run-instances ami-1cdf3775 -n 2 -g hamysql -t m1.small -k yves-key
  2. RESERVATION     r-a29c31c9      834362721059    hamysql
  3. INSTANCE        i-a23a21c9      ami-1cdf3775                    pending yves-key        0               m1.small        2010-06-18T20:11:14+0000        us-east-1c      aki-aca44cc5         monitoring-disabled                                      instance-store
  4. INSTANCE        i-a03a21cb      ami-1cdf3775                    pending yves-key        1               m1.small        2010-06-18T20:11:14+0000        us-east-1c      aki-aca44cc5         monitoring-disabled
  5. yves@yves-laptop:~$  ec2-describe-instances
  6. RESERVATION     r-a29c31c9      834362721059    hamysql
  7. INSTANCE        i-a23a21c9      ami-1cdf3775    ec2-174-129-89-188.compute-1.amazonaws.com      domU-12-31-39-02-BD-C5.compute-1.internal       running yves-key        0               m1.small      2010-06-18T20:11:14+0000        us-east-1c      aki-aca44cc5                    monitoring-disabled     174.129.89.188  10.248.194.51                   instance-store
  8. INSTANCE        i-a03a21cb      ami-1cdf3775    ec2-174-129-187-170.compute-1.amazonaws.com     domU-12-31-39-03-A4-62.compute-1.internal       running yves-key        1               m1.small      2010-06-18T20:11:14+0000        us-east-1c      aki-aca44cc5                    monitoring-disabled     174.129.187.170 10.249.167.144                  instance-store

I don’t know about you but I don’t like multi-lines output so I wrote a small filter script to on one line the parameters I need separated by a delimiter.

CODE:

  1. yves@yves-laptop:~$  cat  filtre_instances.pl
  2. #!/usr/bin/perl
  3.  
  4. $SecGroup = ;
  5. $IPAdd = ;
  6. $Instance_ID = ;
  7.  
  8. while (<STDIN>) {
  9.         chomp $_;
  10.  
  11.         #print “Processing: $_\n;
  12.  
  13.         @fields = split /\t/, $_;
  14.  
  15.         if (/^RESERVATION/)     {
  16.                 $SecGroup = $fields[3];
  17.         }
  18.         if (/^INSTANCE/) {
  19.                 $IPAdd = $fields[17];
  20.                 $STORE = $fields[20];
  21.                 $Instance_ID= $fields[1];
  22.                 $AMI_ID= $fields[2];
  23.                 $PUBDNS = $fields[3];
  24.                 $STATUS = $fields[5];
  25.                 $START = $fields[10];
  26.                 print “$SecGroup|$IPAdd|$Instance_ID|$AMI_ID|$PUBDNS|$STATUS|$START|$STORE \n
  27.         }
  28. }

and now we have

CODE:

  1. yves@yves-laptop:~$ ec2-describe-instances | ./filtre_instances.pl | grep hamysql
  2. hamysql|10.248.194.51|i-a23a21c9|ami-1cdf3775|ec2-174-129-89-188.compute-1.amazonaws.com|running|2010-06-18T20:11:14+0000|instance-store
  3. hamysql|10.249.167.144|i-a03a21cb|ami-1cdf3775|ec2-174-129-187-170.compute-1.amazonaws.com|running|2010-06-18T20:11:14+0000|instance-store

which is to my opinion easier to manipulate.

Configuring Heartbeat

Now, let’s configure Heartbeat. The first thing to is to set up the hostname on both host. Heartbeat identifies the host on which it is running by its hostname so that’s mandatory step.

First host:

CODE:

  1. yves@yves-laptop:~$ ssh -i ~/.ssh/yves-key.pem ubuntu@ec2-174-129-89-188.compute-1.amazonaws.com
  2. ubuntu@domU-12-31-39-07-C8-32:~$ sudo su -
  3. ubuntu@domU-12-31-39-07-C8-32:~# hostname monitor

Second host:

CODE:

  1. yves@yves-laptop:~$ ssh -i ~/.ssh/yves-key.pem ubuntu@ec2-174-129-89-188.compute-1.amazonaws.com
  2. ubuntu@domU-12-31-38-04-E5-E4:~$ sudo su -
  3. ubuntu@domU-12-31-38-04-E5-E4:~# hostname hamysql

We don’t really need to set /etc/hostname since it is overwritten when the instance is started, even when using EBS based AMI. The next step is to install Heartbeat and Pacemaker on both host, with Ubuntu 10.04, it is very straightforward:

CODE:

  1. root@monitor:~# apt-get install heartbeat pacemaker
  2.  
  3. and
  4.  
  5. root@hamysql:~# apt-get install heartbeat pacemaker

Then we can proceed and configure Heartbeat, Pacemaker will come later. Heartbeat needs 2 configuration files, /etc/ha.d/authkeys for cluster authentication and /etc/ha.d/ha.cf which is the configuration file per say. On both host, the chosen key in the authkeys file must be identical and good way to generate unique one is to run “date | md5sum” and grab a substring from the output.

CODE:

  1. root@monitor:/etc/ha.d# cat authkeys
  2. auth 1
  3. 1 sha1 c97f2bb4b5ae90f149dc314ed

Also don’t forget to restrict the access rights on the file like:

CODE:

  1. root@monitor:/etc/ha.d# chmod 600 authkeys

For the /etc/ha.d/ha.cf file, since EC2 does not support neither broadcast or multicast within the security group, we need to use unicast (ucast) so both files will not be identical. The ucast entry on one host will contain the IP address on the internal network of the other host. On the monitor host, we will have:

CODE:

  1. root@monitor:/etc/ha.d# cat ha.cf
  2. autojoin none
  3. ucast eth0 10.249.167.144
  4. warntime 5
  5. deadtime 15
  6. initdead 60
  7. keepalive 2
  8. crm respawn
  9. node monitor
  10. node hamysql

and on the hamysql host:

CODE:

  1. root@hamysql:/etc/ha.d# cat ha.cf
  2. autojoin none
  3. ucast eth0 10.248.194.51
  4. warntime 5
  5. deadtime 15
  6. initdead 60
  7. keepalive 2
  8. crm respawn
  9. node monitor
  10. node hamysql

Let’s review briefly the configuration file. First we have setup “autojoin none” that means no host not listed explicitely in the configuration file can join the cluster so we know we have at most 2 members, “monitor” and “hamysql”. Next is the ucast communication channel to reach the other node and the timing parameters. “warntime” is a soft timeout in second that logs the other node is later while “deadtime” is the hard limit after which heartbeat will the consider the other node dead and start actions to restore the service. The “initdead” is just a startup delay to allow host to fully boot before attempting actions and “crm respawn” starts the Pacemaker resources manager. Finally, we have the two “node” declarations” for the cluster members.

So we are done with the configure, time to try if it works. On both hosts, run:

CODE:

  1. service heartbeat start

and if everything is right, after at most a minute, you should be able to see both heartbeat processes chatting over the network

CODE:

  1. root@monitor:~# tcpdump -i eth0 port 694
  2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  3. listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
  4. 20:38:36.536302 IP domU-12-31-38-04-E5-E4.compute-1.internal.57802> domU-12-31-39-07-C8-32.compute-1.internal.694: UDP, length 211
  5. 20:38:36.928860 IP domU-12-31-39-07-C8-32.compute-1.internal.34058> domU-12-31-38-04-E5-E4.compute-1.internal.694: UDP, length 212
  6. 20:38:38.580245 IP domU-12-31-38-04-E5-E4.compute-1.internal.57802> domU-12-31-39-07-C8-32.compute-1.internal.694: UDP, length 211
  7. 20:38:38.938814 IP domU-12-31-39-07-C8-32.compute-1.internal.34058> domU-12-31-38-04-E5-E4.compute-1.internal.694: UDP, length 212

We can also use the “crm” tool to query the cluster status.

CODE:

  1. root@monitor:~# crm status
  2. ============
  3. Last updated: Tue Jun 29 13:56:04 2010
  4. Stack: Heartbeat
  5. Current DC: monitor (504f45ea-7aee-4fa5-b0ee-a5ac07975ce4) – partition with quorum
  6. Version: 1.0.8-042548a451fce8400660f6031f4da6f0223dd5dd
  7. 2 Nodes configured, unknown expected votes
  8. 1 Resources configured.
  9. ============
  10.  
  11. Online: [ monitor hamysql ]

Install MySQL

For the sake of simplicity, we will just install the MySQL version in the Ubuntu repository by doing:

CODE:

  1. root@hamysql:~# apt-get install mysql-server-5.1

The package install MySQL has an automatic startup script controlled by init (new to lucid). That’s fine, I will surprise you but Pacemaker will not manager MySQL, just the host running it. I’ll also skip the raid configuration of multiple EBS volumes since it is not the main purpose of this blog series.

EBS based AMI

Others have produce excellent article on how to create EBS based AMI, I will not reinvent the wheel. I followed this one: http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html

Upcoming in part 3, the configuration of the HA resources.


Entry posted by Yves Trudeau |
2 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Jun
27
2010
--

A week of symfony #182 (21->27 June 2010)

The Symfony2 Online Conference gathered this week hundreds of symfony developers. The introduction of a brand new form framework and its validation component was the first big announcement of the conference. In addition, Symfony2 unveiled its killer feature, a built-in HTTP accelerator that greatly improves the performance of Symfony2 applications. Lastly, the 30,000th changeset of symfony 1.x branch repository was committed this week.

Development mailing list

Development highlights

Symfony 1.X branch:

  • r29990: [1.3, 1.4] added sfOutputEscaperObjectDecorator::__isset()

Symfony 2.X branch:

  • 8c0f7e8: [OutputEscaper] switched to casting object as string rather than call magic method directly
  • d6a7b43: [DomCrawler] fixed add() method to support HTML content as string
  • 7db3ef7: [WebBundle] renamed collectors.xml to profiling.xml
  • 8ea13f9: [HttpKernel] fixed order of arguments for assertions – to be coherent with the order of PHPUnit assertions
  • 0e3b88a: [DependencyInjection] fixed inheritence when using extensions
  • c486e1b: [DependencyInjection] reverted
  • 7661e9a: [HttpKernel] changed the semantic of Response::__toString() to something more useful
  • da23747: [HttpKernel] removed Response assertions
  • 82d83fc, 449bf62: [PropelBundle] added build-sql command
  • 3ec2577: [PropelBundle] added auto package based on namespace
  • 097b87b: [PropelBundle] made Build task a hub for other tasks
  • 82890a3: [PropelBundle] fixed sqlmap filenames
  • a05a82a: fixed autoloading for code coverage
  • 97162cf: refactored cookie management
  • ed72875: Renamed Bundle classes to be named like the bundle itself for more clarity
  • 785da59: [HttpKernel] added the cache system
  • 99a63fe: renamed WebBundle to FoundationBundle as the bundle is not just about the web
  • 3eb5545: [Routing] added some unit tests
  • 6e310bd, bcd4b6d: Integrated Form, Validator, I18N and File component
  • ca3dc31: Decoupled Form component from intl extension
  • be9148a: Initial entry of DoctrineMongoDBBundle
  • 763a99e: [TwigBundle] added an asset tag

…and many other changes

Development digest: 85 changesets, 21 bugs reported, 6 bugs fixed, 6 enhancements suggested, 1 enhancement closed, 1 documentation defect reported, and 10 documentation edits.

Documentation

New Job Postings

  • PHP Development Team (1 frontend, 2 backend) – Contact: patricia.scaife@gmail.com

New symfony bloggers

Plugins

  • New plugins
    • sfLESSPlugin: It’s descendant of sfLessPhpPlugin, but with LESS2 compiler in mind.
    • sfAdminImprovedPlugin: Develop better backends with symfony.
    • unmDoctrineActAsUuidablePlugin: This is a Doctrine behavior that will add a UUID to your tables. It will automatically generate a unique id on the row at insert using the built-in uniqid() php function.
    • fpFilePlugin: Simple file abstration layer under symfony framework structure. Provides temp folder object, public file and so on.
    • ioEditableContentPlugin: Allows for frontend/inline editing of fields and forms. The goal is to allow content to be inline-editable without getting in the way of the developer.
    • sfDoctrineSlotPlugin: Allows for non-existent columns of data on a model to be persisted and retrieved as if those columns existed in the schema.
    • sfTheme2Plugin: allows for themes to be used with your symfony project.
    • lyMediaManagerPlugin: The plugin offers a simple web interface to upload and manage images, documents and other media files directly from the backend of your symfony application. File upload and file browsing features can be easily integrated into the TinyMCE editor.
    • fpBuildPlugin: Simple task that runs a profile file with a set of console commands. In doc directory you can find standard profiles.
  • Updated plugins
    • ExtjsGeneratorPlugin:
      • tweaked isEmpty formfilter checkbox
      • fixed partials config
      • renamed extjs components attributes to variables
      • added methods array to all extjs components
      • improved generated partials with examples
      • formatted javascript files
      • added new ux.IsEmptyCheckbox
      • switched widgets to use new ux.IsEmptyCheckbox
      • added sfExtjs3Plugin configurations for our ux javascript classes
      • fixed ux.IsEmptyCheckbox boxLabel alignment
      • fixed regression with object_actions
      • fixed naming of javascript resources
      • updated Ext.ux.IconMgr.tar.gz with minimized javascript
      • added minimized javascript for all javascript assets
      • added env detection to use minimized javascript when in prod environment
      • fixed bug with gridpanel plugin configuration
      • switched tabpanel default TabCloseMenu plugin to use new extjs plugin loading method
      • implemented csv export for list as default list action
      • fixed bug with defaultValue option in ExtjsWidgetFormSelect
      • fixed bug on boolean filters having withEmpty checkbox
      • removed extra whitespace in configuration parts
      • added getFilterDefaults population when widgetOptions defaultValue is used
    • sfProjectAnalyserPlugin: added code and comments length for actions, added total code length for modules, added an alert management, added a yaml multi config file
    • sfMarkdownPlugin: removed support for Markdownify
    • sfPhpunitPlugin: backup sfConfig before each test and restore after
    • sfEmailMeAFireShotPlugin: added proper routing
    • nahoSecurityPlugin: fixed credentials setting, fixed superuser credential check
    • sfDatagridPlugin: fixed js when no freezepanes
    • isicsBreadcrumbsPlugin: added plugin configuration class, added options to breadcrumbs items, added missing comments for isicsBreadcrumbs methods, updated package dependencies and API, added support for escaping strategy, added options for root item in component
    • ncPropelChangeLogBehaviorPlugin: refactored ncPropelChangeLogBehavior class, fixed issue with postDelete() method when there wasn’t a sfContext instance available
    • sfExtjs3Plugin: added ability to add to sf_extjs3_classes via another plugin, removed ux class definitions
    • sfImageTransformExtraPlugin: added a task to check if everything is setup correctly for caching generated, added rudimentary test case for new check-caching task, added check for sfImageTransformator module to be enabled, restructured README and added some more things to the TODO list
    • sfPropel15Plugin: fixed mergeRelation() with latest changes in sfForm
    • diemProject:
      • core: fixed possible JS error on text widget editing window
      • front: allowed resizing in widget editor
      • admin: proper position sorting in “manage meta” table
    • apostrophePlugin:
      • fixed logic for displaying the ‘this page’ button and the actual ‘this page’ div
      • show “this page” dialog to editors and managers, not just admins
      • fixed editPdfSuccess, editVideoSuccess and _editImage partial form markup
      • permissions was in different locations in the edit form across media types
      • all the form classes in the main lib/form folder now extend a Basea* class
      • the privileges portion of the page settings form is broken out to a single allPrivileges partial so that you can easily override that to add or remove parts of it when templating out the page settings form
      • aPageTable::checkPrivileges is now a wrapper around $aPageTable->checkUserPrivileges()
      • $aPageTable->checkUserPrivilegesBody() is the core privilege checker method
      • aTools can now be extended at the project level without copying and pasting the entire class
      • aTools::$savedCurrentPage replaced with aTools::$pageStack, which allows arbitrarily deep nesting of slots on virtual pages

New symfony powered websites

They talked about us


Be trained by symfony experts
Aug 10 Online – Aug 25 Paris – Sep 07 Online – Sep 22 Paris – Oct 05 Online

Written by in: Zend Developer |
Jun
24
2010
--

Symfony2 Online Conference

Yesterday and the day before, Sensio Labs organized the first Symfony2 online
conference. It was a great success with more
than 350 attendees (from over 35 different countries), and a dozen hubs around
the world. Thankfully, the platform worked fine.

For those who did not attend the conference, the slides are available now:


Be trained by symfony experts
Aug 10 Online – Aug 25 Paris – Sep 07 Online – Sep 22 Paris – Oct 05 Online

Written by in: Zend Developer |
Jun
24
2010
--

Talk about Symfony2, not Symfony 2

A few weeks ago, I had an interesting discussion about how to name Symfony2
from the perspective of a Symfony developer.

As we maintain a lot of different symfony versions, it is sometimes difficult
to find documentation for the exact version you are using. So, when you start
using symfony 1.4 for instance, and search for something on a search engine,
you find lots of results for other versions of the framework like 1.0, 1.1, and
1.2. With Symfony2, the problem will be even more annoying, as the
framework is very different.

By removing the space between Symfony and the version, like in Symfony2, you
can search for “Symfony2″ instead of “symfony”, and search engines will then
only return results related to “Symfony2″.

So, please, as of now, whenever you write a blog post, a piece of
documentation, a tweet, or a presentation, never write “Symfony 2″ again. Use
Symfony2 instead. That way, someone can search for “Symfony2 routing” and he
will have only Symfony2 results.

I have updated the Symfony2 documentation accordingly, which should be
available later today ;)


Be trained by symfony experts
Aug 10 Online – Aug 25 Paris – Sep 07 Online – Sep 22 Paris – Oct 05 Online

Written by in: Zend Developer |
Jun
22
2010
--

Zend Framework 1.10.6 Released

The Zend Framework team announces the immediate availability of Zend
Framework 1.10.6, our sixth maintenance release in the 1.10 series. This
release includes more than 30 bug fixes.

You may download it from the Zend Framework site .

Jun
21
2010
--

Zend Config tree solution

The best part of my favorite PHP framework, Zend framework is Zend_Config. With Zend Config you can run you web application with more power full configuration that any one can change your application setting for use.

Read more information about Zend Config at Zend framework manual for Zend Config.

But in most web application you may have many configuration file with special format such as INI , XML or PHP . Also some of configuration is for one part of your application and may you put in special folders.

Jun
21
2010
--

Percona Server 5.1.47-rel11.0

Dear Community,

Percona Server version 5.1.47-rel11.0 is available for download now.

The changes in this release include:

New features

Fixed bugs

  • #573100 Can’t compile 5.1.46
  • #573104 separate name in INNODB_SYS_TABLES table
  • #580324 Security bug in upstream
  • #586579 Percona Server 11 fails to compile with CFLAGS=-DUNIV_DEBUG
  • #569156 CentOS 5: mysql-server conflicts with MySQL-server
  • #589639 Recovery process may hang when tablespaces are deleted during the recovery
  • #570840 deb package conflicts with libdbd-mysql-perl

The binary packages are available on our website.

Starting from this release there is a uniform naming scheme for Percona binaries for 5.0 and 5.1 based packages. RPM are named as:
Percona-Server-<sub package>-<package suffix>-<mysql version>-<release number>.<revision number>.<os code>.<platform>.rpm
Examples:

CODE:

  1. Percona-Server-server-51-5.1.47-rel11.0.46.rhel5.x86_64.rpm
  2. Percona-Server-client-51-5.1.47-rel11.0.46.rhel5.x86_64.rpm

Here:

  • “Percona-Server” is a name of the product.
  • “server” or “client” – sub-package
  • 51 – suffix, which means the packages are based on 5.1.x versions

Together “Percona-Server-server-51″ is the package name.

  • 5.1.47 is the MySQL version the package is based on
  • rel11.0 is  release number
  • 46 is BZR revision
  • rhel5 is an operating system code
  • x86_64 is a platform

Percona Server obsoletes Percona XtraDB both on rhel and debian paltform. To install RPM or DEB package from Percona repository you just have to do “yum install Percona-Server-server-51″. If there is Percona-XtraDB installed it will be replaced by Percona Server. However Percona-Server doesn’t obsolete MySQL, so you have to deinstall it first. Conflicts are inevitable otherwise.

If there are MySQL dependant  applications already installed, you might want to install Percona Shared Compat package before installing Percona Server.

The latest source code of Percona Server, including development branch you can find on LaunchPAD.

Please report any bugs found on Bugs in Percona  Server.
For general questions use our Pecona-discussions group, and for development question Percona-dev group.

For support, commercial and sponsorship inquiries contact Percona


Entry posted by Aleksandr Kuzminsky |
13 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Jun
21
2010
--

PHP remote debugging with Xdebug and Eclipse PDT

Debugging is an invaluable part of software development. I find it very useful in a variety of situations, for instance when I want to understand how a routine works or I need to get rid of a bug that is not exactly easy to fix just by reading the code.

My main goal in this post is to show you how to set your debugging environment with Eclipse PDT and Xdebug.

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com