/data/mysql/bin/mysql_upgrade,一次数据库升格过程 mysql5.0.78 到 5.1.57

一次数据库升级过程 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]

1 楼

cocos

2011-06-13

MySQL ERROR] Plugin 'InnoDB' init function returned error.

启动mysql时,报错:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes

InnoDB: than specified in the .cnf file 0 104857600 bytes!

110408  4:17:59 [ERROR] Plugin 'InnoDB' init function returned error.

110408  4:17:59 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

解决:删除 ./ib_logfile0

2 楼

cocos

2011-06-13

[MYSQL] ERROR: cannot allocate the memory for the buffer pool

innodb_buffer_pool_size 设置的值过大了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值