写在开始:

1,非专业的DBA升级数据库,有条件的换个机器测试一遍;没条件的搭个虚拟机多试试,一定不要想当然,不然会死的很惨。

2,不能跳版,死了活该。


进入正题,升级数据库,不要着急,一步步慢慢走:

1,仔细查看目标版本的 release notes,看看各项变更,有没有影响自己的;

2,备份数据库,以防各种万一:

1)Dumping 数据为 SQL 格式:

mysqldump -u root -p --all-databases --events > dump.sql
2)备份配置文件
tar cvfvz mysql_conf.tgz /etc/mysql
3)备份lib库
tar cvfvz mysql_data.tgz /var/lib/mysql
3,关闭数据库

1)设置 innodb_fast_shutdown 为 0,slow模式可以确保 buffer 中的数据都能写到 file 中,保证数据的完整性

mysql -u root -p --execute="set global innodb_fast_shutdown=0"
2)关闭数据库
mysqladmin -u root -p shutdown
4,升级数据库

1)安装 mysql apt repo

附如下版本的下载路径:http://dev.mysql.com/downloads/repo/apt/

wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
sudo dpkg -i mysql-apt-config_0.7.3-1_all.deb
选择需要的版本(可选:5.6/5.7 server)。如果选错了,以后可再改:
sudo dpkg-reconfigure mysql-apt-config

2)更新源并安装

sudo apt-get update
sudo apt-get install mysql-server

安装过程中会提示 my.conf 修改,差异的地方需要自行记录下来,比如字符集,需要再修改回去:


如下是修改字符集的片段:

[mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci

修改配置文件需要重启数据库,修改后检查下状态和版本:

sudo service mysql status
dpkg -l | grep mysql | grep ii
3)使用 mysqld_safe 配置数据目录:
mysqld_safe --user=mysql --datadir=/var/lib/mysql
4)mysql_upgrade:
mysql_upgrade -u root -p
5,核对数据


写在最后:

1,怎么导入备份?

mysql -u root -p
mysql> source dump.sql
2,升级中的问题:

问题1:reload dump 文件的时候,提示:

           ERROR 1449 (HY000) at line 3430: The user specified as a definer ('xxxx'@'%') does not exist

方法:mysql>FLUSH PRIVILEGES;

           之后重新执行 reload dump 操作,注意 root 密码已改为源库密码。

问题2:apt 升级安装的时候,提示:

          No directory, logging in with HOME=/

          mysqld_safe Can't log to error log and syslog at the same time.  Remove all --log-error configuration options for --syslog to take effect.

方法:欢迎回复:)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