当前位置:   article > 正文

486. 【数据库】ubuntu-二进制文件方式安装-mysql8_ubuntu安装mysql8

ubuntu安装mysql8

一、安装 libaio依赖

feng@feng:~/software/dev$ apt-cache search libaio
libaio1 - Linux kernel AIO access library - shared library
libaio-dev - Linux kernel AIO access library - development files
  • 1
  • 2
  • 3
feng@feng:~/software/dev$ sudo apt install libaio1
[sudo] feng 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列【新】软件包将被安装:
  libaio1
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 36 个软件包未被升级。
需要下载 7,176 B 的归档。
解压缩后会消耗 37.9 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libaio1 amd64 0.3.112-13build1 [7,176 B]
已下载 7,176 B,耗时 1秒 (8,818 B/s)
正在选中未选择的软件包 libaio1:amd64。
(正在读取数据库 ... 系统当前共安装有 180816 个文件和目录。)
准备解压 .../libaio1_0.3.112-13build1_amd64.deb  ...
正在解压 libaio1:amd64 (0.3.112-13build1) ...
正在设置 libaio1:amd64 (0.3.112-13build1) ...
正在处理用于 libc-bin (2.35-0ubuntu3.1) 的触发器 ...

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

二、解压 mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz

tar -xf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
  • 1

查看解压的文件

文件夹文件夹内容
binmysqld服务端、客户端和配套的程序
docsMySQL 文档
manUnix 文档(可以使用 man命令调出)
include包含头(header)文件
lib
share数据库安装相关的错误信息,术语、SQL
support-files各种各样的支持文件

三、安装

feng@feng:~/software/dev/mysql-8.0.28-linux-glibc2.12-x86_64$ sudo groupadd mysql
[sudo] feng 的密码: 
feng@feng:~/software/dev/mysql-8.0.28-linux-glibc2.12-x86_64$ sudo useradd -r -g mysql -s /bin/false mysql
feng@feng:~/software/dev/mysql-8.0.28-linux-glibc2.12-x86_64$ cd /usr/local/
feng@feng:/usr/local$ sudo ln -s /home/feng/software/dev/mysql-8.0.28-linux-glibc2.12-x86_64 mysql
feng@feng:/usr/local$ ls
bin  etc  games  include  lib  man  mysql  sbin  share  src
feng@feng:/usr/local$ cd mysql
feng@feng:/usr/local/mysql$ ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
feng@feng:/usr/local/mysql$ mkdir mysql-files
feng@feng:/usr/local/mysql$ sudo chown mysql:mysql mysql-files
feng@feng:/usr/local/mysql$ sudo chmod 750 mysql-files
feng@feng:/usr/local/mysql$ ./bin/mysqld --initialize --user=root
2022-11-11T03:11:43.390174Z 0 [System] [MY-013169] [Server] /home/feng/software/dev/mysql-8.0.28-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 19970
2022-11-11T03:11:43.390999Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2022-11-11T03:11:43.454295Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-11-11T03:11:53.151407Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.

2022-11-11T03:12:14.146844Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /Vfe3n/+qdm6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

注意:前面执行的命令里头 --user=root,官方文档里头其实不是这么写的,而是 --user=mysql,但我在ubuntu中,老是出错,就改成了 root。并且接下来的所有命令都是通过 root 用户执行的。亲测可行。

四、编辑systemd文件

vim /usr/lib/systemd/system/mysql.service
  • 1
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=root
Group=root

#  Have mysqld write its state to the systemd notify socket
Type=notify

#  Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

#  Start main service
ExecStart=/usr/local/mysql/bin/mysqld --user=root


#  Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

#  Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
systemctl daemon-reload
systemctl restart mysql
  • 1
  • 2

启动成功

五、解决登录问题

启动完成之后,我遇到了一个报错,如下所示:

root@feng:/usr/local/mysql/bin#  ./mysql -u root@localhost -p
./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

  • 1
  • 2
  • 3

解决方法如下:

root@feng:/usr/local/mysql/bin#  find /usr/ -name 'libtinfo*'
/usr/share/doc/libtinfo6
/usr/lib/x86_64-linux-gnu/libtinfo.so.6.3
/usr/lib/x86_64-linux-gnu/libtinfo.so
/usr/lib/x86_64-linux-gnu/libtinfo.a
/usr/lib/x86_64-linux-gnu/libtinfo.so.6

root@feng:/usr/local/mysql/bin#  ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

解决思路就是:找到操作系统里的 libtinfo.so.*的位置,然后建立一个软链接到对应目录下的 libtinfo.so.5
已解决

六、修改初始密码

通过客户端连进去之后,执行下面的sql,修改密码:

alter user user() identified by '123456'
  • 1

七、创建 ‘root’@‘%’ 用户

mysql> create user 'root'@'%' identified by '123456';
Query OK, 0 rows affected (0.12 sec)

mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.10 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

mysql> 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

相关阅读:

426.【数据库】centos 7系统,二进制方式安装mysql

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/65168
推荐阅读
相关标签
  

闽ICP备14008679号