ubuntu18.04手动安装二进制MySQL8.0

本文详细介绍了MySQL8.0版本的下载、解压、安装步骤,以及配置my.cnf文件的过程。针对初始化过程中遇到的错误进行了分析,并提供了修改datadir参数后的成功案例。此外,还分享了如何获取临时登录密码、修改root用户密码的方法,以及创建启动脚本的技巧。

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

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar xvJf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
sudo mv mysql-8.0.13-linux-glibc2.12-x86_64 /var/mysql

然后新建一个文件/var/mysql/data_3306/my.cnf

[mysqld]
port=3306
datadir=/var/mysql/data_3306
log_error=/var/mysql/data_3306/error.log
basedir=/var/mysql

然后运行如下命令启动MySQL服务:

var/mysql/bin/mysqld --defaults-file=/var/mysql/data_3306/my.cnf --initialize --user=mysql

发现出错了,报错信息如下:

zifeiy@zifeiy-S1-Series:/var/mysql/data_3306$ cat error.log 
2019-01-14T10:59:46.054629Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T10:59:46.054690Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T10:59:46.054946Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3621
2019-01-14T10:59:46.056585Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T10:59:46.056652Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T10:59:46.056661Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T10:59:46.056743Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
2019-01-14T11:02:07.365206Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T11:02:07.365266Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T11:02:07.365524Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3660
2019-01-14T11:02:07.367698Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T11:02:07.367779Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T11:02:07.367797Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T11:02:07.368023Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
2019-01-14T11:02:25.091876Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T11:02:25.091947Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T11:02:25.092216Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3661
2019-01-14T11:02:25.093893Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T11:02:25.093941Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T11:02:25.093951Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T11:02:25.094040Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
2019-01-14T11:03:34.555652Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T11:03:34.555710Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T11:03:34.555964Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3676
2019-01-14T11:03:34.557598Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T11:03:34.557644Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T11:03:34.557654Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T11:03:34.557738Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.

发现是因为datadir对应的目录里面有文件的原因造成的,修改一下datadir参数,my.cnf信息如下:

[mysqld]
port=3306
datadir=/var/mysql/data_3306
log_error=/var/mysql/data_3306/error.log
basedir=/var/mysql

发现运行成功(通过echo $?判断)。

然后启动mysqld服务:

var/mysql/bin/mysqld --defaults-file=/var/mysql/data_3306/my.cnf --user=mysql

执行之后,在目录/var/mysql/data_3306/data/中生成的目录及文件如下:

zifeiy@zifeiy-S1-Series:/var/mysql/data_3306$ ls -l /var/mysql/data_3306/data/
总用量 155712
-rw-r----- 1 zifeiy zifeiy       56 1月  14 19:06  auto.cnf
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  ca-key.pem
-rw-r--r-- 1 zifeiy zifeiy     1112 1月  14 19:06  ca.pem
-rw-r--r-- 1 zifeiy zifeiy     1112 1月  14 19:06  client-cert.pem
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  client-key.pem
-rw-r----- 1 zifeiy zifeiy     5785 1月  14 19:06  ib_buffer_pool
-rw-r----- 1 zifeiy zifeiy 12582912 1月  14 19:06  ibdata1
-rw-r----- 1 zifeiy zifeiy 50331648 1月  14 19:06  ib_logfile0
-rw-r----- 1 zifeiy zifeiy 50331648 1月  14 19:06  ib_logfile1
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06 '#innodb_temp'
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06  mysql
-rw-r----- 1 zifeiy zifeiy 25165824 1月  14 19:06  mysql.ibd
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06  performance_schema
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  private_key.pem
-rw-r--r-- 1 zifeiy zifeiy      452 1月  14 19:06  public_key.pem
-rw-r--r-- 1 zifeiy zifeiy     1112 1月  14 19:06  server-cert.pem
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  server-key.pem
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06  sys
-rw-r----- 1 zifeiy zifeiy 10485760 1月  14 19:06  undo_001
-rw-r----- 1 zifeiy zifeiy 10485760 1月  14 19:06  undo_002

一开始使用

/var/mysql/bin/mysql -uroot -h127.0.0.1 -P3306

登陆MySQL汇报错:

zifeiy@zifeiy-S1-Series:/var/mysql/data_3306$ /var/mysql/bin/mysql -uroot -h127.0.0.1 -P3306
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

但是我们可以在/var/mysql/data_3306/error.log中看到MySQL服务器提供给我们的临时登陆密码:

zifeiy@zifeiy-S1-Series:/var/mysql/data_3306$ tail -n 2 /var/mysql/data_3306/error.log 
2019-01-14T11:06:47.744852Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: *C4gk*8%3lwf
2019-01-14T11:06:48.411733Z 0 [System] [MY-013170] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed

重新登陆,发现登陆成功:

zifeiy@zifeiy-S1-Series:/var/mysql/bin$ ./mysql -uroot -h127.0.0.1 -P3306 -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.13

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

赶快修改密码(我这里改成password):

alter user 'root'@'localhost' identified by 'password';

为了方便,可以新建一个脚本文件~/start_mysqld.sh,如下:

echo "/var/mysql/bin/mysqld --defaults-file=/var/mysql/data_3306/my.cnf --user=mysql" > ~/start_mysqld.sh
chmod a+x ~/start_mysqld.sh

以后就可以通过bash ~/start_mysqld.sh来运行mysqld服务了。

转载于:https://www.cnblogs.com/zifeiy/p/10268739.html

