Ubuntu18.04下将MySQL默认数据存储地址修改到挂载的sd卡上

公司整了台RK3568去搞测试用,系统是Ubuntu18.04,由于机子实在太小了,内置高达6个G,只有个microsd卡口,只能用这种方式扩容硬盘。由于自带python的版本是3.6,之前还装了个3.9。操作之前确认一下自己已经正确安装了mysql。

一、SD卡挂载

首先sd卡格式化一下,试了很多方法,最后参考了以下文章得以解决:

 linux格式化sd卡,并进行挂载_linux格式化sd卡命令_芒果520的博客-CSDN博客

1.首先 sudo fdisk -l,查看设备信息

2.然后创建一个挂载点,例如:

sudo mkdir /mnt/sdcard

需要注意的是,挂载的设备名是红箭头指的那个,不是上面的disk名,挂载的时候,默认的uid和gid全都是root,所以参考的那些资料基本上都不好用,但是只要在挂载时指定uid和gid为mysql就可以了,例如,我是用的挂载命令使用的是:

sudo mount /dev/mmcblk1p1 /mnt/sdcard  -o uid=mysql,gid=mysql

输入 df -h 命令看一眼挂载上没,这样挂载基本就可以了

二、MySQL迁移和设置

1.首先service mysql stop,停止一下数据库服务,复制一份去sd卡对应目录

sudo mkdir /mnt/sdcard/mysql
sudo cp -R /var/lib/mysql/* /mnt/sdcard/mysql

2.备份一下

sudo mv /var/lib/mysql /var/lib/mysql_backup

3.将挂载好的目录设置为 MySQL 数据目录:

sudo ln -s /mnt/sdcard/mysql /var/lib/mysql

4.修改配置文件

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在datadir这一项修改成你的sd卡挂载目录

datadir = /mnt/sdcard/mysql

5.最后打开mysql服务并验证,能打开mysql服务基本就可以了,也可以使用以下行来验证一下

show variables like 'datadir';

 datadir已经修改,成功

三、开机自动挂载sd

vim打开 /etc/fstab

最后加一行

/dev/mmcblk1p1 /mnt/sdcard vfat rw,user,uid=mysql,gid=mysql   0   0

保存退出后 mount -a重新加载所有挂载点,以使新的配置生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 确定新硬盘的挂载点 首先,需要确定新硬盘的挂载点,可以通过以下命令查看: ``` sudo fdisk -l ``` 可以根据硬盘的大小和文件系统类型来确定新硬盘的挂载点,比如 `/dev/sdb1`。 2. 停止 MySQL 服务 在迁移数据之前,需要先停止 MySQL 服务,可以使用以下命令: ``` sudo systemctl stop mysql ``` 3. 备份旧数据 在迁移数据之前最好先备份旧数据,可以使用以下命令: ``` sudo mysqldump -u root -p --opt --all-databases > backup.sql ``` 其中,`root` 是 MySQL 的用户名,`--opt` 表示使用优化选项,`--all-databases` 表示备份所有数据库,`backup.sql` 是备份文件的名称。 4. 拷贝旧数据到新硬盘 将旧数据拷贝到新硬盘的挂载点下,可以使用以下命令: ``` sudo cp -r /var/lib/mysql /mnt/sdb1/ ``` 其中,`/var/lib/mysql` 是 MySQL 数据默认存储路径,`/mnt/sdb1/` 是新硬盘的挂载点。 5. 修改 MySQL 配置文件 需要修改 MySQL 的配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf`,将数据存储路径修改为新硬盘的挂载点,可以使用以下命令: ``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 找到以下行: ``` datadir=/var/lib/mysql ``` 将其改为: ``` datadir=/mnt/sdb1/mysql ``` 然后保存并退出。 6. 修改 AppArmor 配置文件 需要修改 AppArmor 的配置文件 `/etc/apparmor.d/usr.sbin.mysqld`,将数据存储路径修改为新硬盘的挂载点,可以使用以下命令: ``` sudo nano /etc/apparmor.d/usr.sbin.mysqld ``` 找到以下行: ``` /var/lib/mysql/ r, /var/lib/mysql/** rwk, ``` 将其改为: ``` /mnt/sdb1/mysql/ r, /mnt/sdb1/mysql/** rwk, ``` 然后保存并退出。 7. 重启 MySQL 和 AppArmor 修改完配置文件之后,需要重启 MySQL 和 AppArmor,可以使用以下命令: ``` sudo systemctl restart mysql sudo systemctl restart apparmor ``` 8. 确认数据是否迁移成功 可以使用以下命令查看 MySQL 数据存储路径是否已经修改为新硬盘的挂载点: ``` sudo mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir'" ``` 如果输出结果中的 `Value` 为新硬盘的挂载点,则说明数据已经成功迁移。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值