因为Ubuntu20.04比较新,而Mysql5.6比较老,所以这两者之间的支持不太好。也不知道是服务器本身就有啥问题,还是两者软件的支持不足,我在安装Mysql5.6的时候遇到了很多困惑和问题。
因为不清楚服务器的具体状况,前面也实验了很多次都失败了,所以要先彻底的清除Mysql,然后再进行后续的安装。
第一,使用命令dpkg --list|grep mysql
查看跟
Mysql
相关的包。
第二,首先卸载common包。sudo apt-get remove mysql-common
。
第三,卸载Mysql数据库的服务器包。sudo apt-get autoremove --purge mysql-server-x.x
。
第四,清除残留数据:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
。
最后,使用第一步的命令查看剩余的依赖包,并卸载他们。
这个时候再使用第一步的命令发现没有项目了,但是在/etc/mysql下还有一些cnf文件残余,这里我把他们删掉了。
至此,就在Ubuntu上彻底的卸载了Mysql。
前面尝试着使用过下载TAR包然后手动安装的方法,但是报错层出不穷,一直都没有解决,所有最后还是决定使用apt来安装。
首先要添加源,如果没有加这几个源,会报错找不到Initscripts这个问题。
sudo vim /etc/apt/sources.list
# 清华镜像源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
添加源之后,使用命令sudo apt-get install mysql-server-5.6安装5.6的服务器部分。
又报错E: Sub-process /usr/bin/dpkg returned an error code (1)。
具体的报错是:
准备解压 .../mysql-server-5.6_5.6.16-1~exp1_amd64.deb ...
Aborting downgrade from (at least) 5.7 to 5.6.
If are sure you want to downgrade to 5.6, remove the file
/var/lib/mysql/debian-*.flag and try installing again.
dpkg: 处理归档 /var/cache/apt/archives/mysql-server-5.6_5.6.16-1~exp1_amd64.deb (--unpack)时出错:
新的 mysql-server-5.6 软件包 pre-installation 脚本 子进程返回错误状态 1
在处理时有错误发生:
/var/cache/apt/archives/mysql-server-5.6_5.6.16-1~exp1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
刚才安装成功让我输入root密码,但是这次直接报错了,并没有出现第一次的配置指引。
我先按照1中的步骤把没有完全安装好的mysql删干净,然后尝试着去掉报错信息中的东西再试试。结果卸载后没有那个文件了,所以试着重新安装并且删除,结果这个时候还是没有那个文件。
试到这里我放弃了这种方式,决定自己下载TAR包进行编译安装。
前面试了很多种方法都没有成功,这里使用下载的tar包进行自己编译安装,终于成功了。
首先,从网上下载5.6版本的Mysql安装包。这里可以从官网下,不过我选择的是从这个镜像网站下载http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.6/。这里我随便选了一个,下载的是mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz。下载好之后,使用FTP工具上传到服务器上。然后使用命令tar -zxvf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz解压缩,使用命令mv mysql-5.6.15-linux-glibc2.5-x86_64 Mysql将解压出来的文件重命名为Mysql。
后续的步骤需要root权限,如果没有权限的可以试试别的方法,反正我是没有成功。
然后,安装几个Mysql要求的必要的依赖包,使用命令sudo apt-get install libaio1和sudo apt-get install libncurses5 libstdc++6来安装必要的依赖库。
接下来就开始安装了。
1)添加一个组,名为mysql5.6,使用命令sudo groupadd mysql5.6。
2)在这个组中添加一个用户,sudo useradd -r -g mysql5.6 mysql5.6。
3)复制刚才解压出的文件夹到local中,cp 解压的包的路径 -r /usr/local。
4)进入/local/Mysql目录下,cd /usr/local/Mysql。
5)更改文件夹的所有者,注意不要忘记了最后面的点:
sudo chown -R mysql5.6 .
sudo chgrp -R mysql5.6 .
6)执行Mysql的安装脚本,scripts/mysql_install_db --user=mysql5.6。
7)重新设置这个文件夹的所有者为你自己,sudo chown -R 你的账号名,设置data的所有者为mysql5.6,sudo chown -R mysql5.6 data。
8)启动mysql,bin/mysqld_safe –user=mysql5.6 &。这里有可能会提示找不到这个命令,因为系统默认是在/usr/bin目录下寻找命令,那么就在这里添加一个软链接,ln -s /usr/local/Mysql/ bin/mysqld_safe /usr/bin/mysqld_safe。然后再执行上面的安装指令。
9)初始化root用户(mysql中的root用户)密码,bin/mysqladmin -u root password ‘你的新密码’
10)复制mysql.server脚本,sudo cp support0-files/mysql.server /etc/init.d/mysql.server。
11)给mysql命令配置软连接,以便于能直接启动,如果不想配置软连接启动,也可以设置环境变量启动。
ln -s /usr/local/Mysql/bin/mysql /usr/bin/mysql
12)开始使用,mysql -u root -p,然后输入刚才设置的密码即可,进入这个界面说明安装成功,输入quit;退出Mysql。
输入mysql -V查看安装的版本,发现安装成功。