相关知识
- 学会用各种姿势备份MySQL数据库
- InnoDB和MyISAM的区别:从MySQL 5.5.5开始,默认存储引擎改为InnoDB。
备份
- 本身自带mysqldump工具:速度较慢;MyISAM可温备,InnoDB可热备。
mysqldump -uroot -p -all-databases > /backup_all.sql
- 使用第三方开源工具XtraBackup:速度较快;MyISAM可温备,InnoDB可热备。
innobackupex针对MyISAM和InnoDB,xtrabackup只针对InnoDB
Data目录迁移
有时数据库data文件夹所在磁盘已满,则需要进行数据迁移,除了按照以上方法备份然后还原外,还可以直接对原始数据文件进行迁移,这种方法速度非常快,但危险系数高。迁移到另一台服务器时,需保证MySQL版本的一致。
首先,停止MySQL服务:
sudo /etc/init.d/mysql stop
将原数据复制到新位置:
sudo cp -a /var/lib/mysql /new/mysql/dir
-a:表示保持所有原文件的属性
修改MySQL配置文件/etc/mysql/my.cnf
Change datadir from:
datadir=/var/lib/mysql
to:
datadir=/new/mysql/dir
然后重启MySQL
sudo /etc/init.d/mysql restart
Note:
如果重启失败,查看/var/log/syslog文件,如果看到有apparmor=”DENIED”字眼,则:
sudo nano /etc/apparmor.d/usr.sbin.mysqld
然后:
Add the following two lines to the bottom:
/new/mysql/dir r,
/new/mysql/dir/** rwk,
然后,务必记得:
sudo /etc/init.d/apparmor restart
AppArmor(Application Armor)是Linux内核的一个安全模块,AppArmor允许系统管理员将每个程序与一个安全配置文件关联,从而限制程序的功能。简单的说,AppArmor是与SELinux类似的一个访问控制系统,通过它你可以指定程序可以读、写或运行哪些文件,是否可以打开网络端口等。作为对传统Unix的自主访问控制模块的补充,AppArmor提供了强制访问控制机制,它已经被整合到2.6版本的Linux内核中。
MySQL使用Navicat连接不上
查看/etc/mysql/my.cnf,改为:
bind-address = *