mysql-8.0.31-glibc2.12-x86_64.tar.xz 离线安装mysql8.0

该文详细介绍了如何在Linux环境下离线安装MySQL8.0,包括解压安装包、设置用户和权限、启动服务以及修改配置文件以允许远程登录。过程中提到了修改my.cnf文件,创建系统服务文件,并创建新用户以实现远程访问的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

  1. 首先,下载MySQL 8.0.31的适用于Linux的安装程序,例如mysql-8.0.31-glibc2.12-x86_64.tar.xz。
  2. 解压缩安装程序:tar -xvf mysql-8.0.31-glibc2.12-x86_64.tar.xz
  3. 将MySQL移动到安装目录:sudo mv mysql-8.0.31-glibc2.12-x86_64 /usr/local/mysql
  4. 创建MySQL用户和用户组:sudo groupadd mysqlsudo useradd -r -g mysql -s /bin/false mysql
  5. 授予MySQL用户对MySQL目录的访问权限:sudo chown -R mysql:mysql /usr/local/mysql
  6. 同样创建目录/var/run/mysqld和/var/log/mysql,并对其授权
  7. 先把/etc/my.cnf文件备份(然后改成别的名),因为新机器可能有这个文件,否则可能按这个启动配置
  8. 为MySQL设置密码:sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  9. 启动MySQL:sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & (此时会生成一个默认密码,记住这个密码 /usr/local/mysql/bin/mysql -uroot -p用这个密码就能登录了)
  10. 修改密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘{新密码}’; 但我们可能不这么做,而是用这种方式ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’ ; 因为我们的连接工具不支持8.0新版本的caching_sha2_password,还是用mysql_native_password为好。
  11. 停服务:启动是用mysqld_safe,停止用/usr/local/mysql/bin/mysqladmin -uroot -p shutdown (然后输入密码) 因为后面创建服务启动时,会冲突,要提前停掉

配置服务

  1. 创建MySQL配置文件:sudo vi /etc/my.cnf
  2. 输入以下内容:
[client]
port=3306
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
port=3306
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/var/run/mysqld/error.log
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections=512
max_connect_errors=500
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

  1. 创建MySQL服务文件:sudo vi /usr/lib/systemd/system/mysqld.service
  2. 输入以下内容:
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock
ExecStop=/usr/local/mysql/bin/mysqladmin --user=root --password=your_password shutdown
Restart=always

[Install]
WantedBy=multi-user.target

  1. 重新加载系统服务:sudo systemctl daemon-reload
  2. 启动MySQL服务:sudo systemctl start mysqld
  3. 验证MySQL服务是否正在运行:sudo systemctl status mysqld

修改配置

  1. 启动可能报错“Can't connect to local MySQL through socket '/tmp/mysql.sock'”这时可以创建个软链接,这要看my.cnf中sock的配置,我这边改成sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock,然后重启服务sudo systemctl restart mysqld 此时要ps -ef|grep mysql 看下命令--socket指定的路径,也就是my.cnfsocket指的的路径,然后启动命令加上-h{ip} -S {替换成查询到的路径},比如我这个是-S /var/run/mysqld/mysqld.sock,就可以启动了

允许远程登录

要允许MySQL远程登录,需要进行以下步骤:

  1. 登录到MySQL服务器并打开MySQL shell:mysql -u root -p

  2. 输入密码以登录。

  3. 创建一个新的MySQL用户并授予其远程登录权限。例如,要创建名为“remoteuser”的用户并授予其远程登录权限,请运行以下命令:

    CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%';
    FLUSH PRIVILEGES;
    
    

    这将创建一个名为“remoteuser”的用户,并授予它在所有数据库和所有表上的所有权限。请注意,“%”符号表示允许从任何IP地址连接到MySQL服务器。

### 如何在 Linux 上安装 MySQL 8.0.31 的特定版本 以下是针对 `mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz` 文件的安装方法: #### 准备工作 确保系统已满足基本依赖条件。可以运行以下命令来更新系统的软件包管理器并安装必要的工具: ```bash sudo yum update -y && sudo yum install wget tar gcc make cmake perl ncurses-devel bison-devel openssl-devel -y ``` #### 下载文件 如果尚未下载目标压缩包,则可以通过如下方式获取它: ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz ``` 此操作会将指定版本的 MySQL 压缩包保存到当前目录下[^1]。 #### 解压与移动位置 解压刚刚下载好的 `.tar.xz` 文件至 `/usr/local/mysql` 路径作为默认安装路径: ```bash tar xf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz -C /usr/local/ mv /usr/local/mysql-8.0.31-linux-glibc2.12-x86_64 /usr/local/mysql ``` 上述步骤中的 `-C` 参数指定了提取的目标目录,而最后一步重命名是为了简化后续配置过程[^2]。 #### 创建用户组和服务账户 为了安全起见,应该创建一个新的专用服务账号用于运行数据库实例而不是 root 用户执行相关任务: ```bash groupadd mysql useradd -r -g mysql -s /bin/false mysql chown -R mysql:mysql /usr/local/mysql/ ``` #### 初始化数据目录 进入新部署完成后的二进制程序所在的位置,并初始化存储区域结构: ```bash cd /usr/local/mysql/bin ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql mkdir -p /var/lib/mysql chown -R mysql:mysql /var/lib/mysql ``` 这里需要注意的是参数选项解释: - `--initialize-insecure`: 不设置初始密码以便手动调整后再加强安全性; - `--user=mysql`: 明确指出由哪个具体身份启动进程; - `--basedir=...`: 设定基础安装地址; - `--datadir=...`: 自定义实际存放表记录物理磁盘上的地方. #### 配置环境变量 为了让 shell 更加便捷识别 mysqld 及其他关联指令,在全局范围内追加 PATH 设置项即可实现这一目的: 编辑 profile 或者 bashrc 文件加入下面这行文字之后重新加载生效或者直接 source 即可立即应用更改效果: ```bash echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile source ~/.bash_profile ``` #### 启动服务 通过 systemd 来控制开机自启状态以及即时开启服务功能模块: ```bash cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld service mysqld start ``` 至此整个流程结束,现在就可以正常连接测试验证成果啦! ```python import pymysql.cursors connection = pymysql.connect(host='localhost', user='root', password='', cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: sql = "SELECT VERSION()" cursor.execute(sql) result = cursor.fetchone() finally: connection.close() print(result['VERSION()']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值