问题描述
提示:这里描述具体问题:
在ubutnu下面安装mysql,有的时候我们只是需要保存数据表,跟系统没有关系,或者系统挂了数据依然存在,而不会因为系统挂了而导致数据丢失。
解决方案:
提示:这里填写该问题的具体解决方案:
具体步骤:
第一:卸载Ubuntu20.04相关的mysql依赖
1)查看当前所有mysql相关的软件
dpkg -l | grep mysql
2)当前只有一个mysql相关软件,然后输入删除命令
sudo apt autoremove --purge mysql-apt-config
3)删除系统所有mysql相关软件,在用命令查看是否卸载干净。
dpkg -l | grep mysql
第二:增加mysql5.7的源
1)保存之前的软件源,以便后续出错恢复。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
2)增加软件源,打开/etc/apt/sources.list,在文件末尾增加如下代码。
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
3)更新软件源和软件
# 更新镜像源
sudo apt-get update
# 更新软件
sudo apt-get upgrade
第三:安装mysql5.7
1)安装,在安装过程中需要输入mysql的root密码(两遍)
sudo apt-get install mysql-server-5.7
2)检查是否安装成功
mysql -uroot -p
这个名需要输入刚才填写mysql的密码
也可以用ps查看
ps -aux | grep mysql
第四:换数据表保存目录
1)创建保存文件目录
mkdir mysql5.7
2)把默认安装的Mysql数据库文件复制到/opt/mysql/mysql5.7中并设置权限
sudo cp -R /var/lib/mysql/* /opt/mysql/mysql5.7
cd /opt
sudo chown -R mysql:mysql /mysql
3)修改/etc/mysql/mysql.conf.d/mysqld.cnf 文件和修改启动文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
#修改datadir=/var/lib/mysql 为你需要修改的目录 这里是 datadir=/opt/mysql/mysql5.7
vim /etc/apparmor/usr.sbin.mysqld
将
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
修改为
/opt/mysql/mysql5.7/ r,
/opt/mysql/mysql5.7/** rwk,
4)删除日志 (不删除可能会报错)
rm -rf /opt/mysql/mysql5.7/ib_logfile0
rm -rf /opt/mysql/mysql5.7/ib_logfile1
5)重启MySQL
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart
6)验证目录
sudo /etc/init.d/mysql status
mysql -u root -p
show variables like '%dir%';
在输出的内容里面可以看到有datadir是/opt/mysql/mysql5.7
注意:
1.在重启mysql过程中遇到了一个错误:
查看错误日志得到的结果:
The innodb_system data file ‘ibdata1’ must be writable
这个和之前创建的文件权限有关系。
vim /var/log/mysql/error.log
更改根目录权限为mysql即可。
欢迎评论:
提示:欢迎大家在评论区讨论相关问题。
可以关注博主,我会持续更新工作中遇到的技术小砖头,供大家使用。
也可以在评论区告知好的小砖头或技术,我会收录。
还可以指出本博文错误,希望大家不吝赐教。