What version of MySQL should I use for a CRM? - mysql

I've read through a number of pages detailing the version differences between the different MySQL versions, but none of them have given me a real clear picture as to what is best for the application I am making. I'm in the process of building a CRM which will handle 20,000 customers at launch and built on a LAMP stack. The OS will either be CentOS or FreeBSD.
Right now for test purposes we've been using a MySQL 5.0 server for the database, but we are wondering which version we should use for production. If anyone could give some thoughts as to the pros and cons of using 5.0 vs 5.1 vs 5.5 vs 5.6 in the context of a CRM application, it would be most appreciated.

TL;DR 5.5
For a new software rollout, it makes sense to integrate and do final testing with the latest generally available (GA) release of your infrastructure components.
Right now that's 5.5.20 of the MySQL community server. 5.6.x is considered a development release. It probably doesn't make sense for you to try to do integration and final testing with such a release, unless it offers a new feature that's a critical success factor for your new software. (But then you should ask yourself whether it makes sense to make your product dependent on exotic new features in unfinished dbms releases.)
EDIT... #rkosegi has a good point. If you're going to deploy on an enterprise grade linux server distro like Red Hat Enterprise Linux (rhel) use the version it supports. 5.1 works fine.

I think better you should use v5.1.XX because it's in active development state and stable too.
MySQL has stopped working on v5.0 i guess extend support also will expire soon.
http://dev.mysql.com/doc/refman/5.0/en/

Related

MYSQL Backward compatible to 5.1.1?

I have a Wordpress site that was developed on a server running the latest version of MYSQL, however, I've just found out the host server (BT) is running 5.1.1. and they have no plans to upgrade anytime soon.
Does anyone know if there is a way of converting the database so it runs on 5.1.1 with no issues caused re the site being built in the latest version of Wordpress?
If this is a massive issue, then I do have some alternative hosting options, but I'm hoping for a way forward re conversion - any geniuses out there?
Many thanks
I doubt that BT is running MySQL 5.1.1. That version was never released. It was an internal development milestone in 2005.
The first GA release of the 5.1 branch was 5.1.30 in 2008. The last 5.1 release was 5.1.73 in 2013. But after 2013, 5.1 has been in "sustaining support" which means they will not make any new versions or fixes.
You shouldn't deploy to a hosting site that still runs any 5.1.x version. A site that is so far behind is probably behind on other software too, and I would not be surprised if they have known security vulnerabilities.
Wordpress officially requires MySQL 5.6 or later, according to https://wordpress.org/about/requirements/.
You could try to test that by testing on MySQL 5.1 (assuming you can find an installation package of MySQL 5.1). Use mysqldump to export data from your 5.6 database server and then import that to MySQL 5.1. The output of mysqldump wraps newer syntax in special comments that will be ignored by older versions of MySQL Server.
Regardless, my recommendation is:
Find another hosting service running MySQL 5.6 or 5.7.
Develop and test your site with the same versions of all software (MySQL, PHP, Apache, etc.) that you will eventually deploy to.

Minimal requirements for Apache and MySQL for Symfony 2.8

Symfony 2.8 requires PHP version to be at least 5.3.9, however nothing is mentioned regarding Apache and MySQL versions in the documentation. What are the minimal requirements for them?
Apache and MySQL version are not exactly relevant there: Apache acts merely as a caller to PHP (in the most common mod_php stack), so it does not interact directly with Symfony. Plus Apache release cycles tend to be longer (2.2 from 2005 is still around).
Regarding MySQL, it concerns Doctrine exactly, especially the DBAL - Database Abstraction Layer. Doctrine platforms documentation does not state much about it, we can infer it supports MySQL 5.0+.
Of course, the higher you can go is the better. PHP 5.3 is not supported anymore, nor PHP 5.4 or PHP 5.5 (security bugs supports stopped last week). Apache 2.2 you need the very last "patch" version. MySQL dramatically improved in 5.5+.
If nothing is mentionned in the documentation,then it means any version can be used most of the time.
I think you should simple use the latest version available in your distributions's repository.

Open Source Application Server Solution

