Difference between MySQL release versions - mysql

What is the difference between mysql-5.5.8.zip and mysql-5.5.8-win32.zip in the http://dev.mysql.com/downloads/mysql/ download page. I have a Win 2K environment, what binary should I use and why does it have a huge size difference between the above?

The smaller package does not contain test suite and embedded server.
Anyway, I suggest you use the MSI installer instead - installation and configuration are way more straightforward.

Related

Container Optimized System performance

I am doing some load tests and according to my observations seems the cos-stable machine underperforms a normal linux machine.
I have started up the cos-stable machine with a container running node-alpine linux with a js application and execute a load test, then I did the same using an ubuntu machine, installing the node on it to run the same js application.
Both OS' were using the same resources, n1 machines with 2vcpu, 8Gram and 10G SSD disk.
Does anyone have information about how to tune the cos-stable container to have the same performance as I had in the ubuntu machine?
Thanks.
well according to the comment of this user in the docker forum
I have to agree with the others, I always use official images if I can and I always select the Alpine version if available. Why use Alpine? Two reasons:
Much small images. Ubuntu is 188MB alone. Then you add your app on top
of that probably exceeding 200MB. Alpine Linux is only 4MB! After
adding my Python runtime and code most of my images are only 52MB.
Compare that will almost 200MB of Ubuntu. Smaller images are smaller
upload/download and take up less disk space.
In adding to that, if you are running the same application in both machines with different OS you have to consider pros and cons of using that OS
if you want to customize your Container Optimized OS VM creation you can follow the instructions in this link
I hope this information can be useful.

Portable MongoDB and MySQL/PostgreSQL binaries

I'm currently developing a Python application and I would like to know if there are any ways to pack MongoDB and MySQL (or Postgresql) into the application. By packing I mean taking those application binaries and distribute them with the application files.
For example, Metasploit PRO has some applications like nginx, postgresql, java, ruby, etc... under /opt/metasploit (they come with the application setup), and I would like to know if that could be done with any Linux application. And if so, how could I "choose" what binaries are needed? Would they work for any Debian distro? Can any application follow that procedure? Could it be done with MySQL and MongoDB?
P.D: I would like to do this to distribute one unique application instead of having to "obligate" the user to setup the databases independently, and for pure curiosity.
Thank you very much in advance!
MongoDB already distributes its binaries as standalone binaries in the sense that everything needed for the database (or shell tools) to run is included in the respective binary (mongo/mongos/mongod).
However, these binaries are OS (Linux distribution)-specific. Meaning, for example, they dynamically link against libssl and libcurl and you need to have the right versions of those libraries on the host system. So, for example, a MongoDB binary for Ubuntu 14.04 is likely to not work on Ubuntu 16.04.
As far as I know MongoDB does not support building for "generic linux". Only specific OSes like Ubuntu 16.04 are supported.
With that said, you could possibly build a "portable" MongoDB yourself if you accept some limitations, since its source code is available:
You need to figure out how to build MongoDB on some linux distribution that gives you the baseline glibc that would be compatible with all of your targets.
You may have to forego functionality like TLS connections, or figure out how to link against openssl statically (probably non-trivial).
This would be easier with older MongoDB versions (4.0, 3.6) since they have fewer system dependencies.
I think you can pack the required services and your application as Docker image or Virtual Machine box.
As my experience, I used to package the MongoDB and other Linux CLI tools with my NodeJS web application into a VM box using Vagrant. Or you can use Docker if you prefer container-based application.
If you use Vagrant, the provisioning feature may help you to setup the database before running the application. Check https://www.vagrantup.com/docs/provisioning

How to get the MySQL Server Only installer package?

I'm working on a small .Net project, I used in my project EntityFramework with MySQL server, i tried the official Full MySQL installer, but i need only the server from that package to reduce the size of my application installer, like that used in PHPMyAdmin Installer, please show me how/where find that.
No minimal installation is available from MySQL's site. They used to have an essentials version, but it's unavailable for versions >5.1.
One solution to your case is to create your own installation - it's not very complicated. The process (in general) is to include bin,data,lib, and share folders from a clean installation, run mysqld --install, and copy your my.ini file (you may need to tweak with its data folder). This can give sometimes you an installation size of about 5 MB.
Another solution will be to use MariaDB as a MySQL alternative - their MSI is about 80 MB.
there are smaller versions, about 32.1MB it only allows you just to install the base server and configure the instance, you can use things like NAVICAT to manage it, have been using it for a lot of my .NET projects and it has been working very well
you can get it from https://filehippo.com/download_mysql/

