分类: Mysql/postgreSQL
2013-03-26 22:53:24
原文地址:MySQL数据库升级后使用客户端连接报错解决方法 作者:fengzhanhai
最近研究mysql数据库性能的相关问题,为了对比不同版本之间的差别。笔者找了一台测试服务器升级了该服务器的mysql数据库进行测试,在升级mysql过程中遇到了一些问题并将其中的解决方法记录分享一下。
一、 卸载mysql数据库
(如果各位博友想直接升级mysql也可以不用卸载直接使用yum update升级)
1、查询centos上安装的mysql程序包
[root@localhost ~]# rpm -qa | grep mysql
mysql-server-5.0.95-1.el5_7.1
mysql-5.0.95-1.el5_7.1
mysql-5.0.95-1.el5_7.1
2、卸载mysql数据库程序包
[root@localhost ~]# rpm -e --nodeps mysql-server-5.0.95-1.el5_7.1
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
[root@localhost ~]# rpm -e mysql-5.0.95-1.el5_7.1
error: "mysql-5.0.95-1.el5_7.1" specifies multiple packages
[root@localhost ~]# rpm -e --allmatches mysql-5.0.95-1.el5_7.1
二、 升级mysql数据库
1、安装MySQL 5.5.x的yum源:
rpm -Uvh
2、安装MySQL客户端的支持包:
yum install libmysqlclient15 --enablerepo=webtatic
3、卸载MySQL老版本的软件包:
yum remove mysql mysql-*
4、安装MySQL 5.5的客户端和服务端:
yum install mysql55 mysql55-server --enablerepo=webtatic
5、启动MySQL系统服务,更新数据库:
/etc/init.d/mysqld restart
三、 通过客户端连接mysql数据库时报错如下:
Created with MySQL 50095, now running 50149. Please use mysql_upgrade
...
解决办法:
mysql_upgrade mysql -u root -p123abc (如果数据库的口令没有可以不填写)
忘记root口令解决方法:
# /etc/init.d/mysql stop
# mysqld_safe -u mysql --skip-grant-tables --skip-networking &
# mysql -u mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword')where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> exit
# /etc/init.d/mysqld restart