在安装任何软件之前,确保系统软件包是最新的。
sudo apt update && sudo apt upgrade -y
MySQL官方提供了一个APT存储库包,用于简化安装特定版本的MySQL。
wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
选择 MySQL Server 8.0,然后按 Enter 确认。
运行以下命令以确保Ubuntu能够识别MySQL存储库:
sudo apt update
执行以下命令安装MySQL Server:
sudo apt install mysql-server -y
验证MySQL版本是否为8.0:
mysql --version
sudo systemctl start mysql
sudo systemctl status mysql
sudo mysql_secure_installation
• 设置MySQL root用户密码。
• 按提示选择启用或禁用其他选项(如移除匿名用户、禁止远程登录等)。
使用以下命令登录到MySQL:
mysql -u root -p
输入之前设置的root密码后,即可进入MySQL命令行。
安装步骤如下:
1. 访问 MySQL 的官方存档页面。
2. 选择 MySQL 8.0.11 并下载适合您系统架构的 tar.gz 包(例如 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz)。
3. 将文件保存到一个合适的目录(如 ~/Downloads)。
或者通过命令行下载:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
确保系统有必要的依赖库:
sudo apt update
sudo apt install libaio1 libncurses5 -y
tar -xvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
sudo mv mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local/mysql
为了安全性,创建一个单独的 MySQL 用户和组:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
运行以下命令初始化数据库:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成后,MySQL 会生成一个临时的 root 密码(可在命令输出中找到)。
sudo nano /etc/my.cnf
添加以下内容:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/mysql_error.log
pid_file=/usr/local/mysql/mysql.pid
sudo nano /etc/systemd/system/mysql.service
添加以下内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable mysql
启动 MySQL 服务:
sudo systemctl start mysql
检查服务状态:
sudo systemctl status mysql
1. 使用临时密码登录 MySQL:
/usr/local/mysql/bin/mysql -u root -p
输入初始化时生成的临时密码。
2. 修改 root 用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
为了方便使用 MySQL 命令行工具,可以将 MySQL 二进制目录添加到 PATH 环境变量:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
通常是因为 libaio1 包不可用,或者当前Ubuntu版本的存储库中没有提供该包。
解决方法如下:
1. 确保APT存储库已更新
运行以下命令更新APT包管理器的存储库:
sudo apt update
2. 使用新的包名(如果适用)
在较新的Ubuntu版本中,libaio1 包可能被替换为 libaio-dev 或类似的包。
尝试安装替代包:
sudo apt install libaio-dev
3. 从Debian存储库下载 libaio1
如果 libaio1 不在你的存储库中,你可以从Debian或Ubuntu旧版本的存储库中手动下载并安装:
wget http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_<version>_amd64.deb
sudo dpkg -i libaio1_<version>_amd64.deb
4. 编译和安装 libaio 源代码
如果没有找到预编译包,你可以从源代码编译和安装:
1. 下载 libaio 源代码:
wget https://releases.pagure.org/libaio/libaio-0.3.113.tar.gz
2. 解压文件:
tar -xvf libaio-0.3.113.tar.gz
cd libaio-0.3.113
3. 编译和安装:
make
sudo make install
5. 检查Ubuntu版本并更换存储库(如有必要)
如果你使用的是旧版本或非LTS版本的Ubuntu,某些包可能已从官方存储库中移除。可以尝试切换到old-releases存储库:
1. 编辑APT源列表文件:
sudo nano /etc/apt/sources.list
2. 将所有Ubuntu存储库地址中的 archive.ubuntu.com 替换为 old-releases.ubuntu.com。
3. 更新APT:
sudo apt update
4. 尝试重新安装:
sudo apt install libaio1
6. 检查和确认安装
验证是否成功安装:
ldconfig -p | grep libaio
如果输出中包含 libaio.so 的路径,则说明安装成功。
原因:系统缺少 libtinfo.so.5 动态库。
解决方法如下:
1. 检查是否安装了 libtinfo.so.5
1. 搜索系统中是否存在该库:
find / -name "libtinfo.so*"
2. 如果没有找到,需要安装。
2. 安装 libtinfo.so.5
在现代的 Ubuntu 系统中,libtinfo.so.5 可能被包含在 libncurses5 或其他相关包中。
安装 libncurses5:
sudo apt update
sudo apt install libncurses5 -y
3. 使用软链接解决版本兼容性问题
如果系统中已经有其他版本的 libtinfo.so(如 libtinfo.so.6),可以创建一个软链接:
1. 确认 libtinfo.so.6 的路径:
find /usr -name "libtinfo.so.6"
2. 创建软链接,将 libtinfo.so.6 链接为 libtinfo.so.5:
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
4. 刷新动态链接库缓存
运行以下命令更新系统的动态链接库缓存:
sudo ldconfig
5. 验证并重启 MySQL
1. 验证是否找到 libtinfo.so.5:
ldconfig -p | grep libtinfo
2. 尝试启动 MySQL:
/usr/local/mysql/bin/mysql -u root -p
如果仍然报错:
1. 请确保安装的 MySQL 版本适配当前系统版本。
2. 检查是否正确设置了环境变量(如 LD_LIBRARY_PATH):
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
MYSQL下载地址:https://downloads.mysql.com/archives/community/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。