在RedHat Linux平台上安装MySQL 8

2021-09-18 17:42:47 浏览数 (1)

下载安装包

到MySQL的官方网站https://www.mysql.com/downloads/上下载完整的MySQL 8社区版RPM安装包,注意选择对应的平台和操作系统版本,这里选择的是红帽Linux,CPU架构是64位的x86。这个安装包里包括的RPM包如下:

代码语言:javascript复制
$ tar tvf mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar|awk '{print $6}'mysql-community-client-8.0.25-1.el7.x86_64.rpmmysql-community-client-plugins-8.0.25-1.el7.x86_64.rpmmysql-community-common-8.0.25-1.el7.x86_64.rpmmysql-community-devel-8.0.25-1.el7.x86_64.rpmmysql-community-embedded-compat-8.0.25-1.el7.x86_64.rpmmysql-community-libs-8.0.25-1.el7.x86_64.rpmmysql-community-libs-compat-8.0.25-1.el7.x86_64.rpmmysql-community-server-8.0.25-1.el7.x86_64.rpmmysql-community-test-8.0.25-1.el7.x86_64.rpm

这些包的命名规则是packagename-version-distribution-arch.rpm,其中:

(1)packagename代表包名。

(2)version代表版本号。

(3)distribution代表linux平台。

(4)arch代表CPU类型。

例如mysql-community-server-8.0.25-1.el7.x86_64.rpm这个RPM包,mysql-community-server是包名,8.0.25-1是版本号,el7中的el代表Enterprise Linux,包括Oracle Linux、Red Hat Enterprise Linux和CentOS,7是Linux的大版本号,x86_64是CPU的类型。

         安装前先检查是否已经安装了MySQL或MariaDB

首先,检查默认的配置文件是否已经存在,命令如下:

代码语言:javascript复制
$ ll /etc/my.cnf-rw-r--r--. 1 root root 570 Mar  6  2014 /etc/my.cnf

然后,检查是否有MySQL或MariaDB的安装包,命令如下:

代码语言:javascript复制
$ rpm -qa|grep -i mysql$ rpm -qa|grep -i mariadbmariadb-libs-5.5.35-3.el7.x86_64

Red Hat和CentOS上通常已经安装了mariadb -libs的包,这个包需要卸载,特别是/etc/my.cnf文件,一定要先删除,如果不删除这个网站,新安装的MySQL会使用这个配置文件,届时会出现莫名其妙的错误。使用下面的命令卸载mariadb -libs包:

代码语言:javascript复制
$ rpm -e mariadb-libs$ ll /etc/my.cnfls: cannot access /etc/my.cnf: No such file or directory

卸载了mariadb -libs的包后,/etc/my.cnf文件就一并被删除了。

                        安装RPM包

服务端大部分时候只需要安装下面5个包:

(1)mysql-community-server

(2)mysql-community-client

(3)mysql-community-libs

(4)mysql-community-common

(5)mysql-community-libs-compat

安装命令如下:

代码语言:javascript复制
$ sudo yum install mysql-community-{server,client,common,libs}-*

客户端的安装命令如下:

代码语言:javascript复制
$ sudo yum install mysql-community-{client,common,libs}-*

也可以把yum install替换成rpm -Uvh,但rpm -Uvh因为不能自动解决包的依赖关系的问题而更容易出错。

初始化数据库

安装完成后,先不要启动MySQL数据库,因为MySQL数据库在第一次启动时会自动进行初始化,在初始化之前要根据自己的需求对相关系统参数进行修改(默认的参数文件是/etc/my.cnf):

(1)最有可能修改的系统参数是数据文件目录datadir,这个系统参数的默认值是“/var/lib/mysql”,它通常在本地硬盘,在生产环境中通常是不合适的,可以把它改成其他实际生产中用到的目录,例如“/disk1/data”。

(2)系统参数innodb_log_file_size指定InnoDB的重做日志文件的大小,默认值是50M,对于生产环境通常也小了,第16章会说明如何计算这个系统参数的大小,这里可以把它设置成100M。

(3)系统参数innodb_data_home_dir指定InnoDB系统表空间的目录,默认值是datadir,如果有必要,也可以调整这个系统参数。

(4)系统参数innodb_log_group_home_dir指定InnoDB的重做日志文件的目录,默认值也是datadir,如果有必要,也可以调整这个系统参数。

参数文件准备好后,启动mysqld服务,命令如下:

代码语言:javascript复制
$ sudo systemctl start mysqld

启动过程中会自动进行数据库的初始化工作,在初始化过程中会自动为超级用户root@localhost生成一个密码,可以在MySQL的错误日志里查询自动生成的密码,命令如下:

代码语言:javascript复制
$ sudo grep 'temporary password' /var/log/mysqld.log2020-12-22T08:08:27.273629Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: otvx.-q92,/N[

使用初始密码登录MySQL数据库并修改密码,这里需要注意,如果密码里面有特殊字符,密码应用单引号或双引号括起来,命令如下:

代码语言:javascript复制
$ sudo mysql -uroot -p’otvx.-q92,/N’mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  Commands end with ; or g.Your MySQL connection id is 8Server version: 8.0.25......

登录后,可以使用set password的命令修改密码:

代码语言:javascript复制
mysql> set password='Dnihaha123!';

修改完成后使用新的密码重新登录,命令如下:

代码语言:javascript复制
$ sudo mysql -uroot -pDnihaha123!

0 人点赞