Linux MySQL数据库冷迁移采坑记录
Linux MySQL数据库冷迁移采坑记录
当前文件系统已满,需要将MySQL默认路径迁移到新文件系统下。
MySQL数据库文件原位置:/var/lib/mysql 。
要移动至:/mysql/mysql 路径下。
1.停止MySQL服务
MySQL服务进程停止:
#mysqladmin -u root -p shutdown
查看mysql服务是否已经停止
#netstat -an |grep 3306
2.复制物理数据文件
把/var/lib/mysql整个目录移到/home/data
#cp -R /var/lib/mysql /mysql/mysql/
#chown -R mysql:mysql /data/mysql
#chmod -R 755 /data/mysql
把MySQL的数据文件移动到了/mysql/mysql下
3.修改my.cnf配置文件
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock将原路径注释,修改新路径如下:
datadir=/mysql/mysql
socket=/mysql/mysql/mysql.sock
4.启动MySQL报错
启动MySQL服务报错如下:
[root@localhost mysql]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
查看MySQL服务状态如下:
[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: failed (Result: start-limit) since Mon 2021-04-19 00:06:13 PDT; 1s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 19072 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE)Process: 19030 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 17159 (code=exited, status=0/SUCCESS)
查看MySQL日志信息如下:
# tail -40 mysqld.log 2021-04-19T07:06:12.605508Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2021-04-19T07:06:12.605613Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2021-04-19T07:06:12.605627Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2021-04-19T07:06:12.605633Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2021-04-19T07:06:12.605637Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2021-04-19T07:06:12.605642Z 0 [ERROR] InnoDB: Cannot open datafile './ibtmp1'
ERROR信息,关键错误 :InnoDB: Operating system error number 13 in a file operation.
没有访问权限,不能写入,检查目录授权都正确,很是疑惑???
5.解决InnoDB: Operating system error number 13 in a file operation问题
遍访百度,需要关闭selinux :
先临时关闭,再测试一下:
[root@localhost /]# getenforce
Enforcing
[root@localhost /]# setenforce 0
[root@localhost /]# getenforce
Permissive
[root@localhost /]# systemctl start mysqld
启动MySQL成功!!!
[root@localhost mysql]# netstat -nlp |grep 3306
tcp6 0 0 :::3306 :::* LISTEN 19759/mysqld
[root@localhost mysql]#
登录数据库,提示如下:
[root@localhost /]# mysql -uroot -p
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
这个问题解决方法就是建立一个软连接:
ln -s /mysql/mysql/mysql.sock /var/lib/mysql/mysql.sock
登录MySQL后,在MySQL数据库中检查数据路径:
mysql> show global variables like "%datadir%";
+---------------+---------------+
| Variable_name | Value |
+---------------+---------------+
| datadir | /mysql/mysql/ |
+---------------+---------------+
1 row in set (0.02 sec)
6.永久关闭selinux
SELINUX=disabled
[root@localhost mysql]# cat /etc/selinux/config#This file controls the state of SELinux on the system.
#SELINUX= can take one of these three values:
#enforcing - SELinux security policy is enforced.
#permissive - SELinux prints warnings instead of enforcing.
#disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
#SELINUXTYPE= can take one of three two values:
#targeted - Targeted processes are protected,
#minimum - Modification of targeted policy. Only selected processes are protected.
#mls - Multi Level Security protection.
SELINUXTYPE=targeted
7.SELinux 参数说明,来自网络:
- SELinux 的工作模式
SELinux 提供了 3 种工作模式:Disabled、Permissive 和 Enforcing,而每种模式都为 Linux 系统安全提供了不同的好处。
- Disable工作模式(关闭模式)
在 Disable 模式中,SELinux 被关闭,默认的 DAC 访问控制方式被使用。对于那些不需要增强安全性的环境来说,该模式是非常有用的。
例如,若从你的角度看正在运行的应用程序工作正常,但是却产生了大量的 SELinux AVC 拒绝消息,最终可能会填满日志文件,从而导致系统无法使用。在这种情况下,最直接的解决方法就是禁用 SELinux,当然,你也可以在应用程序所访问的文件上设置正确的安全上下文。
需要注意的是,在禁用 SELinux 之前,需要考虑一下是否可能会在系统上再次使用 SELinux,如果决定以后将其设置为 Enforcing 或 Permissive,那么当下次重启系统时,系统将会通过一个自动 SELinux 文件重新进程标记。
关闭 SELinux 的方式也很简单,只需编辑配置文件 /etc/selinux/config,并将文本中 SELINUX= 更改为 SELINUX=disabled 即可,重启系统后,SELinux 就被禁用了。
- Permissive工作模式(宽容模式)
在 Permissive 模式中,SELinux 被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。然而,此时会向日志文件发送一条消息,表示该访问应该被拒绝。
- SELinux Permissive 模式主要用于以下几种情况:
审核当前的 SELinux 策略规则;
测试新应用程序,看看将 SELinux 策略规则应用到这些程序时会有什么效果;
解决某一特定服务或应用程序在 SELinux 下不再正常工作的故障。
某些情况下,可使用 audit2allow 命令来读取 SELinux 审核日志并生成新的 SELinux 规则,从而有选择性地允许被拒绝的行为,而这也是一种在不禁用 SELinux 的情况下,让应用程序在 Linux 系统上工作的快速方法。
Enforcing工作模式(强制模式)
从此模式的名称就可以看出,在 Enforcing 模式中, SELinux 被启动,并强制执行所有的安全策略规则。
Linux MySQL数据库冷迁移采坑记录相关推荐
- linux下安装nginx的采坑记录
一.linux安装 nginx最好是直接在linux上下载nginx的包和相关命令的资源,不然不会有sbin文件夹这些,具体的安装步骤可以自行百度哈: 二.nginx的配置 进入conf文件夹,修改n ...
- centos7恢复mysql数据库_MySQL数据库升级迁移填坑记
原库:*.*.101.73/74 系统环境: Suse 12.4 MySQL: 5.7.29 新库:*.*.110.46/47 系统环境:CentOS7.7 64位 MySQL版本: 5.7.30 [ ...
- mysql 触发器采坑记录(mysql 触发器采坑记录 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行。 当创建触发器(视图、存储过程、函数)时,如果没有)
mysql 触发器采坑记录(语序有点凌乱,回头再整理) 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行. 当创建触发器(视图.存储过程.函数)时,如果没有指定创建 ...
- mysql8.0.19.0_分享MySql8.0.19 安装采坑记录
上篇文章给大家介绍了MySql8.0.19 安装过程,需要的朋友可以点击查看.https://www.jb51.net/article/178988.htm 1.ERROR 1820 (HY000): ...
- mysql8.0依赖_分享MySql8.0.19 安装采坑记录
上篇文章给大家介绍了MySql8.0.19 安装过程,需要的朋友可以点击查看.https://www.jb51.net/article/178988.htm 1.ERROR 1820 (HY000): ...
- Linux MYSQL 数据库
Linux MYSQL 数据库 1.1.概述: DBMS datebase management system 数据库管理系统 DML:date manapulate lanaguage 数据操 ...
- Linux Mysql 数据库基础
目录 Linux Mysql 数据库基础 一.数据库 数据库简介 数据库的分类 数据库的发展史 数据库系统发展阶段 DBMS 数据库管理系统 数据库管理系统的优点 数据库管理系统的基本功能 数据库系统 ...
- Linux MySQL数据库的备份
Linux MySQL数据库的全库和单库备份 MySQL数据库的备份重要性不用多说,备份方式也很多,但常用的是MySQL自带的备份程序MySQLdump,该程序一键备份,一 ...
- Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法
Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法 0.亮点 1 准备 1.1 修改历史记录 1.2 升级系统内核 1.3 配置免密登录 问题1 ...
最新文章
- Android学习----自适应国际化语言
- 人工智能取代医生AI画出鼻咽癌放疗靶区,准确性与医生相当
- 2019日历全年一张_带上这份2019全年活动日历,旅行打卡不迷路
- Android 数据解析——Gson与json
- IPFS的相关操作命令
- 400错误是什么原因_499错误是什么?499错误的原因及解决方法
- switch语句的基本使用
- python 字符串 string模块导入及用法
- 汉化pycharm,中文
- 数据结构课程设计 电梯模拟
- 商户如何接入微信支付
- Android App 安全登录认证解决方案
- 地铁WIFI值28亿?运营商终于不用背锅了
- mysql的tps和qps_关于MySQL的TPS和QPS
- 前端学习-HTML5
- 免费临时网页邮箱(可丢弃式邮箱)
- 华为交换机导入配置_将一个华为交换机的配置导入另一个已有配置的交换机中...
- 三极管:潜伏3个月的彩蛋是来自火星的么
- C语言实现简单的图书馆小程序(练习指针和结构体的基本使用)
- matlab 斜坡信号响应,matlab斜坡输入响应