A project with the following technologies and components has surfaced: to up a Web stack solution initially composed with Ubuntu, JDK, JBoss, Spring MVC 3.0+, and MySQL.
In planning this project, I have been struggling to find answers to the following questions for first steps, best practices, and sequence:
1) Does the JDK (and JBoss) need to be installed as ‘root’? (I have seen articles that mention it is not a good idea to operate in root unless absolutely necessary due to the fatal consequences.)
2) Does Ubuntu need to be installed as a Server in order to accomplish all this, or can it also be installed as a Desktop? I have not been able to determine if having a JBoss and MySQL need to be installed on top of Linux as a server.
3) Does Maven need to be used within Spring STS in order to get JBoss, and MySQL (and in the future Hibernate) to work successfully together?
4) My intent is to install in this order: a) Ubuntu -> b) Java -> c) JBoss -> d) Spring STS -> and e) MySQL. Are there any blatant conflicts in this sequence?
JBoss will require Java (recommend Java 7) before it will do anything. I don't think it really "installs" per-say, but rather just unpacks to some directory (even if you install from the package manager, it just really extracts itself). I question your need for Spring since JBoss and Java EE in general really does everything Spring does, and better now-a-days. Unless you have a specific requirement for Spring, I'd question this extra dependency.
For linux - in a high level, any OS can be a "server", all it needs is to be capable of serving things (web pages, ssh connections, etc). In M$ world, different "levels" of the OS have been specially designed based on anticipated task/workload. So for example, while Windows 7 can indeed run as a server, it was not designed for it and therefore may not be optimized or include helper utilities and tools to make life easier as a sys admin of the system. Windows Server on the other hand does include all the "normal" server tools and lots of goodies to make maintaining and setting the server up easier.
In linux land, this is no such thing. Linux is the kernel that talks back and forth with the bare metal, etc... and Distro makers will take that and build an OS around the kernel, basically just attaching any packages they feel their distro needs... such as wget, or cat, or any other standard userland apps, plus some non-standard such as mysql or java or whatever they want.
Now, some distributions of linux will tailor themselves at being "server" ready, while others will tailor themselves at being a desktop OS. The difference? It's really just whatever default packages the distribution maker decides to include or not. For example, the overwhelming majority of linux servers are run completely headless, and therefore there is absolutely no reason to have X11 and a huge bloated GUI environment installed and/or running on that system... it's pointless. Also, an "average joe" user does not need MySQL installed by default on his desktop system since it would only bloat his system and he likely won't ever use it.
So basically it comes down to default installed packages.
Some linux server distros take this further and exercise extreme caution when making updates, patches, or new releases in the name of stability and security, while on the other hand most desktop distros are more haphazard with their updates since if it breaks a home users web browser, it's probably not a huge deal... but if a server update breaks the webserver application stack, now that's a serious problem.
So you'll find server OS's like CentOS (based on upstream RHEL) are extremely slow to bring in the "latest and greatest" features that desktop OS's get early on. Their goal is high security and long term stability.
Now, for Ubuntu. While I certainty know a lot of folks run Ubuntu as their server OS choice (partly due to Amazon choosing Ubuntu as the default linux VM for their ECS cloud), but I'd really question this. Ubuntu is not focused on being a server. It's focused on being a great all-around desktop oriented OS. Yes the LTS version is meant for long term stability, but it's based out of a desktop OS, so it's still not the focus.
IMHO, I'd go with CentOS because it's free and completely binary compatible version of RHEL - and RHEL is the de-facto standard for enterprise-grade linux servers. Be aware though, the RHEL way of doing things is a bit different than the debian way -- so there is no apt-get, you must use yum install instead. Startup scripts are different and some ways of doing things are different, but really, once you know linux, you know linux.
EDIT: Also check into Jenkins - its a free opensource continuous integration system that runs on JBoss or Tomcat or any other container, and can automagically pull your code from a repo (github, git, svn, etc) and compile/package it then push it to live deployment. You setup your ANT or Maven build scripts, and it can kick off on a schedule or however you configure it.
EDIT EDIT: I'd also recommend using OpenJDK -- as it's likely included in your package manager (for just about every disto) and will be more updated than the oracle version if it's in your package manager too. I've found most "server" distros will have OpenJDK 7 while only having Oracle java 6 in their package managers. Also, installing it via the package manager will enable you to keep it updated a ton easier.
Installed as root, why not? Run as root, probably not a good idea.
If you want a desktop, install a desktop distrib. If you want a server, install a server distrib. This doesn't change what can and can't be run in the OS. It only changes what is installed by default.
Maven is a build tool. JBoss doesn't care how you build your app. All it cares about is if the application you deploy is a valid Java EE application.
No. You need an OS, so Ubuntu must come first. JBoss and (AFAIK) Spring STS need a JRE to run, as they're Java applications, so Java should be installed before them. MySQL is independent of JBoss, STS and Java, so you can install it whenever you want.
Note that if you're struggling just with this installation part, be prepared to suffer with the rest. Building a Java EE webapp is not a piece of cake, and you should probably find some experienced developer to help you, as it seems you're only beginning with Java.

