Ubuntu离线安装 MySQL 5.7

一、所需环境

操作系统:Ubuntu 20.04

数据库:MySQL 5.7.34

网络情况:内网服务器,无法访问互联网资源

二、提前下载所需以来及安装包

1、所需依赖包

bash 复制代码
(1)libmecab2 
http://archive.ubuntu.com/ubuntu/pool/universe/m/mecab/libmecab2_0.996-1.2ubuntu1_amd64.deb
(2)libaio1 
http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.110-2_amd64.deb
(3)libtinfo5 
http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.2-0ubuntu2_amd64.deb

2、下载MySQL安装包

演示所用版本:

bash 复制代码
https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.34-1ubuntu18.04_amd64.deb-bundle.tar

大家可以去官网下载自己需要的版本:
https://downloads.mysql.com/archives/community/

三、安装依赖,以及安装MySQL

1、将下载的依赖以及安装包上传到自己指定的文件夹(演示用/opt)

2、安装依赖包

bash 复制代码
sudo dpkg -i libmecab2_0.996-1.2ubuntu1_amd64.deb
sudo dpkg -i libaio1_0.3.110-2_amd64.deb
sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb

3、安装MySQL

(1)解压安装包

bash 复制代码
sudo tar -xvf mysql-server_5.7.34-1ubuntu18.04_amd64.deb-bundle.tar

解压后目录如下:

(2)安装MySQL

bash 复制代码
sudo dpkg -i mysql-common_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg-preconfigure mysql-community-server_5.7.34-1ubuntu18.04_amd64.deb    //此步需要输入数据的root密码
sudo dpkg -i libmysqlclient20_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqld-dev_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-client_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-common_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-server_5.7.34-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-server_5.7.34-1ubuntu18.04_amd64.deb

(3)验证MySQL的安装是否成功:

mysql -u root -p //输入密码

查看mysql状态:

bash 复制代码
sudo systemctl status mysql.service

四、MySQL配置

1、开启MySQL远程访问

(1)修改mysqld.cnf配置文件

bash 复制代码
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

打开文件后将下面一行注释

#bind-address = 127.0.0.1(修改后)

(2)执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):

bash 复制代码
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;

然后再输入下面两行命令

bash 复制代码
flush privileges; 

exit;

2、防火墙开打开端口

bash 复制代码
1、查看防火墙状态,inactive是关闭,active是开启。
sudo ufw status
 
2、开启防火墙。
sudo ufw enable
 
3、关闭防火墙。
sudo ufw disable
 
4、开启3306端口访问
sudo ufw allow 3306/tcp

注意:UFW防火墙开发 3306端口,UFW处于 Status: inactive 时(sudo ufw status verbose),可以不执行上面操作命令

五、配置文件参考

bash 复制代码
# Copyright (c) 2014, 2021, Oracle and/or its affiliates.
# ......
# ......
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
 
[mysqld]
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
datadir		= /var/lib/mysql
log-error	= /var/log/mysql/error.log
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 1024M
max_allowed_packet = 100G
table_open_cache = 4096
sort_buffer_size = 16M
net_buffer_length = 4K
read_buffer_size = 16M
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 256M
thread_cache_size = 512
query_cache_size = 512M
tmp_table_size = 512M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
explicit_defaults_for_timestamp = true
skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
 
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
#slow_query_log=1
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""
 
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 4096M
innodb_log_file_size = 2048M
innodb_log_buffer_size = 512M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 40
innodb_write_io_threads = 40
 
[mysqldump]
quick
max_allowed_packet = 500M
 
[mysql]
no-auto-rehash
 
[myisamchk]
key_buffer_size = 1024M
sort_buffer_size = 16M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout
 
# By default we only accept connections from localhost
# bind-address	= 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

修改mysql配置文件

/etc/mysql/mysql.conf.d/mysqld.cnf

bash 复制代码
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
相关推荐
数据库幼崽1 小时前
MySQL 8.0 OCP 1Z0-908 131-140题
数据库·mysql·ocp
爱编程的小新☆1 小时前
【MySQL】数据库三大范式
数据库·mysql
随心............1 小时前
MySQL的触发器
数据库·mysql
GUIQU.2 小时前
【MySQL】项目实践
数据库·mysql·项目实践
Eric.Lee202112 小时前
Ubuntu shell指定conda的python环境启动脚本
python·ubuntu·conda·shell
dddaidai12312 小时前
分布式ID和分布式锁
redis·分布式·mysql·zookeeper·etcd
lyw20561912 小时前
MySQL八股(自用)
数据库·mysql
默心16 小时前
centos7部署mysql5.7
linux·运维·mysql·centos
不穿铠甲的穿山甲17 小时前
MySQL-数据库分布式XA事务
数据库·分布式·mysql
dubochao_xinxi17 小时前
✅ TensorRT Python 安装精简流程(适用于 Ubuntu 20.04+)
开发语言·python·ubuntu