当前位置: 首页 > >

【mysql】mysql打包迁移到其他位置或服务器

描述

应用的一次迁移,直接把这个mysql文件夹打包拿了过来,好久没操作了,折腾了好久才把整个库运行起来,记录下,以免下次重蹈覆辙


应用场景

mysql备份迁移,mysql更换目录,mysql从一台服务器复制到另一台服务器


操作步骤
1.查看数据库文件在哪个目录存放,执行下面命令会输出你的数据库文件目录

show variables like ‘%datadir%’;


2.停止你的MySQL服务

service mysqld stop 或者 systemctl stop mysqld


3.打包mysql文件夹移动到新位置或新服务器,并解压
4.修改你数据库的配置文件中的 datadir 配置

一般在 /etc/my.cnf,修改 datadir 的值为你数据库移动的文件夹目录,我的目录为/opt/soft/mysql,我的my.cnf目录为/opt/soft/mysql/my.cnf
[mysqld]
port = 3306
socket = /tmp/mysql.3306.sock
basedir=/opt/soft/mysql/
datadir=/opt/soft/mysql/data


5.修改 /etc/init.d/mysqld 文件

basedir=/opt/soft/mysql
datadir=/opt/soft/mysql/data


如果没有这个文件,cp /opt/soft/mysql/support-files/mysql.server /etc/init.d/mysqld


6.启动 service mysqld start

[yyq subsys]$ service mysqld start
Unit mysqld.service could not be found.
Starting MySQL…[ OK ]
[yyq subsys]$


7.如果不发生异常,表示已经成功

这里根据情况确定是否保留数据库,保留直接永久性,不保留就可以把原先的文件删除了


8.创建mysql软链接

ln -s /opt/soft/mysql/bin/mysql /usr/bin

迁移过程遇到的问题
待确认:

6.删除新的数据库文件夹下的2个文件:ib_logfile0 和 ib_logfile0(不删除启动会报错) (这是某文章写得,我这没报错,有报错可以删除)
7.chown -R 新建数据库目录 mysql:mysql (授权 mysql 该数据库目录)(这是赋权,我这里没有创建mysql用户,直接用的当前用户,不影响,如果有,需要赋权)


1.Unit mysqld.service could not be found.

没找到具体解决方案,我这好像不影响,影响再说……
MySQL问题-Unit mysqld.service could not be found.


2.ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

删除/var/lock/subsys/mysql 下的mysql文件即可
参考链接:
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists


3.bash: mysql: command not found

[yyq subsys]$ mysql -uroot -p
bash: mysql: command not found…
[yyq subsys]$ ln -s /opt/soft/mysql/bin/mysql /usr/bin
ln: failed to create symbolic link ‘/usr/bin/mysql’: Permission denied
[yyq subsys]$ exit
exit
[root subsys]# ln -s /opt/soft/mysql/bin/mysql /usr/bin


4.Warning: World-writable config file ‘/etc/my.cnf’ is ignored

原因:权限777,任何一个用户都可以改my.cnf,存在很大的安全隐患.


解决方法:授权644权限 chmod 644 /etc/my.cnf,*鬽ysql服务
参考链接:
Linux系统MySQL开启远程连接Warning: World-writable config file ‘/etc/my.cnf’ is ignored


5.ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

[yyq subsys]$ mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
[yyq subsys]$ cd /tmp/
[yyq tmp]$ exit
exit
[root@iaas92824-Computer subsys]# ln -s /tmp/mysql.3306.sock /tmp/mysql.sock


这个其实是我的my.cnf配置的socket存在问题 socket=/tmp/mysql.3306.sock
此处我建了个软连接解决的,其实该这里直接改下


6.Starting MySQL. ERROR! The server quit without updating PID file

service mysqld start启动报错


[tmn@ mysql]$ service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/home/soft/mysql/data/xxxx.pid).

这个问题在我这里有两个原因,一个是我修改/etc/my.cnf后生效了,另一个是我建了个空数据目录可以了,利旧不行,让把mysql-bin.index删掉或注掉可以了


参考链接:
MySQL数据库如何移动
【MySQL】centos7.6安装mysql5.7
菜鸟-MySQL 安装
MySQL移动数据库位置
MySql 报错ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)


MySql提示:The server quit without updating PID file(…)失败
mysql启动报错:Starting MySQL… ERROR! The server quit without updating PID file



友情链接: year2525网 工作范文网 QS-ISP 138资料网 528200 工作范文网 baothai 表格模版