CentOS 7 离线安装 MySQL 5.7

0.说明

在不联网的环境下安装 MySQL 5.7 ,从官网下载离线安装包
现在用CentOS 7系统模拟服务器离线安装MySQL 5.7
在网上看到一个教程挺新的,参照着他的教程结合我的情况安装了一遍

参考链接:
https://www.jellythink.com/archives/14

 

1.检查是否安装了 MySQL
rpm -qa | grep mysql

2.检查是否安装了mariadb
rpm -qa | grep mariadb

3.如果已经存在则卸载
rpm -e --nodeps xxx

 

4.下载mysql-5.7.30
下载地址 https://downloads.mysql.com/archives/community/

 

 

 

 

 

5.上传

将下载的离线安装包mysql-5.7.30-linux-glibc2.12-x86_64.tar上传到/app/package中

 

6.解压离线安装包

# 解压缩
tar -xvf /app/package/mysql-5.7.30-linux-glibc2.12-x86_64.tar

# 会得到一个mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz文件,再解压缩
tar -zxvf /app/package/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz  -C /app/soft

# 建立软链接,便于以后版本升级
ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql

# 修改mysql文件夹下所有文件的用户和用户组
chown -R share:share mysql/

 

 

 

 

 

 

7.创建临时目录、数据目录和日志目录

su share
mkdir -p /app/mysql/3306/data
mkdir -p /app/mysql/3306/log
mkdir -p /app/mysql/3306/tmp

 

8.创建配置文件

# 创建配置文件
cd /etc

# 在my.cnf文件中添加对应的配置项
vi my.cnf

 

my.cnf 内容如下

[client]                                        # 客户端设置,即客户端默认的连接参数
port = 3306                                    # 默认连接端口
socket = /app/mysql/3306/tmp/mysql.sock                        # 用于本地连接的socket套接字,mysqld守护进程生成了这个文件


[mysqld]                                        # 服务端基本设置
# 基础设置
server-id = 1                                  # Mysql服务的唯一编号 每个mysql服务Id需唯一
port = 3306                                    # MySQL监听端口
basedir = /app/soft/mysql                      # MySQL安装根目录
datadir = /app/mysql/3306/data                      # MySQL数据文件所在位置
tmpdir  = /app/mysql/3306/tmp                                  # 临时目录,比如load data infile会用到
socket = /app/mysql/3306/tmp/mysql.sock        # 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
pid-file = /app/mysql/3306/log/mysql.pid      # pid文件所在目录
skip_name_resolve = 1                          # 只能用IP地址检查客户端的登录,不用主机名
character-set-server = utf8mb4                  # 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
transaction_isolation = READ-COMMITTED          # 事务隔离级别,默认为可重复读,MySQL默认可重复读级别
collation-server = utf8mb4_general_ci          # 数据库字符集对应一些排序等规则,注意要和character-set-server对应
init_connect='SET NAMES utf8mb4'                # 设置client连接mysql时的字符集,防止乱码
lower_case_table_names = 1                      # 是否对sql语句大小写敏感,1表示不敏感
max_connections = 400                          # 最大连接数
max_connect_errors = 1000                      # 最大错误连接数
explicit_defaults_for_timestamp = true          # TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
max_allowed_packet = 128M                      # SQL数据包发送的大小,如果有BLOB对象建议修改成1G
interactive_timeout = 1800                      # MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
wait_timeout = 1800                            # MySQL默认的wait_timeout值为8个小时, interactive_timeout参数需要同时配置才能生效
tmp_table_size = 16M                            # 内部内存临时表的最大值 ,设置成128M;比如大数据量的group by ,order by时可能用到临时表;超过了这个值将写入磁盘,系统IO压力增大

 

9.安装数据库

# 进入MySQL的bin目录
cd /app/soft/mysql/bin

# 初始化数据库,并指定启动mysql的用户
./mysqld --initialize --user=share

[share@s106 bin]$ pwd
/app/soft/mysql/bin
[share@s106 bin]$ ./mysqld --initialize --user=share
2020-10-21T16:19:16.622570Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2020-10-21T16:19:16.622664Z 0 [Warning] Changed limits: max_connections: 214 (requested 400)
2020-10-21T16:19:16.622666Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 2000)
2020-10-21T16:19:16.924699Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-10-21T16:19:16.996135Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-10-21T16:19:17.065945Z 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: 2aaaffa2-13b9-11eb-b08c-000c294e627f.
2020-10-21T16:19:17.066801Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-10-21T16:19:17.268919Z 0 [Warning] CA certificate ca.pem is self signed.
2020-10-21T16:19:17.577435Z 1 [Note] A temporary password is generated for root@localhost: 5jee7Rjnuw>h

这里最好指定启动mysql的用户名,否则就会在启动MySQL时出现权限不足的问题
安装完成后,在my.cnf中配置的datadir目录下生成一个error.log文件,里面记录了root用户的随机密码。

10.设置开机自启动服务

# 复制启动脚本到资源目录
cp /app/soft/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

# 增加mysqld服务控制脚本执行权限
chmod +x /etc/rc.d/init.d/mysqld

# 将mysqld服务加入到系统服务
chkconfig --add mysqld

# 检查mysqld服务是否已经生效
chkconfig --list mysqld

# 切换至mysql用户,启动mysql
service mysqld start

 

 

11.配置环境变量
为了更好的操作mysql,配置环境变量。

# 切换至mysql用户
su - share

# 修改配置文件,增加export PATH=$PATH:/app/soft/mysql/bin
vi .bash_profile

# 立即生效
source .bash_profile

 

12.登陆,修改密码

# 登陆mysql
mysql -uroot -p

# 修改root用户密码
set password for root@localhost=password("123456");

 

 

 

 

 


 

posted @ 2020-11-18 16:44  山间一棵松  阅读(417)  评论(0编辑  收藏  举报