欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu20.04安装MySQL

程序员文章站 2022-07-14 15:41:16
...

准备

  1. 安装 libiao 依赖库。
sudo apt install libaio1 libaio-dev
  1. 创建一个不能不能登录的 mysql 系统用户,这个用户默认属于 mysql 用户组。
sudo useradd -r -s /bin/false mysql
  1. 去官网下载 tar.xz 格式的安装包。地址如下
    https://www.mysql.com/downloads/

安装

  1. 解压。
tar -xvf ./mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
  1. 将解压出来的 mysql-8.0.17-linux-glibc2.12-x86_64 文件夹重命名为 mysql-8.0.17 并移动到 /usr/local 目录下。
sudo mv ./mysql-8.0.17-linux-glibc2.12-x86_64 /usr/local/mysql-8.0.17
  1. 进入 mysql-8.0.17 目录下。
cd /usr/local/mysql-8.0.17
  1. 创建一个 data 文件夹。
sudo mkdir ./data/
  1. 修改 data 用户为 mysql。
sudo chown mysql:mysql ./data/
  1. 初始化 mysql。
sudo ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.17/ --datadir=/usr/local/mysql-8.0.17/data

在终端中找到类似以下的信息,其中 [email protected]: 后面的便是 mysql 随机初始化的密码,可以先记下来,初次登录的时候要用。

[Note] [MY-010454] [Server] A temporary password is generated for [email protected]: #gqdJRqYh0l&
  1. 修改mysql-8.0.17/support-files/mysql.server 文件。
sudo vim ./support-files/mysql.server

找到以下几行内容。

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir=
datadir=

将其中的 basedir、datadir 改为。

basedir=/usr/local/mysql-8.0.17
datadir=/usr/local/mysql-8.0.17/data

如果你的 mysql 路径为 /usr/local/mysql 以及 /usr/local/mysql/data,就不用改直接下一步。

启动服务及后续操作

  1. 启动 mysql 服务
sudo ./support-files/mysql.server start

2 .把 mysql 服务放进系统进程,这样便可以使用 service 命令管理 mysql 。

sudo cp ./support-files/mysql.server /etc/init.d/mysqld.server
  1. 为 mysql 创建软链接。
sudo ln -s ./bin/mysql /usr/bin/
  1. 登录并修改密码
mysql -u root -p

填入刚才生成的随机密码,回车执行以下 SQL 语句修改密码

alter user 'root'@'localhost' identified by '新密码';

设置开机自启

systemctl 是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。Ubuntu 自带了 systemctl 工具,因此这里使用 systemctl 设置 mysql 自动启动。步骤如下

  1. 创建 mysqld.service
sudo vim /usr/lib/systemd/system/mysqld.service
  1. 输入以下内容并保存
Documentation=man:mysql(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/usr/local/mysql-8.0.17/data/demon-PC.pid

ExecStart=/usr/local/mysql-8.0.17/support-files/mysql.server start
ExecStop=/usr/local/mysql-8.0.17/support-files/mysql.server stop
ExecReload=/usr/local/mysql-8.0.17/support-files/mysql.server restart
  1. 设置开机自启
sudo systemctl enable mysqld.service

Ubuntu 20.04 LTS 安装时遇到的坑

根据上面步骤安装 MySQL 成功,但是登录时报以下错误

mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

应该是 Ubuntu 20.04 缺少 libtinfo.so.5 这个库的原因。解决方法
安装 libncurses5 库

sudo apt install libncurses5