离线安装 mysql

离线安装 mysql

一、ubunt arm

  1. 下载安装包
    • 官网地址
    • 下载压缩包
    • 上传压缩包
       # 将本地压缩包上传至服务器
       $ scp mysql-8.4.6-linux-glibc2.28-aarch64.tar.xz root@host:/root/mysql/
      
  2. 解压
    # 转到压缩包目录
    $ cd /root/mysql/
    
    # 解压压缩包
    $ sudo tar -xvJf mysql-8.4.6-linux-glibc2.28-aarch64.tar.xz
    
    $ sudo mv mysql-8.4.6-linux-glibc2.28-aarch64 /usr/local/mysql
    
  3. 配置
    • 创建数据目录
      # 创建 mysql 数据目录
      $ sudo mkdir -p /data/mysql/data
      
      # 创建 mysql 日志目录
      $ sudo mkdir -p /data/mysql/log
      
    • 创建配置文件
      
      # 转到 etc 目录
      $ cd /etc
      
      # 创建配置文件
      $ sudo touch my.cnf
      
    • 注意my.cnf 不能随意修改名称,启动 mysql.server 会读取该配置文件(可尝试修改 mysql.server 文件)
    • 写入配置
      [mysqld]
      
      # 启用 mysql_native_password plugin
      mysql_native_password=ON
      
      # 跳过权限表
      #skip_grant_tables=1
      
      # mysql 启动用户
      user=root
      
      # 绑定 IP
      bind-address=0.0.0.0
      
      # 端口,为了安全不使用默认端口
      port=13306
      
      # 安装目录,没有安装到默认目录 /usr/local/mysql 下,
      # 使用自带的 mysql.server 脚本启动mysql服务必须配置
      basedir=/usr/local/mysql
      log-error=/usr/local/mysql/data/orin8-desktop.err
      pid-file=/usr/local/mysql/data/orin8-desktop.pid
      
      # 数据目录
      datadir=/data/mysql/data
      
      # 允许最大连接数
      max_connections=100
      
      # 允许连接失败的次数。
      max_connect_errors=10
      
      # 服务端使用的字符集
      character-set-server=utf8mb4
      
      # 创建新表时将使用的默认存储引擎
      default-storage-engine=INNODB
      
      # 查询日志
      general_log = 1
      general_log_file = /data/mysql/log/mysql.log
      
      # 慢查询日志
      slow_query_log = 1
      slow_query_log_file = /data/mysql/log/slow.log
      long_query_time = 2
      
      # 错误日志
      log_error = /data/mysql/log/error.log
      
      # 二进制日志
      server_id = 1
      log_bin = /data/mysql/log/mysql-bin
      log_bin_index=/data/mysql/log/mysql-bin.index
      binlog_format=MIXED
      binlog_expire_logs_seconds = 604800
      max_binlog_size=500M
      
      
      [mysql]
      # 设置命令行客户端默认字符集
      default-character-set=utf8mb4
      
      
      [client]
      # 设置mysql客户端默认字符集
      default-character-set=utf8mb4
      
      
  4. 初始化 正常情况无错误信息输出
    # 转到 mysql 二进制文件目录
    $ cd /usr/local/mysql/bin
    
    # 初始化 mysql
    $ sudo ./mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=root --initialize
    
  5. 启动 正常情况无错误信息输出
    # 转到 support-files 目录
    $ cd /usr/local/mysql/support-files
    
    # 启动 mysql
    $ sudo ./mysql.server start
    
  6. 停止
    # 转到 support-files 目录
    $ cd /usr/local/mysql/support-files
    
    # 启动 mysql
    $ sudo ./mysql.server stop
    
  7. 状态
    # 转到 support-files 目录
    $ cd /usr/local/mysql/support-files
    
    # 启动 mysql
    $ sudo ./mysql.server status
    
  8. 环境变量
    # 配置环境变量
    $ sudo export PATH=$PATH:/usr/local/mysql/bin
    
  9. 服务启动
    # 拷贝启动文件
    $ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
    
    # 启动服务
    $ sudo systemctl start mysql
    
  10. 重装
    # 删除 data 目录相关文件
    $ sudo rm -rf /data/mysql/data/*
    
    # 删除 log 目录相关文件
    $ sudo rm -rf /data/mysql/log/*
    
    # 重新初始化
    $ sudo ./mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=root --initialize
    
    # 重新启动
    $ sudo ./mysql.server start
    
  11. 参考

二、重置密码

  1. 停止服务
    # 停止 mysql
    $ sudo systemctl stop mysql
    
  2. 启动 mysql 并跳过权限表
    # 转到 bin 目录
    $ cd /usr/local/mysql/bin
    
    # 启动 mysql 并跳过权限表
    $ sudo ./mysqld_safe --skip-grant-tables &
    
  3. 进入数据库
    $ sudo ./mysql
    
  4. 使用 mysql 数据库
    $ use mysql;
    
  5. 设置运行远程连接
    $ update user set host='%' where user ='root';
    
  6. 刷新权限表
    $ FLUSH PRIVILEGES;
    
  7. 修改密码
    $ update user set authentication_string='root' where user='root';
    
    # 刷新权限表
    $ FLUSH PRIVILEGES;
    
    • 注意:设置完密码登录出现错误(ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%')
      
      # 刷新权限表
      $ FLUSH PRIVILEGES;
      
      # 将密码设置为空
      $ update user set authentication_string='root' where user='root';
      
       # 刷新权限表
      $ FLUSH PRIVILEGES;
      
      # 重新登录(使用连接工具 navicat 无密码连接后会提示修改密码,后面可以使用修改后的密码)
      $ sudo ./mysql -u root -p
      
  8. 退出
    $ exit;
    
  9. 验证
    $ sudo ./mysql -u root -p
    
  10. 参考
posted @ 2025-10-10 18:39  1764564459  阅读(8)  评论(0)    收藏  举报