1、什么是二进制包
二进制包是mysql官方编译后的安装包,类似于windows中的安装文件,广泛应用在生产环境和内网环境中,并且在不同的linux环境下都可以使用。
2、二进制包获取
下载地址:https://dev.mysql.com/downloads/
历史版本下载地址:(常用5.6版本) : https://downloads.mysql.com/archives/community/
mysql官网提供了不同版本的下载,我们常用的是社区版本
下载步骤:根据需要的版本下载通用包,现在以最新版为例
3、配置
二进制包不需要进行编译,只需要检查环境配置,以及添加一些配置,用来启动登录mysql
3.1、环境准备
(1)检查系统中是否已安装mysql或者mariadb
如果linux系统中已经安装过mysql或者mariadb,则需要删除,避免与新安装版本冲突
#基于rhel版本的Linux:
rpm -qa | grep -i mariadb
rpm -qa | grep -i mysql
#如果存在,使用下面命令删除
rpm -e <name> #上面命令查询到的名称
#如果依赖报错加后面加 --nodeps
rpm -e <name> --nodeps
#基于Ubuntu的linux(两个都可以)
dpkg -l | grep mariadb
apt list --installed | grep mysql
#如果存在,使用下面命令删除
apt remove <name> #上面命令查询到的名称
dpkg --remove <name>
(2)检查系统中是否有存在的配置文件
ll | grep /etc/*.cnf #一般情况下名字为my.cnf
注:如果存在则删除,一般情况下卸载应用后不会自动删除配置文件
3.2、安装包配置
(1)解压
#可以在linux下新建个mysql目录,将文件在此目录下解压
tar -xvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
(2)软连接
#将你的mysql安装目录连接到usr/local下(一般情况下linux外部服务放置在此目录下,也可以自己创建)
ln -sv /INSTALL/mysql /usr/local/mysql
(3)创建data和tmp文件夹
mkdir data tmp
#data是数据文件存放位置
#tmp 是临时文件存放路径
#注:两者可以不创建,我习惯创建,易于后期管理,一般默认在/var/lib路径下
(4)mysql安装包文件介绍
[root@localhost mysql]# ll
总用量 300
drwxr-xr-x. 2 mysql mysql 4096 5月 31 14:33 bin
drwxr-xr-x. 7 mysql mysql 4096 6月 3 14:18 data
drwxr-xr-x. 2 mysql mysql 38 4月 10 16:28 docs
drwxr-xr-x. 3 mysql mysql 4096 4月 10 16:28 include
drwxr-xr-x. 6 mysql mysql 4096 4月 10 16:28 lib
-rw-r--r--. 1 mysql mysql 282183 4月 10 14:26 LICENSE
drwxr-xr-x. 4 mysql mysql 30 4月 10 16:28 man
-rw-r--r--. 1 mysql mysql 666 4月 10 14:26 README
drwxr-xr-x. 28 mysql mysql 4096 4月 10 16:28 share
drwxr-xr-x. 2 mysql mysql 77 5月 31 14:54 support-files
drwxr-xr-x. 2 mysql mysql 6 5月 31 14:29 tmp
README:说明手册
LICENSE:许可信息手册
/bin:存放一些可执行文件,主要包含客户端和服务端的启动程序,如mysqld、mysql等:
1.mysqld:代表MySQL服务器程序,运行这个可执行文件可以直接启动一个服务器进程,但此命令不常用
2.mysqld_safe:MySQL的启动脚本,会间接调用mysqld,同时还启动了另一个监控进程,服务器意外终止时可帮助重启。此外,mysqld_safe启动服务器 进程时,会将服务器
3.mysql.server:也是一个启动脚本,会间接调用mysqld_safe。可以在调用时指定start或stop参数启动或停止MySQL服务器程序。
4.mysqld_multi:使用单一配置文件统一管理多个MySQL实例(一台服务器开启多个端口运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务
/docs:存放一些文档
/include:用于放置一些头文件,如mysql.h、mysqld_error.h等
/lib:存放一些类库文件
/share:包含MySQL的共享文件,如字符集文件和错误信息文件
/support-files:存放一些启动脚本,如mysql.server、mysql_multi.server等
/man -- mysql 手册信息
注:在安装包解压到Linux中时,mysql就可以启动了,在/bin,或者/support-files中的mysqld,mysql.server等脚本可以直接启动Linux服务,但是mysql需要在my.cnf进行一些基本的配置,并且现在无法使用系统命令启动mysql,只能在mysql的二进制包目录下才能使用一些命令,并且mysql没有初始化,不能进行登录使用
(5)创建mysql组和用户
创建一个专门的组和用户来登录mysql时为了减少了潜在的安全风险,并且与其他应用隔离
groupadd -r -g 306 mysql
useradd -g 306 -r -u 306 mysql # -r是创建伪用户不能登录系统
#可以直接使用下面命令
group mysql
useradd -g mysql mysql
####授权
改变mysql目录下所有文件的组和用户
chown -R mysql.mysql mysql
(6)配置环境变量
vi /etc/profile
#在文件最后追加下面两行
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$HOME/bin:$MYSQL_HOME/bin
source /etc/profile
#作用是简化命令操作,避免重复输入长路径,在每个路径下都可以使用mysql服务的命令
(7)配置my.cnf文件
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
tmpdir=/usr/local/mysql/tmp
user=mysql
port=3306
socket=/usr/local/mysql/data/mysql.sock
log_error=/usr/local/mysql/data/mysqld.err
[client]
socket=/usr/local/mysql/data/mysql.sock
my.cnf 是 MySQL 的配置文件,它用于配置 MySQL 服务器的各种参数和选项。通过编辑 my.cnf 文件,你可以自定义 MySQL 的行为,包括设置数据目录、临时目录、端口号、字符集、缓冲池大小、日志设置等等。一般放在/etc路径下
my.cnf 文件包含了大量的参数配置,下面列举了一些常见的参数及其功能说明。请注意,这里列出的并不是全部参数,而是一些常见和重要的参数,具体的参数配置可以根据实际需求进行调整。
[mysqld] 区域参数:
datadir:MySQL 数据文件存储的路径。
tmpdir:MySQL 临时文件存储的路径。
port:MySQL 服务器监听的端口号。
bind-address:MySQL 服务器绑定的 IP 地址。
character-set-server:MySQL 服务器的默认字符集。
collation-server:MySQL 服务器的默认校对规则。
max_connections:MySQL 服务器允许的最大连接数。
innodb_buffer_pool_size:InnoDB 缓冲池的大小。
log_error:错误日志文件的路径。
slow_query_log:是否启用慢查询日志记录。
innodb_file_per_table:是否为每个 InnoDB 表使用单独的文件。
query_cache_type:查询缓存的工作方式。
[mysql] 区域参数:
default-character-set:默认的客户端字符集。
pager:客户端使用的分页程序。
[client] 区域参数:
port:MySQL 客户端连接的默认端口号。
socket:MySQL 客户端连接时使用的套接字文件路径。
default-character-set:默认的客户端字符集。
[mysqldump] 区域参数:
quick:是否使用快速模式导出数据。
max_allowed_packet:允许的最大数据包大小。
其他常见参数:
skip-networking:禁用网络连接,只允许本地连接。
skip-name-resolve:禁用 DNS 解析,提高连接速度。
innodb_flush_log_at_trx_commit:InnoDB 引擎的日志刷新策略。
innodb_log_file_size:InnoDB 日志文件的大小。
innodb_log_buffer_size:InnoDB 日志缓冲区的大小。
max_allowed_packet:允许的最大数据包大小。
以上是一些常见的 my.cnf 参数配置,你可以根据具体需求和环境进行调整。在修改配置文件之前,务必备份原始文件,并谨慎调整各个参数的值。
(8)添加服务到系统服务中(可以使用systemd或者service中,使用系统命令启动mysql)
########基于Ubuntu的linux系统(或者是老版的rhel8以下)#######
将support-files目录中将mysql.server复制到/etc/init.d中的mysqld中,创建初始化进程,并且加到服务中
cp support-files/mysql.server /etc/init.d/mysqld
sudo update-rc.d mysqld defaults
#######基于rhel的linux系统##########
vim /etc/systemd/system/mysql.service #(创建systemd服务配置文件)
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network-online.target
After=syslog.target
#############
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 65536
Restart=on-failure
RestartPreventExitStatus=1
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
systemctl daemon-reload
(9)mysql初始化(可以在前面执行)
# ubuntu
初始化mysql(还是在mysql目录下,添加--datadir=/mydata/data/)
scripts/mysql_install_db --user=mysql --datadir=/use/local/mysql/data
#rhel
mysqld --defaults-file=/etc/my.cnf --initialize
#或
mysql_secure_installation
#注:初始化的时候需要记住初始的密码,否则需要通过在mysql/bin目录下的mysql_safe脚本启动,然后重启服务
mysqld_safe --skip-grant-tables&
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
4、用户登录
启动实例
#注,如果mysql用户是伪用户使用下面命令,否则在mysql用户下加sudo
#rhel
systemctl start mysql
systemctl status mysql
#ubuntu
service mysqld start
service mysqld resatrt
service mysqld status
登录
mysql -uroot -p