共计 2126 个字符,预计需要花费 6 分钟才能阅读完成。
本文环境 Ubuntu14.04 / Mysql 5.5
注:云 RDS 的 mysql 要与本地的 mysql 版本一致
安装 Percona Xtrabackup
安装 mysql 服务和客户端,记住这里设置的 root 密码 | |
# apt-get install mysql-server mysql-client | |
停止 mysql 数据库 | |
# /etc/init.d/mysql stop | |
本文以 /home/mysql/data 目录为例,请自行修改或者自行创建 | |
# cd /home/mysql/data | |
解压从阿里云下载的数据库备份文件 | |
# tar -zxvf hins123123_data_20180107052346.tar.gz | |
更改数据库文件权限(默认是 mysql:mysql)# chown -R mysql:mysql /home/mysql/data | |
恢复解压好的数据库文件 | |
# innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data | |
尝试启动数据库,注意路径,本文以 /home/mysql/data 目录为例,请自行修改或者自行创建 | |
# mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data | |
自行查看报错日志,在 backup-my.cnf 里面把所有报错的项目注释掉 |
看 error 行就行了,自己解决或者百度都有答案,下面以本人为例,报错项目已经被标红且注释掉
# vim /home/mysql/data/backup-my.cnf | |
# This MySQL options file was generated by innobackupex. | |
# The MySQL server | |
[mysqld] | |
datadir=/home/mysql/data | |
user=mysql | |
skip-grant-tables | |
#innodb_checksum_algorithm=innodb | |
#innodb_log_checksum_algorithm=innodb | |
innodb_data_file_path=ibdata1:200M:autoextend | |
innodb_log_files_in_group=2 | |
innodb_log_file_size=1048576000 | |
#innodb_fast_checksum=false | |
#innodb_page_size=16384 | |
#innodb_log_block_size=512 | |
#innodb_undo_directory=. | |
#innodb_undo_tablespaces=0 |
# 请根据自己的错误进行注释,不要照搬。
修改后保存退出,重新启动服务,并尝试访问(RDS 数据库的 root 密码默认为空)
# mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data | |
#mysql -uroot | |
正常即可进入 mysql 的控制台界面。在创建用户前,需要执行以下命令 | |
mysql> delete from mysql.db where user'root' and char_length(user)>0; | |
mysql> delete from mysql.tables_priv where user'root' and char_length(user)>0; | |
mysql> flush privileges; |
如果不能成功进入数据库,需要先停止 mysql 服务进行修改
ps -ef |grep mysql | |
kill mysql 的进程 ID |
然后把最开始安装的 mysql 库替换掉备份下来的 mysql 库
# rm -R /home/mysql/data/mysql | |
# cp -R /var/lib/mysql/mysql /home/mysql/data/mysql |
再次启动 mysql 服务
# mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data | |
# mysql -uroot -p |
成功后检查数据库是否能正常访问,查看日志是否有报错。确定无异常后,关闭 mysql 服务进程。
修改 /etc/mysql/my.cnf
把 backup-my.cnf 文件里的内容覆盖到 my.cnf 里
然后 /etc/init.d/mysql start 启动访问即可。
正文完
星哥玩云-微信公众号
