一次数据库升级过程 mysql5.0.78 到 5.1.57
1. 停数据库,备份数据(备份物理文件)
2. 将新版本mysql的数据目录指向到旧目录(datadir)
3. 启动mysqld时使用skip grant tables 参数避开系统检查,
# 例如
/usr/local/mysql/bin/mysqld --datadir=/var/data/ --user=mysql --skip-grant-tables &
4. 执行mysql_upgrade,这时应该就会顺利进行下来了
或者只升级授权表,mysql_fix_privilege_tables(推荐) 或 mysql_fix_privilege_tables.sql 脚本执行
5. 停止mysqld
6. 按照原来的my.cnf运行正常服务(这一步失败很可能由于参数不兼容引起,比如bdb相关的所有参数5.1开始都不再支持,总之这一步很容易处理)
7. 检查表有没有问题,比如执行mysqlcheck --all-databases 等等
[size=medium]原版本:5.0.72
升级版本:5.1.57
一、数据库安装mysql5.1.57 版本(预先安装好)
编译时需要把innodb_plugin 编译进去
./configure --prefix=/usr/local/webserver/mysql5.1.57 --with-extra-charsets=all --with-plugins=partition,blackhole,csv,heap,innobase,myisam,myisammrg,innodb_plugin --with-mysqld-user=mysql --with-big-tables --without-debug --with-client-ldflags=-all-static --enable-assembler --with-pthread --enable-thread-safe-client --with-unix-socket-path=/usr/local/webserver/mysql5.1.57/mysql.sock
makemake install
[root@192_168_9_78 data]# mkdir /data/mysql5.1.57[root@192_168_9_78 data]# mkdir /data/mysql5.1.57/data[root@192_168_9_78 data]# mkdir /data/mysql5.1.57/logs[root@192_168_9_78 data]# mkdir /data/mysql5.1.57/innodb_data[root@192_168_9_78 data]# chown mysql.mysql -R /data/mysql5.1.57/[root@192_168_9_78 mysql-5.1.57]# cd /usr/local/webserver/mysql5.1.57/[root@192_168_9_78 webserver]# chown mysql.mysql -R mysql5.1.57/[root@192_168_9_78 mysql5.1.57]# bin/mysql_install_db --basedir=/usr/local/webserver/mysql5.1.57 --datadir=/data/mysql5.1.57/data --user=mysql[root@192_168_9_78 mysql5.1.57]# ll /data/mysql5.1.57/data/[root@192_168_9_78 mysql5.1.57]# cp share/mysql/my-large.cnf my.cnf[root@192_168_9_78 mysql5.1.57]# chown mysql.mysql my.cnf [root@192_168_9_78 mysql5.1.57]# chown mysql.mysql -R /data/mysql5.1.57//usr/local/webserver/mysql5.1.57/bin/mysqld_safe --defaults-file=/usr/local/webserver/mysql5.1.57/my.cnf