Centos6.5 安装Mysql 5.7.17
由于环境中使用的Mysql比较旧,还是5.1版本,故要升级到5.7版本
准备工作:
- 备份现有数据
- 备份数据库权限
- 移除现有的所有‘Mysql’
- 下载最新的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>
接下来导入之前备份的数据库及权限即可
浙公网安备 33010602011771号