Ubuntu20.04安装MySQL
程序员文章站
2022-07-14 15:41:16
...
准备
- 安装 libiao 依赖库。
sudo apt install libaio1 libaio-dev
- 创建一个不能不能登录的 mysql 系统用户,这个用户默认属于 mysql 用户组。
sudo useradd -r -s /bin/false mysql
- 去官网下载 tar.xz 格式的安装包。地址如下
https://www.mysql.com/downloads/
安装
- 解压。
tar -xvf ./mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
- 将解压出来的 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
- 进入 mysql-8.0.17 目录下。
cd /usr/local/mysql-8.0.17
- 创建一个 data 文件夹。
sudo mkdir ./data/
- 修改 data 用户为 mysql。
sudo chown mysql:mysql ./data/
- 初始化 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&
- 修改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,就不用改直接下一步。
启动服务及后续操作
- 启动 mysql 服务
sudo ./support-files/mysql.server start
2 .把 mysql 服务放进系统进程,这样便可以使用 service 命令管理 mysql 。
sudo cp ./support-files/mysql.server /etc/init.d/mysqld.server
- 为 mysql 创建软链接。
sudo ln -s ./bin/mysql /usr/bin/
- 登录并修改密码
mysql -u root -p
填入刚才生成的随机密码,回车执行以下 SQL 语句修改密码
alter user 'root'@'localhost' identified by '新密码';
设置开机自启
systemctl 是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。Ubuntu 自带了 systemctl 工具,因此这里使用 systemctl 设置 mysql 自动启动。步骤如下
- 创建 mysqld.service
sudo vim /usr/lib/systemd/system/mysqld.service
- 输入以下内容并保存
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
- 设置开机自启
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
下一篇: ubuntu20.04安装zotero
推荐阅读
-
iis php mysql 关于IIS php调用com组件的权限问题
-
MySQL 的 DW 解决方案(MySQL + Infobright)
-
phpExcel类从mysql中将数据导出到xls乱码_PHP教程
-
PHP mysql_real_escape_string的一处注意_PHP教程
-
mysql多表关联查询,增加了排序速度慢??
-
linux 环境下安装mysql5.6,linuxmysql5.6_PHP教程
-
MySQL操作类(本人自己写的)_MySQL
-
mysql 存储过程中游标临时表问题
-
MySQL双主机双Master提案测试
-
while($rs=mysql_fetch_array($result)),该怎么处理