1)卸载系统自带的 mysql和mariadb-lib
[root@kevin ~]# /bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps
[root@kevin ~]# /bin/rpm -e $(/bin/rpm -qa | grep mariadb|xargs) --nodeps
2)下载mysql5.7.21 rpm安装包
下载地址:http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/
[root@kevin ~]# wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
[root@kevin ~]# tar -vxf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
[root@kevin ~]# ll
总用量 1160052
-rw-------. 1 root root 2090 1月 24 02:35 anaconda-ks.cfg
-rw-r–r--. 1 root root 593940480 12月 28 21:03 mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
-rw-r–r--. 1 7155 31415 25107316 12月 28 20:53 mysql-community-client-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 278844 12月 28 20:53 mysql-community-common-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 3779988 12月 28 20:53 mysql-community-devel-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 46256768 12月 28 20:53 mysql-community-embedded-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 24078148 12月 28 20:53 mysql-community-embedded-compat-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 128571868 12月 28 20:53 mysql-community-embedded-devel-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 2238596 12月 28 20:53 mysql-community-libs-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 2115904 12月 28 20:54 mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 55662616 12月 28 20:54 mysql-community-minimal-debuginfo-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 171890056 12月 28 20:54 mysql-community-server-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 15289580 12月 28 20:54 mysql-community-server-minimal-5.7.21-1.el7.x86_64.rpm
-rw-r–r--. 1 7155 31415 118654584 12月 28 20:54 mysql-community-test-5.7.21-1.el7.x86_64.rpm
依次执行(几个包有依赖关系,所以执行有先后)下面命令安装
[root@kevin ~]# rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm --force
[root@kevin ~]# rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm --force
[root@kevin ~]# rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm --force
[root@kevin ~]# rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm --force
=============================================================================================================
可能在安装mysql-community-server-5.7.21-1.el7.x86_64.rpm的时候会有如下报错:
[root@kevin ~]# rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm --force
warning: mysql-community-server-5.7.21-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
net-tools is needed by mysql-community-server-5.7.21-1.el7.x86_64
这个报错的意思是需要安装libaio包和net-tools包:
安装libaio-0.3.107-10.el6.x86_64.rpm
[root@kevin ~]# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
[root@kevin ~]# rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm --force
安装net-tools
[root@kevin ~]# yum install net-tools
使用rpm安装方式安装mysql,安装的路径如下:
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
/etc/my.cnf
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
3)数据库初始化
为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
[root@kevin ~]# mysql_install_db --datadir=/var/lib/mysql //必须指定datadir,执行后会生成~/.mysql_secret密码文件
[root@kevin ~]# mysqld --initialize --user=mysql //新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码。如果是以mysql身份运行,则可以去掉–user选项。
4)更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库
[root@kevin ~]# chown mysql:mysql /var/lib/mysql -R
[root@kevin ~]# systemctl start mysqld.service //启动mysql数据库服务
5)根据第3步中的密码登录到mysql,更改root用户的密码,新版的mysql在第一次登录后更改密码前是不能执行任何命令的
另外–initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,
而使用–initialize-insecure命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的–initialize初始化的,会生成一个 root 账户密码,密码在log文件里,如下最后的")1r3gi,hjgQa"即为随即生成的root密码
[root@kevin ~]# cat /var/log/mysqld.log
…
07T04:41:58.420558Z 1 [Note] A temporary password is generated for root@localhost: )1r3gi,hjgQa
[root@kevin ~]# mysql -uroot -p’)1r3gi,hjgQa’
mysql> set password=password(‘kevin@123’);
mysql> flush privileges