<think>好的,我现在要帮用户解决在Ubuntu上使用MySQL Bundle安装MySQL 8的问题。首先,我需要理清用户的具体需求。用户提到的是通过MySQL Bundle安装,也就是使用官方提供的二进制包进行安装,而不是通过APT仓库。这通常适用于需要特定版本或自定义配置的情况。 接下来,我应该回忆相关的安装步骤。根据用户提供的引用,特别是引用[3],里面提到了使用wget下载deb包,然后解压安装。我需要确保步骤正确,并且符合Ubuntu的系统要求。同时,用户可能遇到的问题包括依赖项安装、配置过程中的错误,以及如何启动服务等。 然后,我需要验证每一步的命令是否正确。例如,下载的链接是否仍然有效,安装依赖项的命令是否有遗漏,比如libaio1和libmecab2这些包是否必须。另外,解压tar包后的安装顺序是否正确,因为MySQL的deb包可能有依赖关系,需要按特定顺序安装。 还要考虑安装后的配置步骤,比如运行mysql_secure_installation来设置root密码和增强安全性,这部分是否在用户的引用中有提到。引用[5]提到了修改PermitRootLogin设置,但这是在安装MySQL后的配置吗?可能需要确认,不过这可能更多是关于SSH的配置,可能与MySQL本身无关,但需要留意用户可能的权限问题。 另外,用户可能对使用systemctl管理MySQL服务感兴趣,比如启动、停止、查看状态等命令是否正确。同时,安装完成后如何测试连接,使用mysql -u root -p命令登录,确保安装成功。 还需要注意权限问题,比如在安装过程中是否需要使用sudo,以及处理可能出现的依赖错误。如果用户遇到依赖问题,应该提示他们如何安装缺失的依赖包。 最后,生成的相关问题需要覆盖用户可能进一步的需求,比如如何配置远程访问、修改配置文件、解决常见错误以及卸载方法。这些扩展问题可以帮助用户更全面地管理MySQL安装。 现在需要整理这些思路,确保步骤清晰,命令准确,并且引用正确的参考来源。同时,按照用户的要求,使用中文回答,正确应用LaTeX格式,特别是行内公式和独立公式的区分,但在这个问题中可能数学公式较少,主要注意代码块和命令的正确格式。 总结步骤: 1. 下载MySQL Bundle包。 2. 安装依赖项。 3. 解压并安装deb包。 4. 配置MySQL。 5. 启动服务并测试。 6. 安全设置。 确保每个步骤都有对应的命令和解释,并且引用正确的参考,特别是引用[3]中的内容。同时,检查是否有遗漏的步骤,比如是否需要创建mysql用户或数据目录,但根据MySQL官方文档,通常这些会在安装过程中自动处理。 可能的问题点:用户是否已经安装了旧版本的MySQL,是否需要先卸载?但用户的问题没有提到,所以可能不需要涉及,除非在安装过程中出现冲突,但用户可能自行处理或后续问题中提及。 现在按照这些步骤编写回答,并确保符合格式要求,如代码块使用正确的语法,引用标识正确添加。</think>### 如何在Ubuntu上通过MySQL Bundle安装MySQL 8 #### 1. **下载MySQL Bundle软件包** 首先从MySQL官网下载适用于UbuntuMySQL 8 Bundle包: ```bash $ wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-server_8.0.11-1ubuntu18.04_amd64.deb-bundle.tar ``` 此步骤需确保网络连接正常,下载链接可能因版本更新而变化[^3]。 #### 2. **安装依赖项** 安装MySQL所需的系统依赖: ```bash $ sudo apt-get update $ sudo apt-get install libaio1 libmecab2 ``` - `libaio1`:异步I/O库 - `libmecab2`:自然语言处理库 #### 3. **解压并安装软件包** 解压下载的Bundle包并按顺序安装: ```bash $ tar -xvf mysql-server_8.0.11-1ubuntu18.04_amd64.deb-bundle.tar $ sudo dpkg -i mysql-common_8.0.11-1ubuntu18.04_amd64.deb $ sudo dpkg -i mysql-community-client-core_8.0.11-1ubuntu18.04_amd64.deb $ sudo dpkg -i mysql-community-client_8.0.11-1ubuntu18.04_amd64.deb $ sudo dpkg -i mysql-client_8.0.11-1ubuntu18.04_amd64.deb $ sudo dpkg -i mysql-community-server-core_8.0.11-1ubuntu18.04_amd64.deb $ sudo dpkg -i mysql-community-server_8.0.11-1ubuntu18.04_amd64.deb $ sudo dpkg -i mysql-server_8.0.11-1ubuntu18.04_amd64.deb ``` 若安装过程中提示依赖错误,可运行 `sudo apt-get -f install` 自动修复。 #### 4. **配置MySQL服务** 安装完成后,启动服务并设置开机自启: ```bash $ sudo systemctl start mysql $ sudo systemctl enable mysql ``` #### 5. **验证安装** 检查MySQL服务状态: ```bash $ systemctl status mysql ``` 若显示 `active (running)` 表示安装成功。 #### 6. **安全初始化** 运行安全脚本以设置root密码并移除默认配置风险: ```bash $ sudo mysql_secure_installation ``` 根据提示完成密码强度设置、匿名用户删除等操作[^5]。 --- ### 相关命令示例 | 功能 | 命令 | |----------------------|-------------------------------| | 登录MySQL | `mysql -u root -p` | | 查看版本 | `SELECT VERSION();` | | 停止服务 | `sudo systemctl stop mysql` | --- §§ 相关问题 §§ 1. **如何配置MySQL 8的远程访问权限?** 2. **安装过程中出现依赖冲突应如何解决?** 3. **如何修改MySQL的默认配置文件路径?** 4. **MySQL 8与旧版本的主要兼容性差异有哪些?** 5. **如何彻底卸载MySQL Bundle安装MySQL?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值