Heim  >  Artikel  >  Datenbank  >  centOs下升级mysql_MySQL

centOs下升级mysql_MySQL

WBOY
WBOYOriginal
2016-06-01 13:01:001076Durchsuche

前言:今天在centOS上将mysql版本由5.1升级到5.7的时候出现了各种问题,不过经过一步步的调查解决了问题,下面就记录一下过程,其中经历了很多次的卸载和删除,在这次记录的过程中,我就按照最后成功的一次顺序来记录,对于其中可能出现的一些错误会做特殊的说明。

1.下载Linux的5.7版本,主要需要两个文件

MySQL-server-5.7.4_m14-1.el6.x86_64.rpm
 MySQL-client-5.7.4_m14-1.el6.x86_64.rpm

2.备份数据库文件

mysqldump -uxxx -pxx databasename > databasename.sql

3.停止mysql服务

service mysql stop

4.刚开始使用的yum安装的,使用以下语句进行卸载
yum remove mysql*
5.然后删除mysql旧版本已经存在的文件或者数据,不然mysql在重新安装后会出现各种纠结的问题。

find / -name mysql
ps -ef | grep -i mysql

rm -rf mysql****
kill -9 mysqlid
注意/usr/bin、/usr/share/、/var/lib下有很多mysql开头的文件,都删除掉,还有删除/etc目录下的my.cnf文件
6.如果你是rpm安装的,可以通过以下命令进行删除
rpm -qa | grep -i name
rpm -e mysqlxxxxx
7.卸载删除干净后,再使用以下命令对下载的server和client进行安装
rpm -ivh mysqlxxx
8.我将my.cnf中的一部分进行了优化,按照我们的项目需要做了调整,拿出来做为参照
 [mysqld]
  2 datadir=/var/lib/mysql
  3 socket=/var/lib/mysql/mysql.sock
  4 #user=mysql
  5 
  6 # Disabling symbolic-links is recommended to prevent assorted security risks
  7 symbolic-links=0
  8 #设置2进制日志文件目录
  9 log-bin=mysql-bin
#10行不设置的话,会报一个莫名的错误
 10 server-id=1
 11 #指定索引的缓冲区大小,4G内存下设置256或者384合适
 12 key_buffer_size = 256M
 13 #每打开一个表,都会读入数据到table_open_cache中,
 14 table_open_cache = 256
 15 #用于ORDER BY时的缓冲大小,是针对的每个连接,所以不能太大
 16 sort_buffer_size = 256K
 17 #对表进行顺序扫描的请求
 18 read_buffer_size = 256K
 19 #任意顺序读取行时
 20 read_rnd_buffer_size = 512K
 21 #查询到内容向网络传输时
 22 net_buffer_length = 8K
 23 #保存在缓存中的线程数量,
 24 thread_cache_size = 20
 25 ##由于项目中一些表的增删改相对比较频繁,但是查询也占据了很大的一部分,还需要项目运行后观察一段时间
 26 query_cache_size= 8M
 27 # 和cpu的核心数有2倍的关系,我使用的是云服务器,设置这个参数后就启动不起来了
 28 #thread_concurrency = 12
 29 
 30 #提交事务后数据写入磁盘的时间点,设置为2可以对没有强烈的安全要求机制下,对速度提高很大
 31 innodb_flush_log_at_trx_commit = 2
 32 
 33 #如果使用mysql命令登录客户端的时候报权限错误或者密码的错误,可以通过开启标记跳过验证,直接通过mysql进行连接,然后再修改用户名权限
 34 #skip-grant-tables
 35 
 36 [mysqld_safe]
 37 log-error=/var/log/mysqld.log
 38 pid-file=/var/run/mysqld/mysqld.pid
9.在安装的过程中出现了mysql error 1524错误,没有找出来是什么原因,可以通过设置skip-grant-tables跳过错误,然后又出现了error 1045(28000)错误,我把8步骤中的user=mysql注释掉了,这个过程中还出现了其他一些错误,暂时记不起来了,然后通过以上的设置后,再重启mysql服务后,就可以通过mysql -uxxx -pxx进行登录了,然后又出现了一个问题error 1820,然后查资料说通过以下操作进行实现
mysql> create database ttt;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> set password = password("root");
Query OK, 0 rows affected (0.00 sec)

10.ok,终于正常了,然后通过source命令把sql文件导入。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn