Ubuntu18.04使用离线源码包安装Mysql

源码包下载:
https://dev.mysql.com/downloads/mysql/
选择SourceCode翻到下面的tar.gz包下载即可
放一张网图,Mysql源码安装的最佳路径:

先把源码包放在/usr/local下,解压出来再改个名

1
2
3
4
5
6
7
8
9
10
11
12
tar
-zxvf mysql-
.
.
-linux-glibc2.
-x86_64.tar.gz
mv
mysql-
.
.
-linux-glibc2.
-x86_64 mysql

新建mysql用户组、mysql用户

1
2
sudo groupadd mysql
sudo useradd mysql -g mysql

授权。以下文件夹没有就创建一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo chown -R mysql:mysql 
/usr/
local/mysql
sudo chown -R mysql:mysql
/usr/
local
/mysql/
data
sudo chown -R mysql:mysql
/var/
lib
/mysql/
sudo chown -R mysql:mysql
/var/
run/mysqld

配置数据库相关的路径信息,初始化数据库。
初始化时会打印一堆东西。有的人初始化时会打印出默认密码,但是这次我却没看到……不太清楚是什么原因
另外初始化必须用sudo去执行,否则会报权限不够或者奇怪的错误
注:这一步使用mysql_install_db安装,需要用到libaio1, libaio是Linux下的一个异步非阻塞方式读写文件的接口,缺少是无法继续安装的
libaio下载地址

1
2
3
4
5
6
https
://debian.pkgs.org/
/debian-main-amd64/libaio1_0.
.
-
_amd64.deb.html

安装libaio

1
2
3
4
5
sudo
dpkg -i libaio1_0.
.
-
_amd64.deb

查看一下安装是否完成

1
2
3
4
5
6
whereis libaio.so.
libaio.so:
/usr/
lib
/x86_64-linux-gnu/
libaio.so.

然后就可以继续初始化数据库了

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo 
/usr/
local
/mysql/
scripts
/mysql_install_db --user=mysql --basedir=/u
sr
/local/my
sql
/ --datadir=/u
sr
/local/my
sql/data


然后去配置my.cnf。默认是没有的,需要从源码包里复制一份默认的配置文件到/etc下

1
2
3
4
5
6
7
cd 
/usr/
local
/mysql/
&& cp support-files
/my-default.cnf /
etc/my.cnf

默认的my.cnf下文件一堆注释,最后接了两句 !开头的语句,不太清楚是做什么用的,我尝试过几个版本的cnf文件,最后用了以下文件即可。
注意这里的关闭dns解析,内网环境下可以用这个。具体分析请左拐:原因

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
[mysqld]
character
-
set
-
server
= utf8mb4
#关闭dns解析(注意:这会造成只能使用ip远程连接MySQL)
#skip-name-resolve
skip-
grant
-
tables
[client]
default
-
character
-
set
= utf8mb4
[mysql]
default
-
character
-
set
= utf8mb4

OK,然后就可以启动了,先把Mysql加入服务中

1
2
3
4
5
6
7
8
9
cp 
/usr/
local
/mysql/
support-files
/mysql.server /
etc
/init.d/my
sql

然后启动Mysql:

1
2
sudo service mysql 
start

或者

1
2
3
4
5
sudo 
/usr/
local
/mysql/
support-files/mysql.server start

设置密码。这里可能会出现一些警告,这是因为直接明文设置了密码,不用担心实际上已经是设置好了的

1
2
3
4
5
/usr/
local
/mysql/
bin/mysqladmin -u root -h localhost.localdomain password
'new-password'

直接进入mysql,输入密码即可进入

1
2
mysql -uroot -
p

问题s:
初始化数据库时需要使用到libaio1这个包,但是原生的Ubuntu并不会有这个包,如果需要离线安装还需要rpm工具,但rpm也是需要安装的……因此此次安装并不算真实离线


Ubuntu18.04使用离线源码包安装Mysql
https://zhouyinglin.top/2022/08/06/Ubuntu18.04使用离线源码包安装Mysql/
作者
小周
发布于
2022年8月6日
许可协议