Docker Install MySQL v3.23 on Ubuntu 16.04 - mysql

Have inherited a very old site that needs a local dev environment created in Docker, which normally is really quick, but it appears it needs to have MySQL 3.23 since using MySQL 5.7 and importing the sqldump of the existing site has a bunch of issue regarding character sets, which are only easily resolved above MySQL v4.x. So I've been trying to find the specific apt-get install instructions for MySQL 3.23 since there is definitely no docker hub images available.
Does anyone have a source or example for installing MySQL v3.23 on Ubuntu 16.04? or maybe I should just keep working on figure out the character set issues?

Wow! The last release of MySQL 3.23 was 2003-09-11, which is 14 years ago as we type this. Oracle has done its best to remove all unsupported versions from official download sites.
You might find old copies of MySQL 3.23 binaries and source floating around on obscure sites in lesser-known corners of the internet.
I don't expect the binaries can run on modern OS versions. The runtime shared libraries are just the wrong versions. You'd have to compile MySQL 3.23 from source.
Even finding the source is hard. I found a copy of 3.23.49 here: http://live.dadanini.at/mysql/downloads_html/mysql-3.23.html
(3.23.49 was released 2002-02-14, 19 months before the last version 3.23.58, dated 2003-09-11).
I spun up a Vagrant box with Ubuntu 16.04 and installed:
sudo apt-get update
sudo apt-get install -y --reinstall build-essential libncurses5-dev
I got the MySQL source to configure... sort of. It wouldn't recognize the pthreads option, so I tried to use mit-threads instead:
./configure --prefix=/usr/local/mysql --enable-large-files --enable-shared=yes --with-mit-threads --with-innodb
But it ran into errors trying to configure mit-threads:
checking host system type... Invalid configuration `x86_64-unknown-linux': machine `x86_64-unknown' not recognized
checking target system type... Invalid configuration `x86_64-unknown-linux': machine `x86_64-unknown' not recognized
checking build system type... Invalid configuration `x86_64-unknown-linux': machine `x86_64-unknown' not recognized
configure: error: System type not recognized or not supported.
See ./config/configure.in for supported systems.
That's right, the mit-threads code is so old, it doesn't support 64-bit architecture on Linux!!
I'm not going to download a Vagrant box for 32-bit Ubuntu, if such a thing can even be found.
I'm giving up at this point. You are welcome to continue trying! :-)
I have to comment that software that is so old has had hundreds of severe security bugs fixed over the years. I wouldn't recommend using the software except temporarily to help serve as a source for ETL of the data into a more current RDBMS.
If I were you, I would invest the time instead into figuring out the character set issue so you could import directly into MySQL 5.7.

Related

Confused with different types of MySQL applications to install

