手上有一朋友的服务器是MYSQL5.1,因需要升级到5.5或以上,这儿写下升级到5.5的过程
平定网站建设公司创新互联公司,平定网站设计制作,有大型网站制作公司丰富经验。已为平定1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的平定做网站的公司定做!
安装5.5依赖安装包
代码如下
yum
install
-y
autoconf*
automake*
zlib*
libxml*
ncurses-devel*
libgcrypt*
libtool*
openssl*
安装cmake
代码如下
yum
install
-y
cmake
在升级前,建议先将之前5.1的mysql及数据库目录备份一下
停止掉mysql
代码如下
service
mysql
stop
升级mysql
5.5.36
代码如下
tar
xf
mysql-5.5.36.tar.gz
cd
mysql-5.5.36
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/etc
-DMYSQL_DATADIR=/usr/local/mysql/var
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
-DMYSQL_USER=mysql
-DEXTRA_CHARSETS=all
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_EMBEDDED_SERVER=1
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
make
make
install
删除/etc/下的my.cnf配置文件
代码如下
rm
-rf
/etc/my.cnf
拷贝5.5的配置文件
代码如下
cp
support-files/my-huge.cnf
/etc/my.cnf
尝试启动一下
代码如下
service
mysql
start
执行更新程序并重启mysql
代码如下
/usr/local/mysql/bin/mysql_upgrade
如果一路OK就没事儿,但要是出了错误,请参考我另外一篇文章
mysql5.5升级过程中mysql_upgrade失败的问题
查看下现在的mysql版本
代码如下
cat
mysql_upgrade_info
好了,升级工作完成。
再附升级失败问题解决
在升级mysql5.5过程中,执行/usr/local/mysql/bin/mysql_upgrade
提示:
代码如下
Looking
for
'mysql'
in:
/usr/local/mysql/bin/mysql
Looking
for
'mysqlcheck'
in:
/usr/local/mysql/bin/mysqlcheck
Running
'mysqlcheck'...
/usr/local/mysql/bin/mysqlcheck:
Got
error:
1064:
You
have
an
error
in
your
SQL
syntax;
check
the
manual
that
corresponds
to
your
MySQL
server
version
for
the
right
syntax
to
use
near
'FOR
UPGRADE'
at
line
1
when
executing
'CHECK
TABLE
...
FOR
UPGRADE'
FATAL
ERROR:
Upgrade
failed
想起之前5.1好像是有密码的!这儿换种方式尝试
代码如下
/usr/local/mysql/bin/mysql_upgrade
-S
/var/data/mysql.sock
-uroot
-p
这个也不行了,突然想到出奇招,还是使用5.5的二进制程序,然后更改启动参数,因为我只想要把data目录下的表结构升级而已,必须指定的参数只是data目录,于是我做了如下尝试
#
启用
--skip-grant-tables参数避开检查,先启动再说
代码如下
/usr/local/mysql/bin/mysqld
--datadir=/usr/local/mysql/var/
--user=mysql
--skip-grant-tables
#
看上去成功了
#
中间报了一些innodb的错误,不去理会,应该是配置或是这个半阴半阳状态下问题,这个以后再解决
#
接下来停止这个服务
mysqladmin
shutdown
之,然后以正常参数启动mysqld服务……
修改些my.cnf中的配置参数,以适合mysql5.5
一句话总结:
代码如下
/usr/local/mysql/bin/mysqld
--datadir=/usr/local/mysql/var/
--user=mysql
--skip-grant-tables
方法:
1)先输入mysql -uroot -p 命令
2)输入密码登陆mysql
3)use mysql; //使用mysql库
4)在输入update mysql.user set password=PASSWORD(’123456789′) where User=’root’; 更新mysql密码为:123456789
5)flush privileges ; //刷新库
6)quit 退出mysql
建议你下载phpwamp8.8.8.8,支持切换mysql数据库
PHPWAMP提供180数据库版本随便切换
支持一键自定义php版本、自定义数据库,700多个php版本和180数据库版本随便切换
能同运行多个不同的php版本和多个不同的数据库,而且站点管理工具功能十分强大。
1、概述通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本。例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0。 以下是在升级 MySQL 时需要注意的事项: 仔细阅读一下升级的目标版本的新特性和改变的特性,以及2个版本之间的不同特性 升级前一定要备份所有的数据 如果是在Windows平台上升级MySQL,请阅读附录 "在Windows平台上升级MySQL" 有些不同版本间的升级可能会涉及对授权表的修改,请尤其注意这个问题,详情请阅读附录 "升级授权表" ◆如果正在运行着同步,请阅读附录 "升级同步" ◆如果之前运行着MySQL-Max发布版本,想要升级到非MySQL-Max发布版本时,就需要从 mysqld_safe 去掉启动 mysqld-max 服务器的参数 在同一个发布系列版本的MySQL间,可以随意拷贝格式文件和数据文件。如果在MySQL运行过程中改变了字符集,就需要对每个MyISAM表执行 "myisamchk -r -q --set-character-set=charset" 命令修复一下。否则的话,索引的排序可能不正确,因为修改了字符集,就可能会改变索引的顺序。 通常情况下,升级到新版本不需要修改任何数据表。请检查MySQL发布事项中提到的升级需要注意的地方,如果发现不能直接升级的话,就先用 mysqldump 将数据导出来,然后再导回去。 如果担心升级失败,就先把旧版本的MySQL改个名字备份起来,以备所需。 同时,升级完之后可能还需要重新编译跟MySQL相关的程序,因为新版本的头文件和库文件可能有改变了。 如果升级后发生问题了,请先检查是否使用了旧的my.cnf配置文件,可以通过执行命令 "mysqld --print-defaults" 来打印出各种配置信息来确认。 升级的时候最好也升级类似Perl的 DBD::mysql 模块,同样,对PHP和Python而言也是一样。 2、从 MySQL 5.0 升级到 MySQL 5.1 从 5.0 升级到 5.1 的时候,必须要升级授权表。否则,可能某些存储过程无法运行。详情请看附录 "mysql_update MySQL升级时检查数据表"。 以下是从 5.0 升级到 5.1 需要注意的事项: 检查所有的变化,尤其注意那些标志为 "不兼容的变化" 的部分。详情请看附录 "mysql_update MySQL升级时检查数据表" ◆可能某些发布版本会改变授权表的机制