docker ubuntu 18.04 安装mysql 8.0
时间: 2023-10-13 16:27:20 浏览: 116
可以按照以下步骤安装MySQL 8.0在Ubuntu 18.04上。
1. 更新Ubuntu软件包列表:
```
sudo apt-get update
```
2. 安装MySQL 8.0:
```
sudo apt-get install mysql-server
```
3. 安装完成后,运行以下命令以加强MySQL安全性并删除匿名用户:
```
sudo mysql_secure_installation
```
4. 在提示的选项中,选择是否想要使用现有MySQL密码或设置新密码。
5. 之后会出现问题,询问是否删除匿名用户、禁用root账户远程登录、删除test数据库等,根据需要进行回答。
6. 完成以上步骤后,MySQL 8.0将安装并启动运行在Ubuntu 18.04上。
希望以上的回答能够帮到你。
相关问题
ubuntu下安装mysql8.0.20
### 在Ubuntu系统上安装MySQL 8.0.20的具体步骤
在Ubuntu系统上安装MySQL 8.0.20版本需要遵循以下指南。这些步骤涵盖了从系统准备到最终配置的全过程,确保安装过程顺利进行。
#### 1. 更新系统包
在开始安装之前,首先需要更新系统的软件包列表以确保所有依赖项是最新的。
```bash
sudo apt-get update
```
此命令会刷新本地APT缓存并同步最新的软件包信息[^2]。
#### 2. 安装MySQL服务器
使用APT工具安装MySQL服务器及其相关组件。
```bash
sudo apt-get install mysql-server -y
```
该命令会自动下载并安装MySQL 8.0的最新稳定版本(如果系统为Ubuntu 18.04或更高版本,则默认安装MySQL 8.0)[^2]。
#### 3. 停止MySQL服务
为了安全地进行后续配置,建议先停止MySQL服务。
```bash
sudo systemctl stop mysql
```
这一步可以避免在修改配置文件时出现冲突。
#### 4. 修改MySQL配置文件
编辑`my.cnf`文件以根据需求调整MySQL的配置参数。例如,设置`lower_case_table_names`参数以支持大小写不敏感的表名。
```bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
在文件中添加或修改以下内容:
```ini
[mysqld]
lower_case_table_names=1
```
保存并退出编辑器。
#### 5. 初始化MySQL服务
重新启动MySQL服务以应用新的配置。
```bash
sudo systemctl start mysql
```
如果需要强制运行升级序列,可以在启动MySQL二进制文件时添加`--upgrade=FORCE`选项[^5]。
#### 6. 配置root用户密码
首次安装后,可能需要设置或重置root用户的密码。可以通过以下命令完成:
```bash
sudo mysql_secure_installation
```
按照提示设置密码并禁用测试数据库等不必要的功能[^3]。
#### 7. 测试连接
验证MySQL是否正常工作以及root用户是否能够成功登录。
```bash
mysql -u root -p
```
输入密码后,如果进入MySQL命令行界面,则说明安装成功[^3]。
#### 8. 卸载旧版本(如有必要)
如果系统中已存在旧版本的MySQL,建议彻底卸载以避免冲突。执行以下命令删除相关文件和依赖项:
```bash
sudo rm -rf /var/lib/mysql/
sudo rm -rf /etc/mysql/
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
```
完成后重新安装新版本[^3]。
---
### 使用Docker安装MySQL 8.0.20
如果希望通过Docker容器化技术安装MySQL 8.0.20,可以参考以下脚本:
```bash
docker run \
-p 3306:3306 \
--name mysql \
--privileged=true \
--restart unless-stopped \
-v /mnt/sda1/mysql8.0.20/mysql:/etc/mysql \
-v /mnt/sda1/mysql8.0.20/logs:/logs \
-v /mnt/sda1/mysql8.0.20/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
```
上述命令将创建一个名为`mysql`的容器,并绑定主机的3306端口与容器内的MySQL服务[^4]。
---
### 注意事项
- 如果系统版本低于Ubuntu 18.04,则需要手动添加MySQL官方APT仓库以安装8.0版本[^1]。
- 在初始化过程中,可能会触发自动升级流程。为了避免意外升级,可以使用`--upgrade=NONE`选项[^5]。
---
[root@hadoop01 mysql-8.0]# bin/mysqld --initialize --user=mysql --basedir=/opt/software/mysql-8.0 --datadir=/opt/software/mysql-8.0/data bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by bin/mysqld) bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by bin/mysqld) bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by bin/mysqld) bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by bin/mysqld) bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by bin/mysqld) bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by bin/mysqld) bin/mysqld: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by bin/mysqld) bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by bin/mysqld) bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /opt/software/mysql-8.0/bin/../lib/private/libcrypto.so.3) bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /opt/software/mysql-8.0/bin/../lib/private/libprotobuf-lite.so.24.4.0) bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/software/mysql-8.0/bin/../lib/private/libprotobuf-lite.so.24.4.0) bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/software/mysql-8.0/bin/../lib/private/libprotobuf-lite.so.24.4.0) bin/mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/software/mysql-8.0/bin/../lib/private/libprotobuf-lite.so.24.4.0) bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/software/mysql-8.0/bin/../lib/private/libprotobuf-lite.so.24.4.0) [root@hadoop01 mysql-8.0]# 这个正确吗?
<think>好的,用户遇到了在初始化MySQL时出现的依赖库问题。首先,我需要确认这些错误信息的具体原因。用户执行的命令是`bin/mysqld --initialize --user=mysql --basedir=/opt/software/mysql-8.0 --datadir=/opt/software/mysql-8.0/data`,结果报错提示多个库版本不兼容。
首先,我需要理解这些错误信息。例如,`CXXABI_1.3.11`、`GLIBCXX_3.4.22`等缺失,说明系统安装的libstdc++.so.6版本过低。同时,还有GLIBC版本的问题,比如`GLIBC_2.27`和`GLIBC_2.28`未找到,这表明系统的glibc版本不够新。这可能是因为用户使用的Linux发行版比较旧,比如CentOS 7,而MySQL 8.0需要更高版本的依赖库。
接下来,我需要考虑用户可能的环境。用户之前配置了MySQL,安装路径在/opt/software/mysql-8.0,可能使用的是CentOS或RHEL系统。根据错误信息中的路径/lib64,这通常是CentOS/RHEL的结构。CentOS 7默认的glibc版本是2.17,而错误中提到的GLIBC_2.25、2.27、2.28都需要更高的版本。同样,libstdc++的版本可能也较旧。
我需要验证这些库的当前版本。用户可以通过运行`strings /lib64/libstdc++.so.6 | grep GLIBCXX`和`ldd --version`来查看当前安装的版本。如果这些命令显示缺少所需的版本,那么确实是库版本过低的问题。
解决方案方面,用户有几个选择:升级系统到支持更高版本库的发行版,比如CentOS 8或Ubuntu 18.04以上;或者手动升级glibc和libstdc++。不过,手动升级glibc有风险,可能导致系统不稳定。另一个方法是使用静态编译的MySQL版本,或者使用官方预编译的针对较旧系统的版本。
用户可能更倾向于不升级整个系统,所以需要建议替代方案。比如,检查MySQL的下载页面是否有针对较旧系统的兼容版本,或者使用docker容器来运行MySQL 8.0,避免依赖问题。此外,用户可能需要安装高版本的libstdc++,比如通过devtoolset来获取较新的工具链,同时更新库路径。
在回答时,需要分步骤指导用户如何检查当前库版本,解释问题原因,然后提供可行的解决方案,并注意警告用户升级系统库的风险。同时,确保用户理解每个步骤的作用,避免操作失误导致系统问题。</think>---
您遇到的错误提示表明系统缺少MySQL 8.0所需的高版本依赖库(`glibc` 和 `libstdc++`),**当前配置步骤本身没有错误,但系统环境不符合MySQL 8.0的运行要求**。以下是详细分析和解决方案:
---
### 一、错误原因分析
1. **核心依赖缺失**:
- `GLIBC_2.25/2.27/2.28`:MySQL 8.0需要更高版本的GNU C库(`glibc`)
- `CXXABI_1.3.x` 和 `GLIBCXX_3.4.2x`:需要高版本C++标准库(`libstdc++`)
2. **系统兼容性问题**:
- **典型场景**:您可能在使用较旧的Linux发行版(如CentOS 7/RHEL 7),其默认`glibc`版本为2.17,而MySQL 8.0要求至少**glibc 2.28**。
- **验证当前版本**:
```bash
# 查看glibc版本
ldd --version | grep ldd
# 查看libstdc++支持的符号版本
strings /lib64/libstdc++.so.6 | grep GLIBCXX
```
---
### 二、解决方案
#### 方案1:升级系统(推荐)
**适用场景**:生产环境或长期使用
- **CentOS/RHEL 7用户**:
```bash
# 升级到CentOS 8 Stream(需备份数据)
sudo yum install -y centos-release-stream
sudo yum distro-sync
```
- **Ubuntu/Debian用户**:
```bash
sudo do-release-upgrade
```
#### 方案2:手动安装高版本依赖库(高风险)
**适用场景**:临时测试环境
1. **安装高版本glibc**(需源码编译):
```bash
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar -xzf glibc-2.28.tar.gz
cd glibc-2.28
mkdir build && cd build
../configure --prefix=/usr
make -j4 && sudo make install
```
**警告**:此操作可能导致系统崩溃,需谨慎操作!
2. **更新libstdc++**:
```bash
# 安装devtoolset-10(CentOS 7)
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-10
# 激活环境
scl enable devtoolset-10 bash
```
#### 方案3:使用兼容的MySQL版本(最安全)
1. **选择MySQL 5.7**:
```bash
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
```
2. **或使用MySQL官方YUM仓库安装**:
```bash
# CentOS 7示例
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo yum install -y mysql-community-server
```
---
### 三、验证修复
若选择方案2,请检查依赖库版本:
```bash
# 查看glibc版本
strings /lib64/libc.so.6 | grep GLIBC_
# 查看libstdc++版本
strings /lib64/libstdc++.so.6 | grep GLIBCXX
```
---
### 四、补充建议
1. **使用Docker容器**(避免依赖冲突):
```bash
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=your_pwd -p 3306:3306 -d mysql:8.0
```
2. **检查系统架构**:
- 确认系统为64位:`uname -m` 应显示 `x86_64`
- 若为ARM架构需下载对应版本
---
### 错误示例与解决对照表
| 错误类型 | 对应解决方案 |
|-------------------------|-------------------|
| `GLIBC_2.28 not found` | 方案1或方案3 |
| `CXXABI_1.3.9 missing` | 方案2(更新C++库)|
| 多版本混合依赖冲突 | 方案3(降级MySQL)|
---
通过上述任一方案解决依赖问题后,重新执行初始化命令即可正常启动MySQL。
阅读全文
相关推荐







