安装包部署

在线安装

  1. 下载MySQL官方yum repository

    1. wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  2. 安装yum repository

    1. yum -y install mysql57-community-release-el7-10.noarch.rpm
  3. 安装mysql服务

    1. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    2. yum -y install mysql-community-server
  4. 启动MySQL

    systemctl start mysqld.service
    
  5. 获取MySQL随机密码

    grep "password" /var/log/mysqld.log
    
  6. 连接数据库

    mysql -u root -p
    
  7. 修改MySQL密码规则

    set global validate_password_policy=0;
    set global validate_password_length=1;
    
  8. 修改MySQL密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'kungfu@123';
    
  9. 允许远程用户连接

    grant all privileges on . to 'root'@'%' identified by 'kungfu@123' with grant option;
    flush privileges;
    
  10. 断开mysql连接

    exit;
    

    离线安装

  11. 安装包准备

libaio-0.3.109-13.el7.x86_64.rpm
链接:
mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
链接:

  1. 解压、创建目录

准备的两个文件,上传到Linux目录: /usr/local

cd  /usr/local
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql
cd mysql
mkdir data log
  1. 创建用户组、用户,赋予读写权限 ``` 添加用户组 mysql groupadd mysql

创建用户 mysql useradd -r -g mysql mysql

更改mysql目录所有者 chown -R mysql /usr/local/mysql/

更改mysql目录所属群组 chgrp -R mysql /usr/local/mysql/

切换mysql用户 su - mysql,提示报错:<br />`su: 警告:无法更改到 /home/mysql 目录: 没有那个文件或目录`<br />解决办法:切换root用户 su

mkdir /home/mysql cp /etc/skel/.bashrc /home/mysql/ cp /etc/skel/.bash_profile /home/mysql/ source ~/.bashrc


4. 配置文件

切换root用户 su root<br />mysql配置文件:vi /etc/my.cnf
```powershell
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
#安装目录
basedir=/usr/local/mysql
#数据库存放目录
datadir=/usr/local/mysql/data

#MySQL客户端程序和服务器之间的本地通讯
socket=/usr/local/mysql/data/mysql.sock

#错误日志信息
log-error=/usr/local/mysql/log/mysqld.log

#如果存在,再次start时会报已经启动
pid-file=/usr/local/mysql/data/mysqld.pid

#linux下要严格区分大小写,windows下不区分大小写;1表示不区分大小写,0表示区分大小写
lower_case_table_names = 0

#默认sql模式,严格模式
#sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY 
#NO_ZERO_IN_DATE 不允许年月为0
#NO_ZERO_DATE 不允许插入年月为0的日期
#ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL
#NO_ENGINE_SUBSTITUTION 不使用默认的存储引擎替代
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上
# Max_used_connections / max_connections * 100% 
max_connections = 512
# 阻止过多尝试失败的客户端,如果值为10时,失败(如密码错误)10次,mysql会无条件阻止用户连接
max_connect_errors = 1000000
max_connections = 5000
default-time_zone = '+8:00'

#表描述符缓存大小,可减少文件打开/关闭次数,一般max_connections*2。
table_open_cache = 1024
#MySQL 缓存 table 句柄的分区的个数,每个cache_instance<=table_open_cache/table_open_cache_instances
table_open_cache_instances = 32
#mysql打开最大文件数
open_files_limit = 65535

#是MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段
#如果不能,可以尝试增加sort_buffer_size变量的大小
sort_buffer_size = 16M
  1. 初始化数据库

初始化MySQL之前,需安装MySQL依赖包liebaio
检查安装libaio环境:rpm -qa|grep libaio 如果已经有libaio依赖包,无需再次上传rpm安装包。

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

没有任何打印,初始化MySQL成功。

cat /usr/local/mysql/log/mysqld.log | grep 'password'
  1. 启动服务,修改密码
    su - mysql
    
    /usr/local/mysql/support-files/mysql.server start
    
    /usr/local/mysql/bin/mysql -uroot -p
    
    set password=password('root');
    
    flush privileges;
    
    ```powershell update mysql.user set authentication_string=password (‘root’) WHERE User=’root’;

UPDATE mysql.user set Host=’%’ where User=’root’;

```powershell
flush privileges;
  1. 设置开机自启动 ```powershell

    切换到root用户

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chkconfig —add mysqld


8. 添加MySQL系统路径
```powershell
环境配置:vim /etc/profile

export PATH=/usr/local/mysql/bin:$PATH

文件生效:source /etc/profile

Docker部署