Linux环境离线安装MySQL5.7.3x版本数据库

  • 前言
  • 安装过程
  • 1. 初始化安装环境
  • 2. 修改my.cnf配置
  • 3. 修改系统配置文件
  • 4. 安装MySQL
  • 5. 设置开机自启动
  • 6. 配置MySQL相关信息
  • 其他
  • 参考链接


前言

  • 内容说明
    测试服务器首次安装MySQL,/etc目录下存在my.cnf文件,已存在自定义charlesYan用户

安装过程

1. 初始化安装环境

# 查看当前系统版本
    cat /etc/redhat-release  # CentOS Linux release 7.6.1810 (Core)

    # 卸载系统自带的mysql
    rpm -qa|grep mysql  # qt5-qtbase-mysql-5.9.2-3.el7.x86_64

    rpm -e --nodeps qt5-qtbase-mysql-5.9.2-3.el7.x86_64

    # 上传mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz,解压缩到指定目录
    tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C ../java/mysql/

    # /home/charlesYan/java目录下更改所属组和用户
    chown -R charlesYan:charlesYan mysql

    # /home/charlesYan/java/mysql 目录下创建mysql数据存储目录data目录及子目录tmp
    mkdir -p data/tmp
    mkdir -p data/log
    chown -R charlesYan:charlesYan data

2. 修改my.cnf配置

  • 操作步骤
vi /etc/my.cnf
  • 替换my.cnf内容
[mysql]
    socket=/home/charlesYan/java/mysql/mysql-5.7.36/lib/mysql.sock
    # set mysql client default chararter
    default-character-set=utf8

    [mysqld]
    # 原目录定义为/var/lib/mysql/mysql.sock
    socket=/home/charlesYan/java/mysql/mysql-5.7.36/lib/mysql.sock
    # set mysql server port  
    port = 3306 #默认是3306,这里发现3306已经被占用,因此防止这种情况发生,可以避免使用3306mysql默认端口
    # set mysql install base dir
    basedir=/home/charlesYan/java/mysql/mysql-5.7.36
    # set the data store dir
    datadir=/home/charlesYan/java/mysql/data/workdbs
    tmpdir =/home/charlesYan/java/mysql/data/tmp
    log-error=/home/charlesYan/java/mysql/data/log/mysql_3306.log
    # set the number of allow max connnection
    max_connections=200
    # set server charactre default encoding
    character-set-server=utf8
    # the storage engine
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    explicit_defaults_for_timestamp=true

    [mysql.server]
    user=charlesYan

3. 修改系统配置文件

## 编辑etc目录下的“profile”文件。
    vi /etc/profile

    ## 文件末尾添加如下内容:
    export PATH=$PATH:/home/charlesYan/java/mysql/mysql-5.7.36/bin
    export PATH=$PATH:/etc/init.d

    ## 重新加载etc目录下的profile文件。
    source /etc/profile

4. 安装MySQL

# 将mysql.server复制到/etc/init.d/
    cd /home/charlesYan/java/mysql/mysql-5.7.36
    cp -a ./support-files/mysql.server /etc/init.d/mysql.server

    ##说明:如果执行cp -a ./support-files/mysql.server /etc/init.d/mysqld命令,即重命名mysql.server文件为mysqld,则将使用mysqld作为MySQL的服务名,而不是mysql.server。


    # 进入mysql文件夹安装mysql
    cd /home/charlesYan/java/mysql/mysql-5.7.36

    ## 安装mysql MySQL 5.7.6 开始不推荐使用mysql_install_db,因为它的功能已集成到 MySQL 服务器mysqld中
    ./bin/mysqld --initialize --user=charlesYan --basedir=/home/charlesYan/java/mysql/mysql-5.7.36 --datadir=/home/charlesYan/java/mysql/data/workdbs

    ## 查看日志获取临时密码
    cat /home/charlesYan/java/mysql/data/log/mysql_3306.log ## odmNjX:sT3Oo

5. 设置开机自启动

  • 操作步骤
## 注册并设置mysql.server服务为开机自启动
    systemctl enable mysql.server.service
    ## 打印提示信息:mysql.server.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig mysql.server on
    ## 说明:如果上面步骤使用mysqld作为服务名,则注册命令使用: systemctl enable mysqld.service

    ## 启动
    cd /home/charlesYan/java/mysql/mysql-5.7.36/support-files
    ## 这里一定要注意:切换为my.cnf中配置的user=charlesYan用户启动
    mysql.server start  ## 或者指定当前启动用户 mysql.server start --user=root

    ## 查看MySQL状态。
    mysql.server status
  • 注意事项

步骤5使用的mysql的服务名为mysql.server时,mysql的启动,停止,状态检查命令分别使用

service mysql.server start # 启动
  
  service mysql.server stop # 停止
  
  service mysql.server status # 状态检查

步骤5使用的mysql的服务名为mysqld时,mysql的启动,停止,状态检查命令分别使用

service mysqld start # 启动
  
  service mysqld stop # 停止
  
  service mysqld status # 状态检查

6. 配置MySQL相关信息

  • 修改root用户密码
# 进入mysql安装目录下bin目录
    cd /home/charlesYan/java/mysql/mysql-5.7.36/bin

    # 登录用户
    mysql -u root -p

    # 按照提示信息输入记录的临时密码 odmNjX:sT3Oo
    Enter Password:

    # 修改root用户密码。 其中,单引号中的Password由用户自定义
    mysql> set password=password('charlesYan@123');

    # 赋予任何主机访问数据的权限。
    mysql> grant all privileges on *.* to 'root'@'%' identified by 'Password' with grant option;

    # 使修改生效并使用数据库。
    mysql> flush privileges;

    # 查看当前用户
    mysql> use mysql;

    mysql> select host,user from user;

    # 系统显示如下类似信息,表示数据库已正常安装和运行。

    +-----------+-----------+
    | host      | user      |
    +-----------+-----------+
    | %         | root      |
    | localhost | mysql.sys |
    | localhost | root      |
    +-----------+-----------+
    3 rows in set (0.01 sec)

    # 退出MySQL数据库。
    mysql> exit

    # 其他 可以将/home/charlesYan/java/mysql/mysql-5.7.36/bin目录下的可执行程序mysql拷贝到/usr/bin目录下,方便后续执行这个命令。
    cp /home/charlesYan/java/mysql/mysql-5.7.36/bin/mysql /usr/bin

其他

  • MySQL启动报错:Starting MySQL.The server quit without updating PID file

问题描述

mysql.server start 
    
    # Starting MySQL.The server quit without updating PID file (/[失败]ootstone/java/mysql/data/workdbs/localhost.localdomain.pid)


    service mysql.server restart 

    # MySQL server PID file could not be found!                  [失败]
    # Starting MySQL.The server quit without updating PID file (/[失败]ootstone/java/mysql/data/workdbs/localhost.localdomain.pid).

解决方案

# 切换为my.cnf中配置的user=charlesYan用户启动
    mysql.server start  

    # 或者指定当前启动用户 
    mysql.server start --user=root