Running another MSI through visual studio installer

I want to install MySQL installer msi with my setup.(MySQL installer has to install silently. I am using batch file in custom action to do this.)
However, the problem is that MySQL's msi cannot be run from within main setup.msi it gives out 1618 error(Another installation needs to be completed.) I would like to know an easy way around this.
Background info: MySQL installer unpacks the manifest which contains MySQLInstallerConsole.exe it is then called through another cmd command to install MySQL.
So all I am looking to do is to execute MySQL installer so that it unpacks the manifest. Later I would call the MySQLInstallerConsole.exe to install MySQL through custom action.
Just to mention even more possibilities- some my colleagues mentioned (VS bootstrapper, burn):
Just start writing a batch or script for calling the two MSIs after each other.
Always a good starting point maybe, if you have no experience with MSI.
Write your own mini setup.exe bootstrapper with 5 lines of code to do the above.
(To be more concrete in "Third party tools":) Buy InstallShield or Advanced Installer or InstallAware, this are the tools with ready GUIs to do such easy bootstrapping.
I would recommend the second out of them. Starting another MSI are only two clicks. Similar with the other. But there are BIG differences between the three, especially InstallAware is special.
! Mentioned "mini bootstrappers" of those tools are not as powerful as Burn or the others followed:
Buy the ready setup suite SetupFactory which can be used as a bootstrapper for MSIs.
Use the InstallShield "Suite" project type, if you buy the Premium Edition of InstallShield. Costs big bucks, but has a friendly user interface. I was successful using it before some years, but I had to work around a handful of bugs as always with IS (but I guess you will discover bugs with most tools. Way it is.)
There (again) Burn would come in handy, you could fix potential bugs or behaviours on your own here ...
Only it could take you more time in the beginning.
... Of course there may be more.
There isn't an easy work around. Windows Installer enforces a 1 installation at a time rule through the use of a mutex. You need to create a bootstrapper / chainer to serialize the installation of your packages. Visual Studio Deployment Projects don't support this. I'd suggest looking at Windows Installer XML (WiX) and it's Burn boostrapper / chainer engine.
The documentation is a bit sparse, but in the Visual Studio world the customized bootstrap is the Bootstrap Manifest Generator. The docs start here:
https://msdn.microsoft.com/en-us/library/ms165429.aspx
and there is an old article here:
https://msdn.microsoft.com/en-us/magazine/cc163899.aspx
but it's not clear how much info and support is available since setup projects were removed from setup projects and then restored.

Automatic tool detection with Jenkins/Hudson?

What mechanisms exists in Jenkins/Hudson to automatically detect tools that are installed on the Nodes?
For example, .NET frameworks, Visual Studio versions, Setup-Builder Tools, installed scripting language executables, etc.
I'm currently trying to figure out if and how (and whether it makes sense) Jenkins can auto-detect our tools that I have to install on all the Nodes (Salves).
Since our Nodes are Windows machines, hard-coding paths doesn't make sense (IMHO) due to path mismatch Windows 64bit vs. 32bit / XP vs. Windows 7 / different language versions.
Also, quite a few tools require installation, so just mirroring over files isn't an option either.
Obviously, I could just define a set of environment variables for our tools and use these from Jenkins. But I much rather use/build something that makes new Nodes/Slaves auto-configured.
You can also read this question as: Is it possible to write a plugin that automatically detects "stuff" on Windows slaves and makes that available as Node Properties? (and where would I start if I wanted to do that?)
AFAIK, the only tools that Jenkins can natively autoconfigure are Java JDK, Ant, and Maven. I'm not sure what other plugins can do.
You might have to go the environment variables way, or you could create a multi-configuration job that installs your tools onto the slaves, if they don't already exist. This would assume that your tools can do quiet installs, and that you can specify the installation directory (same across all platforms).
I've gone with the route of having a set of common environment variables for all nodes.
Since I have to manage what is installed on the Windows nodes manually anyway -- many tools have installers I need to run prior to using them -- adjusting the environment variables on each node isn't such a big deal. (I have a small batch script that set's up everything via setx.)