centos7下安装mysql5.7(rpm)⼀查看linux操作系统版本和系统内核版本
[root@nfs_client ~]# cat /etc/redhat-release    查看操作系统版本
CentOS Linux release 7.5.1804 (Core)
[root@nfs_client ~]# uname -r              查看系统内核版本
3.10.0-862.el7.x86_64
⼆下载对应版本的MySQL安装⽂件
1、下载地址;
2、选择对应的Linux版本和x86/x64进⾏下载
可以选择 RPM Bundle,下载完记得解压  tar -xvf xxx.tar
[root@nfs_client ~]# wget sql/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar 也可以细化下载,下载须要的mysql组件,有4个:分别是 server、client、common、libs
三卸载旧版本的MySql (没有的话,则跳过此步骤)
1、查看旧版本MySql
rpm -qa | grep mysql
将会列出旧版本MySql的组件列表,如:
我的电脑这⾥只显⽰⼀个,有可能会有多个。
2、逐个删除掉旧的组件
使⽤命令rpm -e --nodeps {-file-name}进⾏移除操作,移除的时候可能会有依赖,要注意⼀定的顺序。
第⼀次没有删除成功是因为nodeps 前⾯的两个中划线有⼀个写成了中⽂。
四使⽤ rpm 命令安装MySql组件
使⽤命令rpm -ivh {-file-name}进⾏安装操作。
按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
在安装 mysql-community-libs-5.7.22-1.el7.x86_64.rpm 时有可能会报错:mysql依赖错误
[root@nfs_client tools]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies:
mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.22-1.el7.x86_64
mariadb-libs is obsoleted by mysql-community-libs-5.7.22-1.el7.x86_64
解决:清除yum⾥所有mysql依赖包
[root@nfs_client tools]# rpm -qa|grep mysql
[root@nfs_client tools]# yum remove mysql-libs
注意:
有的系统可能不太⼀样,没有mysql-libs,⽽是mariadb-libs,此时要移除的则是mariadb-libs
[root@nfs_client tools]# rpm -qa|grep mariadb
[root@nfs_client tools]# yum remove mariadb-libs
清除完yum⾥所有mysql的依赖包后,再次安装mysql组件就不会报错了:
[root@nfs_client tools]# ls
mysql-community-client-5.7.22-1.el7.x86_64.rpm  mysql-community-libs-5.7.22-1.el7.x86_64.rpm
mysql-community-common-5.7.22-1.el7.x86_64.rpm  mysql-community-server-5.7.22-1.el7.x86_64.rpm
[root@nfs_client tools]# rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-common-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
<                          >>>>>>### [100%]
Updating /
1:mysql-community-common-5.7.22-1.e>>>>>>### [100%]
[root@nfs_client tools]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
<                          >>>>>>### [100%]
Updating /
1:mysql-community-libs-5.7.22-1.el7>>>>>>### [100%]
[root@nfs_client tools]# rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-client-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
<                          >>>>>>### [100%]
Updating /
1:mysql-community-client-5.7.22-1.e>>>>>>### [100%]
[root@nfs_client tools]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
<                          >>>>>>### [100%]
Updating /
1:mysql-community-server-5.7.22-1.e>>>>>>### [100%]
[root@nfs_client tools]#
注意细节:
1> 执⾏ yum remove mysql-libs  命令后,会⾃动删除掉 /etc/ 下的 myf ⽂件
2> 对于安装mysql组件,只有安装了 mysql-community-server-5.7.22-1.el7.x86_64.rpm 组件,才会:
a). 在 /etc/下⽣成 myf ⽂件 和 myf.d ⽂件夹
b). 在/var/lib/下⽣产以下三个⽂件夹
c). 在/var/log/ 下⽣成 mysqld.log ⽂件
d). 在/var/run/ 下⽣成 mysqld ⽬录
个别情况:
个别情况1:
在阿⾥云ECS云服务器上安装mysql5.7,当安装 mysql-community-server-5.7.22-1.el7.x86_64.rpm 时报错,报错如下:
[root@i3467544tdsxfrZ ~]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.22-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.22-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.22-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.22-1.el7.x86_64
真正原因:
真正的原因是 MySQL依赖libaio,所以先要安装libaio,我们通过 rpm -qa|grep libaio 命令查看⼀下,如图:
经过对⽐发现,⽆法正常安装mysql-community-server-5.7.22-1.el7.x86_64的服务器的确没有安装libaio
所以,解决法案就是:
安装libaio
[root@iZbp1845cet96se1qmb5ekZ ~]# yum -y install libaio
安装libaio后,再重新安装⼀次mysql-community-server-5.7.22-1.el7.x86_64.rpm,此时就能正常安装了
个别情况2:
⽐如解决了“个别情况1”,但在启动mysql的时候,启动不起来,或启动后,去查临时密码,使⽤命令没反应。查看⽇志
mysqld.log(可在/etc/myf中查到mysqld.log的配置位置),报如下错误,此时怎么解决?
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
此时,1>先通过rpm -e --nodeps xxx  卸载掉server,卸载后删除datadir⽬录,2>卸载后查看 /etc/myf 中,datadir的配置情况,将datedir⽬录删除,3>最后通过命令rpm -ivh xxx 重新安装server,此时就能正常使⽤mysql了
命令代码如下:
[root@izbp1845cet96se1qmb5ekz ~]# rpm -e --nodeps mysql-community-server-5.7.22-1.el7.x86_64
[root@izbp1845cet96se1qmb5ekz ~]# cat /etc/myf
xxxxxxxxxxxxx
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
xxxxxxxxxxxxxxx
[root@izbp1845cet96se1qmb5ekz ~]# cd /var/lib
[root@izbp1845cet96se1qmb5ekz lib]# rm -rf mysql
[root@izbp1845cet96se1qmb5ekz ~]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
[root@izbp1845cet96se1qmb5ekz ~]# systemctl start mysqld.service
[root@izbp1845cet96se1qmb5ekz ~]# ps -ef|grep mysql
root      3306  1068  0 14:34 pts/0    00:00:00 mysql -uroot -p
mysql    27009    1  1 15:26 ?        00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid root    27038 26239  0 15:27 pts/6    00:00:00 grep --color=auto mysql
五登录并创建MySql密码
1 启动MySql
安装完后,使⽤命令 service mysqld start 或 systemctl start mysqld.service 启动MySQL服务。(如果mysql服务⽆法启动,就重启⼀下系统)
systemctl start mysqld.service    启动mysql
systemctl status mysqld.service  查看mysql状态
systemctl stop mysqld.service  关闭mysql
查看mysql进程 ps -ef|grep mysql
查看3306端⼝ netstat -anop|grep 3306
eg:
[root@nfs_client tools]# ps -ef|grep mysql
mysql      4102      1  0 14:29 ?        00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid root      4806  1464  0 14:43 pts/0    00:00:00 grep --color=auto mysql
[root@nfs_client tools]# ps -ef|grep mysqld
mysql      4102      1  0 14:29 ?        00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid root      4829  1464  0 14:43 pts/0    00:00:00 grep --color=auto mysqld
[root@nfs_client tools]# firewall-cmd --state
not running
[root@nfs_client tools]# netstat -anop|grep 3306
tcp6      0      0 :::3306                :::*                    LISTEN      4102/mysqld          off (0.00/0/0)
[root@nfs_client tools]#mysql下载之后是个文件夹
2 登陆mysql修改root密码
由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进⼊数据库,进⽽进⾏设置密码等操作。其后版本对密码等安全相关操作进⾏了⼀些改变,在安装过程中,会在安装⽇志中⽣成⼀个临时密码。
怎么到这个临时密码呢?
使⽤:
grep 'temporary password' /var/log/mysqld.log
即可查询到类似于如下的⼀条⽇志记录:
[root@nfs_client tools]# grep 'temporary password' /var/log/mysqld.log    # 在/var/log/mysqld.log⽂件中搜索字段‘temporary password’
2018-07-18T06:02:23.579753Z 1 [Note] A temporary password is generated for root@localhost: n(jPp4l-C33#
n(jPp4l-C33#即为登录密码。使⽤这个随机密码登录进去,然后修改密码,使⽤命令:
mysql -uroot -p

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论