Centos6.5 安装Mysql 5.7.17

由于环境中使用的Mysql比较旧,还是5.1版本,故要升级到5.7版本

准备工作:

  1. 备份现有数据
  2. 备份数据库权限
  3. 移除现有的所有‘Mysql’
  4. 下载最新的Mysql 5.7.17

接下来详细介绍部分步骤:

1、备份现有数据:

  mysqldump -h${host} -u${user} -p${password} ${dbname}> ${dbname}.sql

2、备份数据库权限:

脚本如下:

pwd=${password}
expgrants()
{
  mysql -B -u'root' -p${pwd} -N -S /var/lib/mysql/mysql.sock $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', user, '''@''', host, ''';' ) AS query FROM mysql.user" | \
  mysql -u'root' -p${pwd} -S /var/lib/mysql/mysql.sock $@ | \
  sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}'
}

expgrants > ./grants.sql

备份出来的结果如下:

# cat grants.sql

-- Grants for asterisk@localhost
GRANT USAGE ON *.* TO 'asterisk'@'localhost' IDENTIFIED BY PASSWORD '*CCE2424DB3679A2DBB4C2837AE79800F0600C811';
GRANT ALL PRIVILEGES ON `asterisk`.* TO 'asterisk'@'localhost';

 

3、移除现有的mysql

# rpm -qa | grep -i mysql
mysql-libs-5.1.73-5.el6_7.1.x86_64
php-mysql-5.3.3-48.el6_8.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
#

rpm -e mysql-libs-5.1.73-5.el6_7.1.x86_64 依次卸载所有安装的mysql

然后 # find / -name mysql

移除相关的内容,包括 /etc/my.cnf (最好备份改文件,然后删除)

4、下载最新版本mysql

例如: http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar

下面开始安装:

5、检查libaio是否安装

# yum search libaio # search for info

# yum install libaio # install library

6、创建mysql用户及组

#groupadd mysql

#useradd -r -g mysql -s /bin/false mysql

7、安装

#cd /mnt/data/device2 (默认安装路径为 /usr/local)

#tar xvf /usr/local/src/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz  (解压到当前路径)

# ln -s mysql-5.7.17-linux-glibc2.5-x86_64 mysql

# cd mysql

#mkdir mysql-files

#chmod 750 mysql-files

#chown -R mysql .

#chgrp -R mysql .

# bin/mysqld --initialize --user=mysql --basedir=/mnt/data/device2/mysql/ --datadir=/mnt/data/device2/mysql/data/    (默认不改变路径的只需要前面# bin/mysqld --initialize --user=mysql 即可 )

# bin/mysqld --initialize --user=mysql --basedir=/mnt/data/device2/mysql/ --datadir=/mnt/data/device2/mysql/data/
2017-01-06T01:59:43.238529Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-01-06T01:59:46.563879Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-01-06T01:59:47.041238Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-01-06T01:59:47.142000Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cce315ee-d3b3-11e6-824e-00163e003433.
2017-01-06T01:59:47.148710Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-01-06T01:59:47.150375Z 1 [Note] A temporary password is generated for root@localhost: I,lol&Qfg8d>
[root@iZ25vz]#

记下这个初始的root密码,如  I,lol&Qfg8d>  安装完成后需要强制更改密码

# bin/mysql_ssl_rsa_setup --datadir=/mnt/data/device2/mysql/data/  (默认不改变路径的只需要前面# bin/mysql_ssl_rsa_setup 即可 )

# bin/mysql_ssl_rsa_setup --datadir=/mnt/data/device2/mysql/data/
Generating a 2048 bit RSA private key
.................................................................+++
.+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.......+++
..+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
........................................................+++
........................................................+++
writing new private key to 'client-key.pem'
-----
[root@iZ25vz]#

# chown -R mysql data mysql-files

# bin/mysqld_safe --user=mysql &

# cp support-files/mysql.server /etc/init.d/mysql  (添加service服务)

目录/usr/local/mysql/support-files/下有个文件叫my-default.cnf,修改该文件

basedir = /mnt/data/device2/mysql       (不改变路径的此处是 basedir = /usr/local/mysql)
datadir = /mnt/data/device2/mysql/data   (不改变路径的此处是 datadir = /usr/local/mysql/data)
port = 3306

改完之后复制一份到/etc/目录下,重命名为my.cnf


然后在/etc/profile里面也添加一个路径

##Mysql
export MYSQL_HOME=/mnt/data/device2/mysql  (不改路径 export MYSQL_HOME=/usr/local/mysql)
export PATH=$PATH:$MYSQL_HOME/bin

#source /etc/profile

安装至此结束,启动服务重置密码

注意修改/etc/init.d/mysql 里面的相关路径(默认安装的不需要修改)

basedir=/mnt/data/device2/mysql
datadir=/mnt/data/device2/mysql/data

改变路径的还需要 mkdir -p /usr/local/mysql/bin ,并建立连接

#mkdir -p /usr/local/mysql/bin

#cd /usr/local/mysql/bin

#ln -s /mnt/data/device2/mysql/bin/* ./

#chown -R mysql.mysql /usr/local/mysql/bin

启动mysql

## service mysql start

修改密码

[root@iZ25vzwnduhZ ~]# mysql -p
Enter password: 此处输入刚才记录下来的密码 ,如 I,lol&Qfg8d>

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

接下来导入之前备份的数据库及权限即可

 

posted @ 2017-01-06 10:31  xcfan  阅读(172)  评论(0)    收藏  举报