一次数据库升级过程 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
make
make 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
二、 修改配置文件
1. 按现有my.cnf文件主要参数修改
2. 打开innodb plugin
#屏蔽默认innodb
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
innodb_file_per_table=1
innodb_file_format=barracuda
innodb_strict_mode=1
#并根据服务器配置修改下面几个配置
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1G
innodb_log_file_size=100M
三、 数据迁移过程
停止老版本mysql
拷贝物理文件到新数据库目录(mysql servant_591up)20分钟左右
Mysqldump导出 innodb表数据(ol_checkout ol_checkoutcount ol_originconversion ol_originlog) 共四张表
启动新mysql,升级权限表。执行mysql_fix_privilege_tables(推荐) 或 mysql_fix_privilege_tables.sql 脚本执行
导入innodb 表备份文件
可以先准备好的
1. 安装好新数据库
2. 准备好dump innodb表的脚本
[/size]
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。