couchbase community edition on more than 2 nodes

i am currently building a website around a couchbase database and if it gets popular it is likely that i will be hosting the site and database on more than 2 machines at some stage in the future. its a fair way off still, so i would like some information to help me decide which direction to go from here. my questions are:
does anybody know if i am allowed to deploy the free edition (ce) of couchbase on more than 2 nodes? if the answer varies depending on the version then please could you tell me which version permits this (if any).
if it is not possible to deploy the the free version of couchbase on more than 2 nodes then could someone explain whether this is prevented by software, or by law?
i found the following statement on the couchbase website:
Community Edition (CE) are best for non-commercial developers, where
taking some time to figure out or resolve issues doesn’t result in
major problems. There are no constraints on using these binaries on
production systems
which makes it sound like the software can be installed on as many machines as desired in production without a requirement to pay, but then another couchbase page reads:
Looking for the free version? Our Enterprise Edition Free version
offers the full functionality of Couchbase Server, with free unlimited
use in development and up to two nodes in a production cluster.
so i'm confused. maybe this last one is just referring to the cost of support and not any cost associated with the software itself?
You can deploy Community Edition on 2 nodes and more. Restrictions exist only for Enterprise Edition:
http://www.couchbase.com/couchbase-support
If you hover over the "Why Enterprise" or "Why Community" link on the download page, you get the details:
Community Edition:
Choose Community Edition if you're working non-commercial projects:
For enthusiasts able to resolve issues independently
Untested binaries that do not include the latest EE bug fixes
No constraints on using binaries on production systems
Help available from the Couchbase user community
So you can use the Community Edition without constraints on an unlimited number of nodes in production or for development.
Enterprise Edition:
Choose Enterprise Edition if you're working on funded project, here's why:
Rigorously tested, production-ready release with latest bug fixes
Free for testing and development for any number of nodes
Free for production up to two nodes
Annual subscription available, includes support and hot-fixes
The Free Enterprise Edition constraints are what is referred to in the table referenced in one of the other answers in the "Free" Collumn: http://www.couchbase.com/couchbase-support.
The packages also have the license files describing the binary licenses.
And of course the source code for Couchbase Server is open, under Apache 2.0 license.
These are two different versions, Community Edition vs Enterprise Edition. CE is free to be deployed on as many as you want to, But with Forums only Support vs Enterprise is free for up to 2 nodes in production.
That said, if your data is mission critical to you or your clients, The recommendation is to migrate to the Enterprise edition. If your application can be supported by forums help only, there is no need to move from your CE Couchbase Server.

How stable is MySQL 5.4

I have just found out about MySql 5.4 –
How stable is this version?
Where can I find more information on this version?
MySQL 5.4 is a preview/test release, first one under Oracle. As a test release is not intend to be used on a production stations.
They say that the most important change in 5.4 was to introduce MySQL Optimizer which makes some of the queries run 90% faster.
Oracle wants to release MySQL more often and be more open for community ideas and use more community code.
5.4 is officially a preview release, so not officially recommended for production yet. However, I do know of quite a few larger websites that are using it in production thanks to the terrific gains in performance.
As far as more information:
http://dev.mysql.com/doc/mysql-5.4-features/en/index.html
http://dev.mysql.com/doc/refman/5.4/en/news-5-4-0.html
http://dev.mysql.com/tech-resources/articles/mysql-54.html