I'm very new to MySQL.
My question is about installation of MySQL on my Mac (Mojave OS) to learn and practice it to later use it with node.js.
First I got it with Homebrew, but then I wasn't able to use it with the Workbench - I set up the password for root user but I didn't find any commands list to work with it since it refused to do any operations with it in workbench and I didn't find any command.
Then I downloaded Community Server - I have a server through system prefs, but I don't have a command line interface - which I need for writing queries.
After that I downloaded MySQL Shell. But as far as I researched I found that is it not standard CLI (found it here https://stackoverflow.com/questions/58367813/how-to-uninstall-mysql-shell-on-macos).
My question is next.
As an example, when I started learning MongoDB I had MongoDB Compass and MongoDB Shell - one helped me to work with commands, the other one helped to see results visually.
MySQL has a language which I want to learn and practice with (SELECT, USE etc.). How can I do the same what I did with MongoDB but in the case of MySQL? What should I install, and why Homebrew MySQL version is different than any other MySQL version (even commands - such as mysql.server start) and there is no documentation for it in MySQL docs?
Unfortunately, there's no such nice installer for macOS as there is for Windows. Instead you have to install the different parts individually.
For the type of work you plan to do I recommend to install at least 2 pieces:
The MySQL server, which holds your data. On macOS this comes with a preferences pane, which you can use do some basic management of the server (start/stop, directory settings).
MySQL Workbench, a visual design, query and management tool. That will give you GUI support for your DB work.
The server also comes with the classic shell, which you can launch by running mysql in a terminal. That's sometimes quicker for simple work, compared to launching a full GUI.
A better command line tool is the MySQL Shell, a new and highly improved variant of the classic shell, which will eventually replace the old classic shell entirely in the future. So it's certainly no mistake to install that too.
I hope that clarifies which pieces are required to start working with MySQL.

How to fix a broken MySQL installation?

Installing a PHP application that requires MySQL or MariaDB, I first installed MariaDB via 'apt install' from the MariaDB repos, but there were behaviours with the installation of the application that seemed to be caused by some kind of incompatibility. Calls to the DB were timing out, and although I could see it was creating the DB, it was impossible to set the application up in its setup routine.
So I used apt remove to get rid of MariaDB. I saw the application had a *.deb installer for all requirements (wish I'd seen this sooner!) and, after removing PHP and Nginx, I attempted to install it the normal way. Unfortunately, the MySQL portion of the installation failed with:
Automatic maintenance of MySQL Server daemon disabled.
Packaging maintainer scripts detected a case that it does not know how to handle and cannot continue configuring MySQL. Automatic management of your MySQL Installation has been disabled to allow other packaging tasks to complete. For more details, see /etc/mysql/FROZEN
Unfortunately, /etc/mysql/FROZEN is a symlink to a non-existent file explaining downgrading. I can't run the uninstaller of the overall package or repair the installation with sudo --fix-broken install because the installer requires a MySQL password I can't provide it.
How can I fix my borked MySQL installation? If I could just get to a place to have MySQL run properly, understanding what left-overs perhaps from the MariaDB installation that I need to delete manually before trying to repair it, that would be helpful. FYI, the version of MariaDB was 10.3, and the version of MySQL the application package was installing was 5.7.
Any suggestions appreciated.

Updating MySQL 5.1 to 5.6 on Glibc 2.11

On our server we are running GNU Libc 2.11 and we want to update MySQL 5.1 to 5.6.
Just to be sure that this won't fail i'm looking for information of if this can be done with the current Glibc version.
Anyone? :)
Yes.
Linux distributions use packages to install or uninstall software. These are similar things as the .msi on windows, but they contain dependency informations, too: every package contains which other packages it needs, and at least (or at most) which versions.
There are multiple package management systems (rpm and dpkg are the most common), it depends on the distro which is used by you, but they are the same from this aspect.
If you install mysql 5.6, it will either upgrade the libc as well (and so, all other programs which need a newer libc), or it won't be installable. Or it will simply work (if they are compatible).
A bigger danger for the mysql upgrades isn't the possibility of the incompatibility with the libc, but the incompatibility of the mysql databases between the mysql versions. I.e. your mysql-5.6 will perfectly work with the libc, but it will have troubles to use the databases files he got from the 5.1.
It is highly suggested to make a backup from your mysql directories (/var/lib/mysql) and configurations (/etc/mysql), and even a dump (mysqldump --all).

Can I safely remove mariadb from Centos Linux?

I just did a clean install of CentOS Linux. The first thing I did after installing CentOS was to download MySQL and try to install the -server rpm file. But the installation fails with a lot of messages stating conflicts with MariaDB packages which seem to be redundant to those in MySQL. I want to use MySQL as my database.
Are there any reasons why I should not just delete mariadb, so that the conflicts can be resolved? If mariadb performs some important functions in CentOS, I do not want to end up having my system crash.
You could use MariaDB as mysql version 5.5 for it is just another MYSQL branch...
In Centos 7, it is a alternative project of oracle mysql. It contains all mysql functions and optimize structures, data processing, Algorithm etc..
you could even login the server with a "mysql" command.
you don't need to pay attentions on the name, it is no problem to your former mysql projects.
ps:
I don't think that a linux system will have a "clean", "pure" os environment. Linux is a free and open source system which means you could install and remove every thing with no problem.
To have MySQL database functionality you can install either the MySQL packages or the MariaDB packages. MariaDB is a fork originating from the same MySQL code base. For compatibility see https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/
Yes, you can remove MariaDB packages and replace them by MySQL packages.

Recommended MySQL tuning utility for Windows

I have been using MySQL Tuner (http://mysqltuner.com) on Linux for a while and am quite comfortable with it. Now, for whichever reason, we have had to start hosting other websites on IIS. Is there a similar tuning utility that may recommend config changes to MySQL on Windows Server 2008?
Kind regards
I have just ported the mysqltuner.pl script to Windows - see http://mysqltuner.codeplex.com/. It uses the same checks as version 1.2 of the mysqltuner.pl script, but in a nice, friendly Windows application - no need to install Cygwin or Perl.
Ok so this is over a year after the question but I thought it relevant because you can actually still use the mysqltuner script if you combine it with Cygwin.
Install Cygwin
Make sure Perl is installed
Additionally I installed the mysql and the mysqld packages as well (Needed for the script to connect to a "remote" MySQL.
Copy the mysqltuner.pl script to your Cygwin user home directory (Found under cygwin_install_dir/home/your.user)
Start the Cygwin terminal
Run the script $ perl mysqltuner.pl --host mysql_host_ip --forcemem 512
If you encounter an error in the line of:
ERROR 1130 (HY000): Host 'somename.company.com' is not allowed to connect to this MySQL server
Go to the database server and add the appropriate user and privelages
You should now be able to use mysqltuner in a windows environment against local as well as remote MySQL servers.
...screenshots removed because I'm not allowed to use images yet, sorry.
Don't know of another tool (outside the MySQL Instance Configuration Wizard you can run) like mysqltuner which will not run unfortunately. You can install Perl on Windows, but when run the .pl file you will get an error about $PATH not having mysqladmin in it. Upon reading of the manual laughing, it plain as day states there is no Windows support for 1.2.0 version of tool.
You can see if these suggestions help in the interim:
http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/
Edit: I just found this: http://www.webyog.com/webyog/monyogscreenshots
MONyog, it is a paid product, though. I installed the trial and it looks very promising. It monitors your SQL server and gives you alerts and recommendations based on those alerts. Might be worth a look. I cannot vouch for too much other than it has some nice information in just a short period of time.