很多linux中自带的mysql版本是5.1,最近由于需要使用新版本特性,必须升级。 网上很多升级方法都是建议下载rpm包后使用yum升级,但这种方法必须上网下载升级包,而且由于网络不稳定或下载的镜像文件找不到,通常不顺利。 经过本次的实践摸索,成功使用tar包进行升级,现分享: 1、备份 停止mysql /etc/init.d/mysqld stop 备份数据库文件: 看my.cnf下配置的data文件目录,一般是放到 /var/lib/mysql/,复制 /var/lib/mysql/下的数据库文件到安全的目录 cp -r /var/lib/mysql /home/workflow/mysqlbak/ 再将 /etc/my.cnf 备份一下,然后删除 mv /etc/my.cnf /home/workflow/mysqlbak/ 2、删除 rpm -e mysql //普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 3、安装 安装有两种方式,一种是编译方式,一种为非编译方式,编译方式只需从官网下载一个几十M的源文件,但编译时间需要20分钟左右。非编译方式则需从官网下载一个300M左右已编译好的包,但免除了安装gcc等编译环境的烦恼 3.1) 非编译方式 下载Generic版本
有64和32位的
下载后可以拷贝到/usr/local/目录下,解压,然后将目录名改成mysql就好 3.2) 编译方式 安装编译代码需要的包: yum -y install make gcc-c++ cmake bison-devel ncurses-devel 如果报以下错误:
到下面的网站下载bison-devel-2.4.1-5.el6.x86_64.rpm http://pkgs.org/centos-6/centos-x86_64/bison-devel-2.4.1-5.el6.x86_64.rpm.html
yum localinstall bison-devel-2.4.1-5.el6.x86_64.rpm 然后重新运行yum -y install make gcc-c++ cmake bison-devel ncurses-devel 即成功了 下载: wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz tar xvf mysql-5.6.19.tar.gz cd mysql-5.6.19 编译 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install
4、初始化配置 使用下面的命令查看是否有mysql用户及用户组 cat /etc/passwd 查看用户列表 cat /etc/group 查看用户组列表 如果没有就创建 groupadd mysql useradd -g mysql mysql 修改/usr/local/mysql权限
chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 若不行,则 chmod -R 777 /usr/local/mysql
先将etc/my.cnf移除, 启动MySQL 添加服务,拷贝服务脚本到init.d目录,并设置开机启动 cp support-files/mysql.server /etc/init.d/mysqld -- 注册服务:chkconfig mysqld on -- 使用服务方式启动service mysqld start --启动MySQL 也可以不注册,直接使用 /etc/init.d/mysqld start启动 启动mysql: mysql -uroot 若报找不到命令,则需添加系统路径 # vim /etc/profile 在最后,添加: PATH=/usr/local/mysql/bin:$PATH export PATH 或者用alias mysql=’/usr/local/mysql/bin/mysql’ 保存,退出,然后运行: #source /etc/profile 不报错则成功。 mysql -uroot mysql> SET PASSWORD = PASSWORD('sangfordb'); 设置远程访问的用户: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'sangfordb' WITH GRANT OPTION; FLUSH PRIVILEGES; 然后查看, SELECT host FROM mysql.user WHERE User = 'root'; 看是否有显示% 拷贝备份的my.cnf回到/etc/my.cnf 使用原my.cnf文件后可能要进行的修改: 如果原来[mysqld]下有skip-locking,需要注释,5.6不支持 如果原来[mysqld]下有default-character-set,需要改成character_set_server 若data文件在默认的/usr/local/mysql文件夹中,则需要拷贝回去 /bin/cp -rf /home/pan/mysqlbak/mysql /usr/local/mysql/data/ chgrp -R mysql /usr/local/mysql/data/ && chown -R mysql /usr/local/mysql/data/ 若data文件在/var/lib/,则不用拷贝
启动mysql,即完成 (责任编辑:IT) |